Class BinaryToken

    • Field Detail

      • NULL

        public static final BinaryToken NULL
        A null valued BinaryToken
      • ZERO_VALUE

        public static final byte[] ZERO_VALUE
        The byte array representing a zero value, the empty byte[].
      • ZERO

        public static final BinaryToken ZERO
        A zero valued BinaryToken
    • Constructor Detail

      • BinaryToken

        public BinaryToken​(BinaryValued value)
        Constructs a new token with the binary value in the given container.
        Parameters:
        value - a BinaryValued containing the desired value
      • BinaryToken

        public BinaryToken​(byte[] value)
        Constructs a new token with the given non-null binary value. If a null valued token is desired, use NULL.
        Parameters:
        value - the binary value of the token. A copy of the array will be made.
        Throws:
        NullPointerException - if the supplied array is null
      • BinaryToken

        public BinaryToken​(String value)
        Constructs a BinaryToken with the non-null binary value encoded by the given hexadecimal string. If a null valued token is desired, use NULL.
        Parameters:
        value - a hexadecimal string representing the binary value
        Throws:
        NullPointerException - if the supplied hexadecimal string is null
    • Method Detail

      • equals

        public boolean equals​(Object obj)
        Description copied from interface: DataToken
        Indicates whether another object is equal to this token. Two null valued tokens are considered equal. This differs from the behavior of TokenComparator.equal(TokenValued,TokenValued) but makes it possible to store DataTokens in Maps.
        Specified by:
        equals in interface DataToken
        Overrides:
        equals in class Object
        Parameters:
        obj - the object to compare
        Returns:
        true if the other object is a token of the same type and contains the same value, false otherwise.
      • represents

        public boolean represents​(byte[] otherData)
        A 'deep equals' comparison of this token's contents to the provided raw bytes. Implementations SHOULD use this instead of equals when comparing BinaryTokens to arrays; equals() will eventually stop recognizing byte arrays to comply with the general equals/hashcode contracts.
        Parameters:
        otherData - the object that we're comparing to
        Returns:
        a 'deep equals' comparison of contents with otherData
      • hashCode

        public int hashCode()
        Description copied from interface: DataToken
        Returns a hash code for the token. This value is guaranteed to be consistent with that returned by TokenConverter.asHashCode(TokenValued).
        Specified by:
        hashCode in interface DataToken
        Overrides:
        hashCode in class Object
        Returns:
        a hash code value for the token
      • parse

        public static BinaryToken parse​(String value)
        Converts a string representation of a binary value into a token.
        Parameters:
        value - a hexadecimal string representing a binary value
        Returns:
        a token with the specified value
      • asBinary

        public final byte[] asBinary()
        Description copied from interface: BinaryValued
        Gets the contained binary value.

        The array returned is a copy of the binary data contained in the object. To avoid this overhead, use BinaryValued.asBinaryRef() instead.

        Specified by:
        asBinary in interface BinaryValued
        Returns:
        the contained value as a byte[]. If null valued, as indicated by TokenValued.isNull(), null is returned.
      • asBinaryRef

        public final byte[] asBinaryRef()
        Description copied from interface: BinaryValued
        Gets a reference to the contained binary value.

        While this call avoids the overhead seen with BinaryValued.asBinary(), the caller must guarantee that the returned array will not be modified. Failure to comply may result in the dataflow exhibiting unexpected behavior, as other operators may (or may not) see the modified value.

        Specified by:
        asBinaryRef in interface BinaryValued
        Returns:
        a reference to the byte[] holding the contained value. If null valued, as indicated by TokenValued.isNull(), null is returned.
      • isZero

        public final boolean isZero()
        Description copied from interface: ScalarValued
        Indicates whether the value is the zero value for the type. Zero values are not stored in sparse representation formats.
        Specified by:
        isZero in interface ScalarValued
        Returns:
        true if the value is the zero value, false otherwise.
      • isNull

        public final boolean isNull()
        Description copied from interface: TokenValued
        Indicates whether the token is null valued. Tokens support null values analogous to SQL. Before accessing the value of the container, it is usually best to ensure it is not null valued using this method.
        Specified by:
        isNull in interface TokenValued
        Returns:
        true if the token is null valued, false otherwise