Class TimestampType

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

    public class TimestampType
    extends TemporalType<java.util.Date>
    Type for date-time values. This is meant as a replacement for DateType, as DateType wrongly compare pre-unix-epoch dates, sorting them *after* post-unix-epoch ones (due to it's use of unsigned bytes comparison).
    • Method Detail

      • 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.util.Date>
      • fromTimeInMillis

        public java.nio.ByteBuffer fromTimeInMillis​(long millis)
                                             throws MarshalException
        Description copied from class: TemporalType
        Returns the temporal value corresponding to the specified UNIX timestamp.
        Overrides:
        fromTimeInMillis in class TemporalType<java.util.Date>
        Parameters:
        millis - the UNIX timestamp to convert
        Returns:
        the temporal value corresponding to the specified UNIX timestamp
        Throws:
        MarshalException
      • toTimeInMillis

        public long toTimeInMillis​(java.nio.ByteBuffer value)
        Description copied from class: TemporalType
        Converts this temporal in UNIX timestamp.
        Overrides:
        toTimeInMillis in class TemporalType<java.util.Date>
        Parameters:
        value - the temporal value.
        Returns:
        the UNIX timestamp corresponding to this temporal.
      • 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.util.Date>
        Parameters:
        buffer - the value to convert
        protocolVersion - the protocol version to use for the conversion
        Returns:
        a JSON string representing the specified value
      • isCompatibleWith

        public boolean isCompatibleWith​(AbstractType<?> previous)
        Description copied from class: AbstractType
        Returns true if this comparator is compatible with the provided previous comparator, that is if previous can safely be replaced by this. A comparator cn should be compatible with a previous one cp if forall columns c1 and c2, if cn.validate(c1) and cn.validate(c2) and cn.compare(c1, c2) == v, then cp.validate(c1) and cp.validate(c2) and cp.compare(c1, c2) == v. Note that a type should be compatible with at least itself and when in doubt, keep the default behavior of not being compatible with any other comparator!
        Overrides:
        isCompatibleWith in class AbstractType<java.util.Date>
      • 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<java.util.Date>
      • valueLengthIfFixed

        public int valueLengthIfFixed()
        Description copied from class: AbstractType
        The length of values for this type if all values are of fixed length, -1 otherwise.
        Overrides:
        valueLengthIfFixed in class AbstractType<java.util.Date>
      • validateDuration

        protected void validateDuration​(Duration duration)
        Description copied from class: TemporalType
        Validates that the duration has the correct precision.
        Overrides:
        validateDuration in class TemporalType<java.util.Date>
        Parameters:
        duration - the duration to validate.