Class LongType

All Implemented Interfaces:
Comparator<ByteBuffer>, AssignmentTestable

public class LongType extends NumberType<Long>
  • Field Details

    • instance

      public static final LongType instance
  • Method Details

    • allowsEmpty

      public boolean allowsEmpty()
      Description copied from class: AbstractType
      Defines if the type allows an empty set of bytes (new byte[0]) as valid input. The AbstractType.validate(Object, ValueAccessor) and AbstractType.compose(Object, ValueAccessor) methods must allow empty bytes when this returns true, and must reject empty bytes when this is false.

      As of this writing, the main user of this API is for testing to know what types allow empty values and what types don't, so that the data that gets generated understands when ByteBufferUtil.EMPTY_BYTE_BUFFER is allowed as valid data.

      Overrides:
      allowsEmpty in class AbstractType<Long>
    • isEmptyValueMeaningless

      public boolean isEmptyValueMeaningless()
      Description copied from class: AbstractType
      Returns true for types where empty should be handled like null like Int32Type.
      Overrides:
      isEmptyValueMeaningless in class AbstractType<Long>
    • 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<Long>
    • compareLongs

      public static <VL, VR> int compareLongs(VL left, ValueAccessor<VL> accessorL, VR right, ValueAccessor<VR> accessorR)
    • 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<Long>
    • fromComparableBytes

      public <V> V fromComparableBytes(ValueAccessor<V> accessor, ByteSource.Peekable comparableBytes, ByteComparable.Version version)
      Description copied from class: AbstractType
      Translates the given byte-ordered representation to the common, non-byte-ordered binary representation of a payload for this abstract type (the latter, common binary representation is what we mostly work with in the storage engine internals). If the given bytes don't correspond to the encoding of some payload value for this abstract type, an IllegalArgumentException may be thrown.
      Overrides:
      fromComparableBytes in class AbstractType<Long>
      Parameters:
      accessor - value accessor used to construct the value.
      comparableBytes - A byte-ordered representation (presumably of a payload for this abstract type).
      version - The byte-comparable version used to construct the representation.
      Returns:
      A of a payload for this abstract type, corresponding to the given byte-ordered representation, constructed using the supplied value accessor.
      See Also:
    • fromString

      public ByteBuffer fromString(String source) throws MarshalException
      Description copied from class: AbstractType
      get a byte representation of the given string.
      Specified by:
      fromString in class AbstractType<Long>
      Throws:
      MarshalException
    • fromJSONObject

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

      public String toJSONString(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<Long>
      Parameters:
      buffer - the value to convert
      protocolVersion - the protocol version to use for the conversion
      Returns:
      a JSON string representing the specified value
    • isValueCompatibleWithInternal

      public boolean isValueCompatibleWithInternal(AbstractType<?> otherType)
      Description copied from class: AbstractType
      Needed to handle ReversedType in value-compatibility checks. Subclasses should implement this instead of isValueCompatibleWith().
      Overrides:
      isValueCompatibleWithInternal in class AbstractType<Long>
    • asCQL3Type

      public CQL3Type asCQL3Type()
      Overrides:
      asCQL3Type in class AbstractType<Long>
    • getSerializer

      public TypeSerializer<Long> getSerializer()
      Specified by:
      getSerializer in class AbstractType<Long>
    • getArgumentDeserializer

      public ArgumentDeserializer getArgumentDeserializer()
      Overrides:
      getArgumentDeserializer in class AbstractType<Long>
      Returns:
      the deserializer used to deserialize the function arguments of this type.
    • valueLengthIfFixed

      public int valueLengthIfFixed()
      Description copied from class: AbstractType
      Overrides:
      valueLengthIfFixed in class AbstractType<Long>
    • add

      public ByteBuffer add(Number left, Number right)
      Description copied from class: NumberType
      Adds the left argument to the right one.
      Specified by:
      add in class NumberType<Long>
      Parameters:
      left - the left argument
      right - the right argument
      Returns:
      the addition result
    • substract

      public ByteBuffer substract(Number left, Number right)
      Description copied from class: NumberType
      Substracts the left argument from the right one.
      Specified by:
      substract in class NumberType<Long>
      Parameters:
      left - the left argument
      right - the right argument
      Returns:
      the substraction result
    • multiply

      public ByteBuffer multiply(Number left, Number right)
      Description copied from class: NumberType
      Multiplies the left argument with the right one.
      Specified by:
      multiply in class NumberType<Long>
      Parameters:
      left - the left argument
      right - the right argument
      Returns:
      the multiplication result
    • divide

      public ByteBuffer divide(Number left, Number right)
      Description copied from class: NumberType
      Divides the left argument by the right one.
      Specified by:
      divide in class NumberType<Long>
      Parameters:
      left - the left argument
      right - the right argument
      Returns:
      the division result
    • mod

      public ByteBuffer mod(Number left, Number right)
      Description copied from class: NumberType
      Return the remainder.
      Specified by:
      mod in class NumberType<Long>
      Parameters:
      left - the left argument
      right - the right argument
      Returns:
      the remainder
    • negate

      public ByteBuffer negate(Number input)
      Description copied from class: NumberType
      Negates the argument.
      Specified by:
      negate in class NumberType<Long>
      Parameters:
      input - the argument to negate
      Returns:
      the negated argument
    • abs

      public ByteBuffer abs(Number input)
      Description copied from class: NumberType
      Takes the absolute value of the argument.
      Specified by:
      abs in class NumberType<Long>
      Parameters:
      input - the argument to take the absolute value of
      Returns:
      a ByteBuffer containing the absolute value of the argument. The type of the contents of the ByteBuffer will match that of the input.
    • exp

      public ByteBuffer exp(Number input)
      Description copied from class: NumberType
      Raises e to the power of the argument.
      Specified by:
      exp in class NumberType<Long>
      Parameters:
      input - the argument to raise e to
      Returns:
      a ByteBuffer containg the value of e (the base of natural logarithms) raised to the power of the argument. The type of the contents of the ByteBuffer will be a double, unless the input is a DecimalType or IntegerType, in which the ByteBuffer will contain a DecimalType.
    • log

      public ByteBuffer log(Number input)
      Description copied from class: NumberType
      Takes the natural logrithm of the argument.
      Specified by:
      log in class NumberType<Long>
      Parameters:
      input - the argument to take the natural log (ln) of
      Returns:
      a ByteBuffer containg the log base e (ln) of the argument. The type of the contents of the ByteBuffer will be a double, unless the input is a DecimalType or IntegerType, in which the ByteBuffer will contain a DecimalType.
    • log10

      public ByteBuffer log10(Number input)
      Description copied from class: NumberType
      Takes the log base 10 of the arguement.
      Specified by:
      log10 in class NumberType<Long>
      Parameters:
      input - the argument to take the log base ten of
      Returns:
      a ByteBuffer containg the log base 10 of the argument. The type of the contents of the ByteBuffer will be a double, unless the input is a DecimalType or IntegerType, in which the ByteBuffer will contain a DecimalType.
    • round

      public ByteBuffer round(Number input)
      Description copied from class: NumberType
      Rounds the argument to the nearest whole number.
      Specified by:
      round in class NumberType<Long>
      Parameters:
      input - the argument to round
      Returns:
      a ByteBuffer containg the rounded argument. If the input is an integral type, the ByteBuffer will contain a copy of the input. If the input is a float, the ByteBuffer will contain an int32. If the input is a double, the output will contain a long. If the input is a DecimalType, the output will contain an IntegerType.
    • getMaskedValue

      public ByteBuffer getMaskedValue()
      Overrides:
      getMaskedValue in class AbstractType<Long>
      Returns:
      A fixed, serialized value to be used when the column is masked, to be returned instead of the real value.