Class RangeStructure<K extends Comparable<? super K>,V extends SearchStructure<R> & MergeAndCopyStructure<V>,R>
java.lang.Object
org.faktorips.runtime.internal.tableindex.SearchStructure<R>
org.faktorips.runtime.internal.tableindex.AbstractMapStructure<K,V,R>
org.faktorips.runtime.internal.tableindex.RangeStructure<K,V,R>
- All Implemented Interfaces:
MergeAndCopyStructure<RangeStructure<K,V, R>>
public class RangeStructure<K extends Comparable<? super K>,V extends SearchStructure<R> & MergeAndCopyStructure<V>,R>
extends AbstractMapStructure<K,V,R>
implements MergeAndCopyStructure<RangeStructure<K,V,R>>
A
SearchStructure that maps ranges to nested SearchStructures. A
RangeStructure is configured by a RangeType to define how the bounds of the
contained ranges should be handled.
Ranges are set up by putting one or more key-value pairs into this structure. The key is of a
comparable data type (of course, as it defines a range). The value is a nested
SearchStructure. The given key defines one of the bounds of a range, which one depends on
the RangeType.
Example: In a RangeType.LOWER_BOUND_EQUAL RangeStructure (keys of type
Integer) by calling put(10, value1) and put(25, value2), two
ranges are defined: [10..24] and [25..infinity]. Calls to get(Object) with the keys 10,
24 and all in between will yield value1 as a result. Calls to get(Object) with the keys
25 and higher will yield value2 respectively. The keys 9 and lower, however, will return an
EmptySearchStructure.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptioncopy()This method copies the object which calls it.static <K extends Comparable<? super K>,V extends SearchStructure<R> & MergeAndCopyStructure<V>, R>
RangeStructure<K,V, R> Creates an emptyRangeStructure.static <K extends Comparable<? super K>,V extends SearchStructure<R> & MergeAndCopyStructure<V>, R>
RangeStructure<K,V, R> createWith(RangeType keyType, K key, V value) Creates a newRangeStructureand adds the given key-value pair.Returns the nestedSearchStructurefor the given key.getMap()voidmerge(RangeStructure<K, V, R> map) Merging adds the contents of the otherMergable to this object.Methods inherited from class org.faktorips.runtime.internal.tableindex.AbstractMapStructure
emptyResult, fillCopy, get, getValidResult, merge, putMethods inherited from class org.faktorips.runtime.internal.tableindex.SearchStructure
getUnique, getUnique
-
Method Details
-
create
public static <K extends Comparable<? super K>,V extends SearchStructure<R> & MergeAndCopyStructure<V>, RangeStructure<K,R> V, createR> (RangeType keyType) Creates an emptyRangeStructure. -
createWith
public static <K extends Comparable<? super K>,V extends SearchStructure<R> & MergeAndCopyStructure<V>, RangeStructure<K,R> V, createWithR> (RangeType keyType, K key, V value) Creates a newRangeStructureand adds the given key-value pair. -
get
Description copied from class:SearchStructureReturns the nestedSearchStructurefor the given key. This method never returnsnull. If no value exists for a given key anEmptySearchStructureis returned as a fall-back.- Specified by:
getin classSearchStructure<R>- Parameters:
key- The key for the requested nestedSearchStructure- Returns:
- The nested
SearchStructureor anEmptySearchStructureif the key does not exist.
-
getMap
- Overrides:
getMapin classAbstractMapStructure<K extends Comparable<? super K>,V extends SearchStructure<R> & MergeAndCopyStructure<V>, R>
-
merge
Description copied from interface:MergeAndCopyStructureMerging adds the contents of the otherMergable to this object. This object then contains the combined content. The other object remains unchanged.Merging aSearchStructuredeletes no content, instead equal values are being merged recursively.- Specified by:
mergein interfaceMergeAndCopyStructure<K extends Comparable<? super K>>- Parameters:
map- The object that should be merged into this object
-
copy
Description copied from interface:MergeAndCopyStructureThis method copies the object which calls it. The newly created object has the same properties like the object callingMergeAndCopyStructure.copy().- Specified by:
copyin interfaceMergeAndCopyStructure<K extends Comparable<? super K>>- Returns:
- T that is a copy of the calling object
-