Class PartitionerDefinedOrder

  • All Implemented Interfaces:
    java.util.Comparator<java.nio.ByteBuffer>, AssignmentTestable

    public class PartitionerDefinedOrder
    extends AbstractType<java.nio.ByteBuffer>
    for sorting columns representing row keys in the row ordering as determined by a partitioner. Not intended for user-defined CFs, and will in fact error out if used with such.
    • Constructor Detail

      • PartitionerDefinedOrder

        public PartitionerDefinedOrder​(IPartitioner partitioner)
      • PartitionerDefinedOrder

        public PartitionerDefinedOrder​(IPartitioner partitioner,
                                       AbstractType<?> partitionKeyType)
    • Method Detail

      • decompose

        public java.nio.ByteBuffer decompose​(java.nio.ByteBuffer value)
        Overrides:
        decompose in class AbstractType<java.nio.ByteBuffer>
      • getString

        public <V> java.lang.String getString​(V value,
                                              ValueAccessor<V> accessor)
        Description copied from class: AbstractType
        get a string representation of the bytes used for various identifier (NOT just for log messages)
        Overrides:
        getString in class AbstractType<java.nio.ByteBuffer>
      • fromString

        public java.nio.ByteBuffer fromString​(java.lang.String source)
        Description copied from class: AbstractType
        get a byte representation of the given string.
        Specified by:
        fromString in class AbstractType<java.nio.ByteBuffer>
      • fromJSONObject

        public Term fromJSONObject​(java.lang.Object parsed)
        Description copied from class: AbstractType
        Given a parsed JSON string, return a byte representation of the object.
        Specified by:
        fromJSONObject in class AbstractType<java.nio.ByteBuffer>
        Parameters:
        parsed - the result of parsing a json string
      • toJSONString

        public java.lang.String toJSONString​(java.nio.ByteBuffer buffer,
                                             ProtocolVersion protocolVersion)
        Description copied from class: AbstractType
        Converts the specified value into its JSON representation.

        The buffer position will stay the same.

        Overrides:
        toJSONString in class AbstractType<java.nio.ByteBuffer>
        Parameters:
        buffer - the value to convert
        protocolVersion - the protocol version to use for the conversion
        Returns:
        a JSON string representing the specified value
      • compareCustom

        public <VL,​VR> int compareCustom​(VL left,
                                               ValueAccessor<VL> accessorL,
                                               VR right,
                                               ValueAccessor<VR> accessorR)
        Description copied from class: AbstractType
        Implement IFF ComparisonType is CUSTOM Compares the byte representation of two instances of this class, for types where this cannot be done by simple in-order comparison of the unsigned bytes Standard Java compare semantics
        Overrides:
        compareCustom in class AbstractType<java.nio.ByteBuffer>
      • asComparableBytes

        public <V> ByteSource asComparableBytes​(ValueAccessor<V> accessor,
                                                V data,
                                                ByteComparable.Version version)
        Description copied from class: AbstractType
        Produce a byte-comparable representation of the given value, i.e. a sequence of bytes that compares the same way using lexicographical unsigned byte comparison as the original value using the type's comparator. We use a slightly stronger requirement to be able to use the types in tuples. Precisely, for any pair x, y of non-equal valid values of this type and any bytes b1, b2 between 0x10 and 0xEF, (+ stands for concatenation) compare(x, y) == compareLexicographicallyUnsigned(asByteComparable(x)+b1, asByteComparable(y)+b2) (i.e. the values compare like the original type, and an added 0x10-0xEF byte at the end does not change that) and: asByteComparable(x)+b1 is not a prefix of asByteComparable(y) (weakly prefix free) (i.e. a valid representation of a value may be a prefix of another valid representation of a value only if the following byte in the latter is smaller than 0x10 or larger than 0xEF). These properties are trivially true if the encoding compares correctly and is prefix free, but also permits a little more freedom that enables somewhat more efficient encoding of arbitrary-length byte-comparable blobs. Depending on the type, this method can be called for null or empty input, in which case the output is allowed to be null (the clustering/tuple encoding will accept and handle it).
        Overrides:
        asComparableBytes in class AbstractType<java.nio.ByteBuffer>
      • toString

        public java.lang.String toString()
        Description copied from class: AbstractType
        This must be overriden by subclasses if necessary so that for any AbstractType, this == TypeParser.parse(toString()). Note that for backwards compatibility this includes the full classname. For CQL purposes the short name is fine.
        Overrides:
        toString in class AbstractType<java.nio.ByteBuffer>
      • getPartitionKeyType

        @Nullable
        public AbstractType<?> getPartitionKeyType()
      • equals

        public boolean equals​(java.lang.Object obj)
        Specified by:
        equals in interface java.util.Comparator<java.nio.ByteBuffer>
        Overrides:
        equals in class java.lang.Object