Class NestedDataColumnSupplier.FieldsFixupIndexed
- All Implemented Interfaces:
Iterable<ByteBuffer>,HotLoopCallee,Indexed<ByteBuffer>
- Enclosing class:
- NestedDataColumnSupplier
Indexed implementation which contains a map of positions to replace with corrected values by
NestedDataColumnSupplier.getAndFixFieldsSupplier(ByteBuffer, ByteOrder, SegmentFileMapper).
This implementation is no longer Indexed.isSorted(), despite the underlying Indexed being so, as the
replaced values might violate the old sort order, so this cannot provide that guarantee. Despite this,
indexOf(ByteBuffer) will still function for finding if items exist in the dictionary, the replaced values
are searched prior to calling indexOf(ByteBuffer) on the underlying dictionary, so for the values we are
trying to find will always report their correct positions.
It is important that the fixed dictionary retains its original order because the positions are used as the internal
field file names (instead of the paths themselves) in the segment file. Callers however should not expect
iterating the dictionary to provide values in sorted order.
-
Method Summary
Modifier and TypeMethodDescriptionget(int index) Get the value at specified positionintindexOf(ByteBuffer value) Returns the index of "value" in this Indexed object, or a negative number if the value is not present.voidinspectRuntimeShape(RuntimeShapeInspector inspector) Implementations of this method should callinspector.visit()with all fields of this class, which meet two conditions: 1.iterator()intsize()Number of elements in the value setMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
size
public int size()Description copied from interface:IndexedNumber of elements in the value set- Specified by:
sizein interfaceIndexed<ByteBuffer>
-
get
Description copied from interface:IndexedGet the value at specified position- Specified by:
getin interfaceIndexed<ByteBuffer>
-
indexOf
Description copied from interface:IndexedReturns the index of "value" in this Indexed object, or a negative number if the value is not present. The negative number is not guaranteed to be any particular number unlessIndexed.isSorted()returns true, in which case it will be a negative number equal to (-(insertion point) - 1), in the manner of Arrays.binarySearch.- Specified by:
indexOfin interfaceIndexed<ByteBuffer>- Parameters:
value- value to search for- Returns:
- index of value, or a negative number (equal to (-(insertion point) - 1) if
Indexed.isSorted())
-
iterator
- Specified by:
iteratorin interfaceIterable<ByteBuffer>
-
inspectRuntimeShape
Description copied from interface:HotLoopCalleeImplementations of this method should callinspector.visit()with all fields of this class, which meet two conditions: 1. They are used in methods of this class, annotated withCalledFromHotLoop2. They are either: a. Nullable objects b. Instances of HotLoopCallee c. Objects, which don't always have a specific class in runtime. For example, a field of typeSetcould beHashSetorTreeSetin runtime, depending on how this instance (the instance on which inspectRuntimeShape() is called) is configured. d. ByteBuffer or similar objects, where byte order matters e. boolean flags, affecting branch taking f. Arrays of objects, meeting any of conditions a-e.- Specified by:
inspectRuntimeShapein interfaceHotLoopCallee
-