Class Key2Collection.Builder<E,K1,K2>
java.lang.Object
org.magicwerk.brownies.collections.KeyCollectionImpl.BuilderImpl<E>
org.magicwerk.brownies.collections.Key2Collection.Builder<E,K1,K2>
- Direct Known Subclasses:
Key2Set.Builder
- Enclosing class:
Key2Collection<E,
K1, K2>
Builder to construct Key2Collection instances.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.magicwerk.brownies.collections.KeyCollectionImpl.BuilderImpl
KeyCollectionImpl.BuilderImpl.KeyMapBuilder<E,
K> -
Field Summary
Fields inherited from class org.magicwerk.brownies.collections.KeyCollectionImpl.BuilderImpl
afterDeleteTrigger, afterInsertTrigger, allowNullElem, array, beforeDeleteTrigger, beforeInsertTrigger, capacity, collection, constraint, count, keyColl, keyList, keyMapBuilders, maxSize, movingWindow, setBehavior, useBigList
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()
withAfterDeleteTrigger
(Consumer<E> trigger) Specify delete trigger.withAfterInsertTrigger
(Consumer<E> trigger) Specify insert trigger.withBeforeDeleteTrigger
(Consumer<E> trigger) Specify delete trigger.withBeforeInsertTrigger
(Consumer<E> trigger) Specify insert trigger.withCapacity
(int capacity) Specify initial capacity.withConstraint
(Predicate<E> constraint) Specify element constraint.withContent
(E... elements) Specify elements added to the collection upon creation.withContent
(Collection<? extends E> elements) Specify elements added to the collection upon creation.withElemDuplicates
(boolean allowDuplicates) Specify whether duplicates are allowed or not.withElemDuplicates
(boolean allowDuplicates, boolean allowDuplicatesNull) Specify whether duplicates are allowed or not.withElemNull
(boolean allowNull) Specifies whether null elements are allowed or not.Add element map (with ident mapper).withElemSort
(boolean sort) Specify that the element set should be sorted using the natural comparator.withElemSort
(Comparator<? super E> comparator) Set comparator to use for sorting the element set.withElemSort
(Comparator<? super E> comparator, boolean sortNullsFirst) Set comparator to use for sorting the element set.withKey1Duplicates
(boolean allowDuplicates) Specify whether duplicates are allowed or not.withKey1Duplicates
(boolean allowDuplicates, boolean allowDuplicatesNull) Specify whether duplicates are allowed or not.withKey1Map
(Function<? super E, K1> mapper) Add key map.withKey1Null
(boolean allowNull) Specify whether null elements are allowed or not.withKey1Sort
(boolean sort) Set comparator to use for sorting the key map.withKey1Sort
(Comparator<? super K1> comparator) Set comparator to use for sorting the key map.withKey1Sort
(Comparator<? super K1> comparator, boolean sortNullsFirst) Set comparator to use for sorting the key map.withKey2Duplicates
(boolean allowDuplicates) Specify whether duplicates are allowed or not.withKey2Duplicates
(boolean allowDuplicates, boolean allowDuplicatesNull) Specify whether duplicates are allowed or not.withKey2Map
(Function<? super E, K2> mapper) Add key map.withKey2Null
(boolean allowNull) Specify whether null elements are allowed or not.withKey2Sort
(boolean sort) Set comparator to use for sorting the key map.withKey2Sort
(Comparator<? super K2> comparator) Set comparator to use for sorting the key map.withKey2Sort
(Comparator<? super K2> comparator, boolean sortNullsFirst) Set comparator to use for sorting the key map.withMaxSize
(int maxSize) Specify maximum size of collection.withNull
(boolean allowNull) Specifies whether null elements are allowed or not.withOrderByElem
(boolean orderBy) Specifies that the collection will have the order of the element set.withOrderByKey1
(boolean orderBy) Specifies that the collection will have the order of the key map.withOrderByKey2
(boolean orderBy) Specifies that the collection will have the order of the key map.Specify the element to be a primary key.withPrimaryKey1Map
(Function<? super E, K1> mapper) Specify this key to be a primary key.withPrimaryKey2Map
(Function<? super E, K2> mapper) Specify this key to be a primary key.withSetBehavior
(boolean setBehavior) Specifies that the collection behaves like aSet
on adding elements, i.e.Specify the element to be a unique key.withUniqueKey1Map
(Function<? super E, K1> mapper) Specify this key to be a unique key.withUniqueKey2Map
(Function<? super E, K2> mapper) Specify this key to be a unique key.Methods inherited from class org.magicwerk.brownies.collections.KeyCollectionImpl.BuilderImpl
build, buildKeyMap, getKeyMapBuilder, hasElemMapBuilder, init, init, initKeyMapBuilder, initList, isFalse, isTrue, withElemCount, withKeyDuplicates, withKeyMap, withKeyNull, withKeySort, withKeySort, withKeySort, withListBig, withListType, withOrderByElem, withOrderByKey, withOrderByKey, withOrderByKey1, withOrderByKey2, withPrimaryKeyMap, withUniqueKeyMap, withWindowSize
-
Constructor Details
-
Builder
public Builder()Default constructor. -
Builder
Builder(Key2Collection<E, K1, K2> keyColl) Private constructor used if extending Key2Collection.- Parameters:
keyColl
- key collection
-
-
Method Details
-
build
- Returns:
- created collection
-
withNull
Description copied from class:KeyCollectionImpl.BuilderImpl
Specifies whether null elements are allowed or not. A null element will have null keys. This method does not implicitly create an element set, where asKeyCollectionImpl.BuilderImpl.withElemNull(boolean)
does.- Overrides:
withNull
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowNull
- true to allow null elements (default), false to disallow- Returns:
- this (fluent interfaces)
-
withConstraint
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify element constraint.- Overrides:
withConstraint
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
constraint
- constraint element must satisfy, null for none (default)- Returns:
- this (fluent interface)
-
withBeforeInsertTrigger
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify insert trigger.- Overrides:
withBeforeInsertTrigger
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
trigger
- insert trigger method, null for none (default)- Returns:
- this (fluent interface)
-
withAfterInsertTrigger
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify insert trigger.- Overrides:
withAfterInsertTrigger
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
trigger
- insert trigger method, null for none (default)- Returns:
- this (fluent interface)
-
withBeforeDeleteTrigger
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify delete trigger.- Overrides:
withBeforeDeleteTrigger
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
trigger
- delete trigger method, null for none (default)- Returns:
- this (fluent interface)
-
withAfterDeleteTrigger
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify delete trigger.- Overrides:
withAfterDeleteTrigger
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
trigger
- delete trigger method, null for none (default)- Returns:
- this (fluent interface)
-
withCapacity
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify initial capacity.- Overrides:
withCapacity
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
capacity
- initial capacity- Returns:
- this (fluent interface)
-
withContent
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify elements added to the collection upon creation.- Overrides:
withContent
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
elements
- initial elements- Returns:
- this (fluent interface)
-
withContent
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify elements added to the collection upon creation.- Overrides:
withContent
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
elements
- initial elements- Returns:
- this (fluent interface)
-
withMaxSize
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify maximum size of collection. If an attempt is made to add more elements, an exception is thrown.- Overrides:
withMaxSize
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
maxSize
- maximum size- Returns:
- this (fluent interface)
-
withSetBehavior
Description copied from class:KeyCollectionImpl.BuilderImpl
Specifies that the collection behaves like aSet
on adding elements, i.e. if an element cannot be added due to duplicate or other constraints, no exception is thrown.- Overrides:
withSetBehavior
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
setBehavior
- true to define set behavior (default is false)- Returns:
- this (fluent interface)
-
withElemSet
Description copied from class:KeyCollectionImpl.BuilderImpl
Add element map (with ident mapper).- Overrides:
withElemSet
in classKeyCollectionImpl.BuilderImpl<E>
- Returns:
- this (fluent interface)
-
withOrderByElem
Description copied from class:KeyCollectionImpl.BuilderImpl
Specifies that the collection will have the order of the element set. The element set must be sorted, if no sort order has been defined, the natural comparator will be used. If the set allows null values, the used comparator will sort them last.- Overrides:
withOrderByElem
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
orderBy
- if true the collection will have the order of the element set (default is false, only one key map or the element set can have the order by option set)- Returns:
- this (fluent interface)
-
withElemNull
Description copied from class:KeyCollectionImpl.BuilderImpl
Specifies whether null elements are allowed or not. A null element will have null keys. This method does implicitly create an element set, where asKeyCollectionImpl.BuilderImpl.withNull(boolean)
does not.- Overrides:
withElemNull
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowNull
- true to allow null elements, false to disallow (default is true)- Returns:
- this (fluent interfaces)
-
withElemDuplicates
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether duplicates are allowed or not. This method does implicitly create an element set.- Overrides:
withElemDuplicates
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowDuplicates
- true to allow duplicates (default is true)- Returns:
- this (fluent interfaces)
-
withElemDuplicates
public Key2Collection.Builder<E,K1, withElemDuplicatesK2> (boolean allowDuplicates, boolean allowDuplicatesNull) Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether duplicates are allowed or not. This method does implicitly create an element set.- Overrides:
withElemDuplicates
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowDuplicates
- true to allow duplicates (default is true)allowDuplicatesNull
- true to allow duplicate null values (default is true)- Returns:
- this (fluent interfaces)
-
withElemSort
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify that the element set should be sorted using the natural comparator. If the collection supports null values, they are sorted last. This method does implicitly create an element set. Note that this does not automatically sort the collection itself, call a withOrderBy method for this.- Overrides:
withElemSort
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
sort
- true to sorted, false for unsorted (default is false)- Returns:
- this (fluent interface)
-
withElemSort
Description copied from class:KeyCollectionImpl.BuilderImpl
Set comparator to use for sorting the element set. If the collection allows null values, the comparator must be able to compare null values. If the comparator does not support null values, use withElemSort(Comparator, boolean) to explicitly specify how null values should be sorted. This method does implicitly create an element set. Note that this does not automatically sort the collection itself, call a withOrderBy method for this.- Overrides:
withElemSort
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
comparator
- comparator to use for sorting (null for natural comparator)- Returns:
- this (fluent interface)
-
withElemSort
public Key2Collection.Builder<E,K1, withElemSortK2> (Comparator<? super E> comparator, boolean sortNullsFirst) Description copied from class:KeyCollectionImpl.BuilderImpl
Set comparator to use for sorting the element set. This method should be used if the collection can contain null values, but the comparator is not able to handle them. The parameter sortNullsFirst determine how the null values should be sorted. This method does implicitly create an element set.- Overrides:
withElemSort
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
comparator
- comparator to use for sortingsortNullsFirst
- true to sort null values first, false for last- Returns:
- this (fluent interface)
-
withPrimaryElem
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify the element to be a primary key. This is identical to callingwithElemNull(false) and withElemDuplicates(false)
.- Overrides:
withPrimaryElem
in classKeyCollectionImpl.BuilderImpl<E>
- Returns:
- this (fluent interface)
-
withUniqueElem
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify the element to be a unique key. This is identical to callingwithElemNull(true) and withElemDuplicates(false, true)
.- Overrides:
withUniqueElem
in classKeyCollectionImpl.BuilderImpl<E>
- Returns:
- this (fluent interface)
-
withKey1Map
Add key map.- Parameters:
mapper
- mapper to use- Returns:
- this (fluent interface)
-
withPrimaryKey1Map
Specify this key to be a primary key. This is identical to callingwithKey1Map(mapper), withKey1Null(false), and withKey1Duplicates(false)
.- Parameters:
mapper
- mapper to use- Returns:
- this (fluent interface)
-
withUniqueKey1Map
Specify this key to be a unique key. This is identical to callingwithKey1Map(mapper), withKey1Null(true), and withKey1Duplicates(false, true)
.- Parameters:
mapper
- mapper to use- Returns:
- this (fluent interface)
-
withOrderByKey1
Description copied from class:KeyCollectionImpl.BuilderImpl
Specifies that the collection will have the order of the key map. The key map must be sorted, if no sort order has been defined, the natural comparator will be used. If the map allows null values, the used comparator will sort them last.- Overrides:
withOrderByKey1
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
orderBy
- if true the collection will have the order of the key map (default is false, only one key map or the element set can have the order by option set)- Returns:
- this (fluent interface)
-
withKey1Null
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether null elements are allowed or not. A null element will have a null key.- Overrides:
withKey1Null
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowNull
- true to allow null elements, false to disallow- Returns:
- this (fluent interfaces)
-
withKey1Duplicates
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether duplicates are allowed or not.- Overrides:
withKey1Duplicates
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowDuplicates
- true to allow duplicates- Returns:
- this (fluent interfaces)
-
withKey1Duplicates
public Key2Collection.Builder<E,K1, withKey1DuplicatesK2> (boolean allowDuplicates, boolean allowDuplicatesNull) Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether duplicates are allowed or not.- Overrides:
withKey1Duplicates
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowDuplicates
- true to allow duplicatesallowDuplicatesNull
- true to allow duplicate null values- Returns:
- this (fluent interfaces)
-
withKey1Sort
Description copied from class:KeyCollectionImpl.BuilderImpl
Set comparator to use for sorting the key map. Note that this does not automatically sort the list itself, call a withOrderBy method for this.- Overrides:
withKey1Sort
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
sort
- true to sort key map- Returns:
- this (fluent interface)
-
withKey1Sort
Set comparator to use for sorting the key map. Note that this does not automatically sort the list collection, call a withOrderBy method for this.- Parameters:
comparator
- comparator to use for sorting- Returns:
- this (fluent interface)
-
withKey1Sort
public Key2Collection.Builder<E,K1, withKey1SortK2> (Comparator<? super K1> comparator, boolean sortNullsFirst) Set comparator to use for sorting the key map. Note that this does not automatically sort the list collection, call a withOrderBy method for this.- Parameters:
comparator
- comparator to use for sortingsortNullsFirst
- true if null will be sorted first, false for last- Returns:
- this (fluent interface)
-
withKey2Map
Add key map.- Parameters:
mapper
- mapper to use- Returns:
- this (fluent interface)
-
withPrimaryKey2Map
Specify this key to be a primary key. This is identical to callingwithKey2Map(mapper), withKey2Null(false), and withKey2Duplicates(false)
.- Parameters:
mapper
- mapper to use- Returns:
- this (fluent interface)
-
withUniqueKey2Map
Specify this key to be a unique key. This is identical to callingwithKey2Map(mapper), withKey2Null(true), and withKey2Duplicates(false, true)
.- Parameters:
mapper
- mapper to use- Returns:
- this (fluent interface)
-
withOrderByKey2
Description copied from class:KeyCollectionImpl.BuilderImpl
Specifies that the collection will have the order of the key map. The key map must be sorted, if no sort order has been defined, the natural comparator will be used. If the map allows null values, the used comparator will sort them last.- Overrides:
withOrderByKey2
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
orderBy
- if true the collection will have the order of the key map (default is false, only one key map or the element set can have the order by option set)- Returns:
- this (fluent interface)
-
withKey2Null
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether null elements are allowed or not. A null element will have a null key.- Overrides:
withKey2Null
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowNull
- true to allow null elements, false to disallow- Returns:
- this (fluent interfaces)
-
withKey2Duplicates
Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether duplicates are allowed or not.- Overrides:
withKey2Duplicates
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowDuplicates
- true to allow duplicates- Returns:
- this (fluent interfaces)
-
withKey2Duplicates
public Key2Collection.Builder<E,K1, withKey2DuplicatesK2> (boolean allowDuplicates, boolean allowDuplicatesNull) Description copied from class:KeyCollectionImpl.BuilderImpl
Specify whether duplicates are allowed or not.- Overrides:
withKey2Duplicates
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
allowDuplicates
- true to allow duplicatesallowDuplicatesNull
- true to allow duplicate null values- Returns:
- this (fluent interfaces)
-
withKey2Sort
Description copied from class:KeyCollectionImpl.BuilderImpl
Set comparator to use for sorting the key map. Note that this does not automatically sort the list itself, call a withOrderBy method for this.- Overrides:
withKey2Sort
in classKeyCollectionImpl.BuilderImpl<E>
- Parameters:
sort
- true to sort key map- Returns:
- this (fluent interface)
-
withKey2Sort
Set comparator to use for sorting the key map. Note that this does not automatically sort the collection itself, call a withOrderBy method for this.- Parameters:
comparator
- comparator to use for sorting- Returns:
- this (fluent interface)
-
withKey2Sort
public Key2Collection.Builder<E,K1, withKey2SortK2> (Comparator<? super K2> comparator, boolean sortNullsFirst) Set comparator to use for sorting the key map. Note that this does not automatically sort the collection itself, call a withOrderBy method for this.- Parameters:
comparator
- comparator to use for sortingsortNullsFirst
- true if null will be sorted first, false for last- Returns:
- this (fluent interface)
-