Package org.apache.hadoop.hbase.types
Class TerminatedWrapper<T>
java.lang.Object
org.apache.hadoop.hbase.types.TerminatedWrapper<T>
- All Implemented Interfaces:
DataType<T>
- Direct Known Subclasses:
RawBytesTerminated,RawStringTerminated
Wraps an existing
DataType implementation as a terminated version of itself. This has the
useful side-effect of turning an existing DataType which is not skippable into a
skippable variant.-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTerminatedWrapper(DataType<T> wrapped, byte[] term) Create a terminated version of thewrapped.TerminatedWrapper(DataType<T> wrapped, String term) Create a terminated version of thewrapped. -
Method Summary
Modifier and TypeMethodDescriptionRead an instance ofTfrom the buffersrc.intencode(PositionedByteRange dst, T val) Write instancevalinto bufferdst.Inform consumers over what type thisDataTypeoperates.intencodedLength(T val) Inform consumers how long the encodedbyte[]will be.getOrder()Retrieve the sortOrderimposed by this data type, or null when natural ordering is not preserved.booleanIndicates whether this instance supports encoding null values.booleanIndicates whether this instance writes encodedbyte[]'s which preserve the natural sort order of the unencoded value.booleanIndicates whether this instance is able to skip over it's encoded value.intskip(PositionedByteRange src) Skipsrc's position forward over one encoded value.protected intReturn the position at whichtermbegins withinsrc, or-1iftermis not found.
-
Field Details
-
wrapped
-
term
-
-
Constructor Details
-
TerminatedWrapper
Create a terminated version of thewrapped.- Throws:
IllegalArgumentException- whentermis null or empty.
-
TerminatedWrapper
Create a terminated version of thewrapped.termis converted to abyte[]usingBytes.toBytes(String).- Throws:
IllegalArgumentException- whentermis null or empty.
-
-
Method Details
-
isOrderPreserving
Description copied from interface:DataTypeIndicates whether this instance writes encodedbyte[]'s which preserve the natural sort order of the unencoded value.- Specified by:
isOrderPreservingin interfaceDataType<T>- Returns:
truewhen natural order is preserved,falseotherwise.
-
getOrder
Description copied from interface:DataTypeRetrieve the sortOrderimposed by this data type, or null when natural ordering is not preserved. Value is either ascending or descending. Default is assumed to beOrder.ASCENDING. -
isNullable
Description copied from interface:DataTypeIndicates whether this instance supports encoding null values. This depends on the implementation details of the encoding format. AllDataTypes that support null should treat null as comparing less than any non-null value for default sort ordering purposes.- Specified by:
isNullablein interfaceDataType<T>- Returns:
truewhen null is supported,falseotherwise.
-
isSkippable
Description copied from interface:DataTypeIndicates whether this instance is able to skip over it's encoded value.DataTypes that are not skippable can only be used as the right-most field of aStruct.- Specified by:
isSkippablein interfaceDataType<T>
-
encodedLength
Description copied from interface:DataTypeInform consumers how long the encodedbyte[]will be.- Specified by:
encodedLengthin interfaceDataType<T>- Parameters:
val- The value to check.- Returns:
- the number of bytes required to encode
val.a
-
encodedClass
Description copied from interface:DataTypeInform consumers over what type thisDataTypeoperates. Useful when working with bareDataTypeinstances.- Specified by:
encodedClassin interfaceDataType<T>
-
terminatorPosition
Return the position at whichtermbegins withinsrc, or-1iftermis not found. -
skip
Skipsrc's position forward over one encoded value.- Specified by:
skipin interfaceDataType<T>- Parameters:
src- the buffer containing the encoded value.- Returns:
- number of bytes skipped.
- Throws:
IllegalArgumentException- when the terminator sequence is not found.
-
decode
Description copied from interface:DataTypeRead an instance ofTfrom the buffersrc. -
encode
Write instancevalinto bufferdst.- Specified by:
encodein interfaceDataType<T>- Parameters:
dst- the buffer containing the encoded value.val- the value to encode ontodst.- Returns:
- number of bytes written.
- Throws:
IllegalArgumentException- when the encoded representation ofvalcontains thetermsequence.
-