Class SparseIp6AddressTokenList

java.lang.Object
com.pervasive.datarush.sequences.scalar.SparseIp6AddressTokenList
All Implemented Interfaces:
MutableTokenSequence, Ip6AddressTokenSequence, MutableIp6AddressTokenSequence, MutableScalarTokenSequence, ScalarTokenAppendable, ScalarTokenSequence, TokenAppendable, TokenSequence, ScalarTyped, TokenTyped

public final class SparseIp6AddressTokenList extends Object implements MutableIp6AddressTokenSequence
An implementation of MutableIp6AddressTokenSequence which stores data sparsely. That is, zero values are not stored. This is a much more efficient mechanism when the majority of values are zero.
  • Constructor Summary

    Constructors
    Constructor
    Description
    SparseIp6AddressTokenList(int initialCapacity)
    Creates a new empty list.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    append(byte[] value)
    Appends the specified ip6address value to this sequence.
    void
    append(byte[] value, int count)
    Appends the specified ip6address value to this sequence multiple times.
    final void
    Appends all tokens in the specified sequence to this sequence.
    final void
    append(TokenSequence data, int start, int length)
    Appends a subsequence of tokens in the specified sequence to this sequence.
    final void
    Appends the specified token value to this sequence.
    final void
    append(TokenValued value, long count)
    Appends the specified token value to this sequence multiple times.
    final void
    Append a null value to this sequence.
    final void
    appendNull(int count)
    Append a null value to this sequence.
    final void
    Appends a zero value to this sequence.
    void
    appendZero(int count)
    Appends the specified number of zero values to this sequence.
    final int
    compareElement(int absoluteIndex, TokenValued value)
    Compares the value of the specified token to the token at which the given port is positioned.
    final int
    compareElements(int lhsAbsoluteIndex, int rhsAbsoluteIndex)
    Compares the values of the tokens at the specified positions.
    final void
    Ensures that the internal representation is in a canonical form such that it can be read safely by multiple threads.
    final void
    fillValue(int start, int length, TokenValued value)
    Sets the tokens in the specified subsequence to the given value.
    byte[]
    getAddress(int index)
    Gets the value of the specified token as a raw IPv6 address value.
    Gets an ElementComparator for this sequence using the specified ordering.
    getInetAddress(int index)
    Gets the value of the specified token as an Inet6Address value.
    final long
    Returns the current modification count.
    getToken(int index)
    Gets the value at the specified position.
    getTokenSetter(int index)
    Returns a mutator for the given index.
    Gets the data type of the tokens in the sequence.
    void
    getValues(int start, long[][] values, boolean[] nulls, int offset, int length)
    Gets the values and null indicators for a range of tokens.
    final int
    hashCode(int absoluteIndex)
    Gets the hash code for the token at the specified position.
    final boolean
    Returns whether all elements are null.
    final boolean
    isNull(int absoluteIndex)
    Indicates whether the specified token has a null value.
    final boolean
    isZero(int absoluteIndex)
    Indicates whether the specified token has a zero value.
    Creates an iterator over the non-null values of this sequence.
    final void
    Removes all elements from the sequence.
    void
    set(int absoluteIndex, byte[] value)
    Sets the token at the specified position to the given raw ip6address value.
    void
    set(int absoluteIndex, long[] value)
    Sets the token at the specified position to the given raw ip6address value as a pair of longs.
    void
    set(int absoluteIndex, Inet4Address value)
    Sets the token at the specified position to the given Inet4Address value.
    void
    set(int absoluteIndex, Inet6Address value)
    Sets the token at the specified position to the given Inet6Address value.
    final void
    setNull(int absoluteIndex)
    Sets the token at the specified position to be null valued.
    final void
    setNull(int start, int length)
    Sets the tokens in the specified subsequence to be null valued.
    final void
    setValue(int absoluteIndex, TokenValued value)
    Sets the token at the specified position to the given value.
    final void
    setValues(int start, TokenSequence values, int offset, int length)
    Sets the tokens in the specified subsequence of the array to the corresponding values from a subsequence of the given source sequence.
    final void
    setZero(int absoluteIndex)
    Sets the token at the specified position to be zero valued.
    void
    setZero(int start, int length)
    Sets the tokens in the specified subsequence to be zero valued.
    final int
    Gets the length of the sequence.
    final String
     
    final String
    toString(int absoluteIndex)
    Gets the string representation of the token at the specified position.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.pervasive.datarush.sequences.scalar.MutableScalarTokenSequence

    ensureCanonical, getModificationCount

    Methods inherited from interface com.pervasive.datarush.sequences.MutableTokenSequence

    appendNull, appendNull, appendZero, appendZero, fillValue, reset, setNull, setNull, setValue, setValues, setZero, setZero

    Methods inherited from interface com.pervasive.datarush.sequences.scalar.ScalarTokenSequence

    getType, isNull, isZero

    Methods inherited from interface com.pervasive.datarush.sequences.TokenAppendable

    append, append, append, append

    Methods inherited from interface com.pervasive.datarush.sequences.TokenSequence

    compareElement, compareElements, getElementComparator, hashCode, isNull, size, toString
  • Constructor Details

    • SparseIp6AddressTokenList

      public SparseIp6AddressTokenList(int initialCapacity)
      Creates a new empty list.
      Parameters:
      initialCapacity - initial storage capacity of the list
  • Method Details

    • append

      public void append(byte[] value)
      Description copied from interface: MutableIp6AddressTokenSequence
      Appends the specified ip6address value to this sequence.
      Specified by:
      append in interface MutableIp6AddressTokenSequence
      Parameters:
      value - the value to append. If null, this is equivalent to appendNull().
    • append

      public void append(byte[] value, int count)
      Description copied from interface: MutableIp6AddressTokenSequence
      Appends the specified ip6address value to this sequence multiple times.
      Specified by:
      append in interface MutableIp6AddressTokenSequence
      Parameters:
      value - the value to append. If null, this is equivalent to appendNull(count).
      count - the number of copies to append.
    • set

      public void set(int absoluteIndex, long[] value)
      Description copied from interface: MutableIp6AddressTokenSequence
      Sets the token at the specified position to the given raw ip6address value as a pair of longs.
      Specified by:
      set in interface MutableIp6AddressTokenSequence
      Parameters:
      absoluteIndex - the position of the token in the array
      value - the ip6address as a pair of longs to which to set the token. Passing null is equivalent to calling setNull(index).
    • set

      public void set(int absoluteIndex, byte[] value)
      Description copied from interface: MutableIp6AddressTokenSequence
      Sets the token at the specified position to the given raw ip6address value.

      The input array is copied to prevent later modification of the value that is set.

      Specified by:
      set in interface MutableIp6AddressTokenSequence
      Parameters:
      absoluteIndex - the position of the token in the array
      value - the raw ip4address value to which to set the token. Passing null is equivalent to calling setNull(index).
    • set

      public void set(int absoluteIndex, Inet4Address value)
      Description copied from interface: MutableIp6AddressTokenSequence
      Sets the token at the specified position to the given Inet4Address value. The ipv4 address will be converted to a ipv4 mapped ipv6 address.
      Specified by:
      set in interface MutableIp6AddressTokenSequence
      Parameters:
      absoluteIndex - the position of the token in the array
      value - the Inet6Address value to which to set the token. Passing null is equivalent to calling setNull(index).
    • set

      public void set(int absoluteIndex, Inet6Address value)
      Description copied from interface: MutableIp6AddressTokenSequence
      Sets the token at the specified position to the given Inet6Address value.
      Specified by:
      set in interface MutableIp6AddressTokenSequence
      Parameters:
      absoluteIndex - the position of the token in the array
      value - the Inet6Address value to which to set the token. Passing null is equivalent to calling setNull(index).
    • getAddress

      public byte[] getAddress(int index)
      Description copied from interface: Ip6AddressTokenSequence
      Gets the value of the specified token as a raw IPv6 address value.

      A copy of the value is returned.

      Specified by:
      getAddress in interface Ip6AddressTokenSequence
      Parameters:
      index - the position of the token in the sequence
      Returns:
      the value of the token. If the token is null valued, null is returned.
    • getInetAddress

      public Inet6Address getInetAddress(int index)
      Description copied from interface: Ip6AddressTokenSequence
      Gets the value of the specified token as an Inet6Address value.
      Specified by:
      getInetAddress in interface Ip6AddressTokenSequence
      Parameters:
      index - the position of the token in the sequence
      Returns:
      the value of the token. If the token is null valued, null is returned.
    • getToken

      public Ip6AddressValued getToken(int index)
      Description copied from interface: TokenSequence
      Gets the value at the specified position.
      Specified by:
      getToken in interface Ip6AddressTokenSequence
      Specified by:
      getToken in interface ScalarTokenSequence
      Specified by:
      getToken in interface TokenSequence
      Parameters:
      index - the index of the token
      Returns:
      the value
    • getTokenSetter

      public Ip6AddressSettable getTokenSetter(int index)
      Description copied from interface: MutableTokenSequence
      Returns a mutator for the given index.
      Specified by:
      getTokenSetter in interface MutableIp6AddressTokenSequence
      Specified by:
      getTokenSetter in interface MutableScalarTokenSequence
      Specified by:
      getTokenSetter in interface MutableTokenSequence
      Parameters:
      index - the position
      Returns:
      a mutator for the given index.
    • getValues

      public void getValues(int start, long[][] values, boolean[] nulls, int offset, int length)
      Description copied from interface: Ip6AddressTokenSequence
      Gets the values and null indicators for a range of tokens.

      References to the values of the tokens are returned. Modifying these references modify the values of the tokens in the sequence.

      Specified by:
      getValues in interface Ip6AddressTokenSequence
      Parameters:
      start - the starting index of the range
      values - an array into which to place element values
      nulls - an array into which to place null indicator values
      offset - the starting offset into the target arrays. That is, elements[offset] and nulls[offset] will get the value and null indicator respectively of the token at position start, and so on.
      length - number of tokens to get
    • newValueIterator

      public Ip6AddressValuedIterator newValueIterator()
      Description copied from interface: TokenSequence
      Creates an iterator over the non-null values of this sequence. The iterator will automatically be reset as modifications are made to the sequence.
      Specified by:
      newValueIterator in interface Ip6AddressTokenSequence
      Specified by:
      newValueIterator in interface ScalarTokenSequence
      Specified by:
      newValueIterator in interface TokenSequence
      Returns:
      an newly-created iterator over the non-null values of this sequence.
    • isNull

      public final boolean isNull()
      Description copied from interface: ScalarTokenSequence
      Returns whether all elements are null.
      Specified by:
      isNull in interface ScalarTokenSequence
      Returns:
      whether all elements are null.
    • getModificationCount

      public final long getModificationCount()
      Description copied from interface: MutableScalarTokenSequence
      Returns the current modification count. Modification count must be strictly increasing.
      Specified by:
      getModificationCount in interface MutableScalarTokenSequence
      Returns:
      the current change sequence number
    • size

      public final int size()
      Description copied from interface: TokenSequence
      Gets the length of the sequence.
      Specified by:
      size in interface TokenSequence
      Returns:
      the number of tokens in the sequence.
    • setZero

      public final void setZero(int absoluteIndex)
      Description copied from interface: MutableTokenSequence
      Sets the token at the specified position to be zero valued.
      Specified by:
      setZero in interface MutableTokenSequence
      Parameters:
      absoluteIndex - the position of the token in the array
    • setZero

      public void setZero(int start, int length)
      Description copied from interface: MutableTokenSequence
      Sets the tokens in the specified subsequence to be zero valued.
      Specified by:
      setZero in interface MutableTokenSequence
      Parameters:
      start - the starting index of the subsequence in the array
      length - the length of the subsequence
    • setNull

      public final void setNull(int absoluteIndex)
      Description copied from interface: MutableTokenSequence
      Sets the token at the specified position to be null valued.
      Specified by:
      setNull in interface MutableTokenSequence
      Parameters:
      absoluteIndex - the position of the token in the array
    • setNull

      public final void setNull(int start, int length)
      Description copied from interface: MutableTokenSequence
      Sets the tokens in the specified subsequence to be null valued.
      Specified by:
      setNull in interface MutableTokenSequence
      Parameters:
      start - the starting index of the subsequence in the array
      length - the length of the subsequence
    • getType

      public ScalarTokenType getType()
      Description copied from interface: ScalarTokenSequence
      Gets the data type of the tokens in the sequence.
      Specified by:
      getType in interface ScalarTokenSequence
      Specified by:
      getType in interface ScalarTyped
      Specified by:
      getType in interface TokenTyped
      Returns:
      the token data type
    • isNull

      public final boolean isNull(int absoluteIndex)
      Description copied from interface: TokenSequence
      Indicates whether the specified token has a null value.
      Specified by:
      isNull in interface TokenSequence
      Parameters:
      absoluteIndex - the index of the token
      Returns:
      true if the element is null, false otherwise
    • isZero

      public final boolean isZero(int absoluteIndex)
      Description copied from interface: ScalarTokenSequence
      Indicates whether the specified token has a zero value.
      Specified by:
      isZero in interface ScalarTokenSequence
      Parameters:
      absoluteIndex - the index of the token
      Returns:
      true if the element is zero, false otherwise
    • compareElement

      public final int compareElement(int absoluteIndex, TokenValued value)
      Description copied from interface: TokenSequence
      Compares the value of the specified token to the token at which the given port is positioned.
      Specified by:
      compareElement in interface TokenSequence
      Parameters:
      absoluteIndex - the index of the token
      value - the input port positioned at the token for comparison
      Returns:
      0 if the values are equal, 1 if the sequence token value is greater, -1 if the sequence token value is lesser. A null value is greater than any other non-null; two null values compare as equal.
    • compareElements

      public final int compareElements(int lhsAbsoluteIndex, int rhsAbsoluteIndex)
      Description copied from interface: TokenSequence
      Compares the values of the tokens at the specified positions.
      Specified by:
      compareElements in interface TokenSequence
      Parameters:
      lhsAbsoluteIndex - the index of the left-hand element
      rhsAbsoluteIndex - the index of the right-hand element
      Returns:
      0 if the values are equal, 1 if the left hand value is greater, -1 if the left hand value is lesser. A null value is greater than any other non-null; two null values compare as equal.
    • getElementComparator

      public final ElementComparator getElementComparator(TokenOrder sortOrder)
      Description copied from interface: TokenSequence
      Gets an ElementComparator for this sequence using the specified ordering.
      Specified by:
      getElementComparator in interface TokenSequence
      Parameters:
      sortOrder - the desired ordering
      Returns:
      an ElementComparator for this sequence.
    • hashCode

      public final int hashCode(int absoluteIndex)
      Description copied from interface: TokenSequence
      Gets the hash code for the token at the specified position.
      Specified by:
      hashCode in interface TokenSequence
      Parameters:
      absoluteIndex - the index of the token
      Returns:
      the hash code for the token
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • toString

      public final String toString(int absoluteIndex)
      Description copied from interface: TokenSequence
      Gets the string representation of the token at the specified position.
      Specified by:
      toString in interface TokenSequence
      Parameters:
      absoluteIndex - the index of the token
      Returns:
      the string representation of the token
    • appendNull

      public final void appendNull()
      Append a null value to this sequence.
      Specified by:
      appendNull in interface MutableTokenSequence
    • appendNull

      public final void appendNull(int count)
      Append a null value to this sequence.
      Specified by:
      appendNull in interface MutableTokenSequence
      Parameters:
      count - the number of null values to append
    • appendZero

      public final void appendZero()
      Description copied from interface: MutableTokenSequence
      Appends a zero value to this sequence.
      Specified by:
      appendZero in interface MutableTokenSequence
    • appendZero

      public void appendZero(int count)
      Description copied from interface: MutableTokenSequence
      Appends the specified number of zero values to this sequence.
      Specified by:
      appendZero in interface MutableTokenSequence
      Parameters:
      count - the number of zero values to append
    • reset

      public final void reset()
      Description copied from interface: MutableTokenSequence
      Removes all elements from the sequence.
      Specified by:
      reset in interface MutableTokenSequence
    • append

      public final void append(TokenValued value)
      Description copied from interface: TokenAppendable
      Appends the specified token value to this sequence.

      The data types of the sequence and the value must be compatible. If the types are not identical, appropriate coercion will be attempted.

      Specified by:
      append in interface TokenAppendable
      Parameters:
      value - the token value to append
    • append

      public final void append(TokenValued value, long count)
      Description copied from interface: TokenAppendable
      Appends the specified token value to this sequence multiple times.

      The data types of the sequence and the value must be compatible. If the types are not identical, appropriate coercion will be attempted.

      Specified by:
      append in interface TokenAppendable
      Parameters:
      value - the token value to append
      count - the number of copies to append
    • setValue

      public final void setValue(int absoluteIndex, TokenValued value)
      Description copied from interface: MutableTokenSequence
      Sets the token at the specified position to the given value.
      Specified by:
      setValue in interface MutableTokenSequence
      Parameters:
      absoluteIndex - the position of the token in the array
      value - the value to which to set the token. This value must be of an appropriate type for the array.
    • fillValue

      public final void fillValue(int start, int length, TokenValued value)
      Description copied from interface: MutableTokenSequence
      Sets the tokens in the specified subsequence to the given value.
      Specified by:
      fillValue in interface MutableTokenSequence
      Parameters:
      start - the starting index of the subsequence in the array
      length - the length of the subsequence
      value - the value to which to set the tokens. This value must be of an appropriate type for the array
    • setValues

      public final void setValues(int start, TokenSequence values, int offset, int length)
      Description copied from interface: MutableTokenSequence
      Sets the tokens in the specified subsequence of the array to the corresponding values from a subsequence of the given source sequence.
      Specified by:
      setValues in interface MutableTokenSequence
      Parameters:
      start - the starting index of the subsequence in the array
      values - the source sequence. This sequence must be of an appropriate type for the array.
      offset - the starting index in the source sequence. Corresponding values will be taken relative to this position. That is, the value of the token at position offset in values will be assigned to the token at position start, and so on.
      length - the number of tokens to copy
    • append

      public final void append(TokenSequence data)
      Description copied from interface: TokenAppendable
      Appends all tokens in the specified sequence to this sequence.

      The data types of the sequences must be compatible. If not identical, appropriate coercion will be attempted.

      Specified by:
      append in interface TokenAppendable
      Parameters:
      data - the sequence to append
    • append

      public final void append(TokenSequence data, int start, int length)
      Description copied from interface: TokenAppendable
      Appends a subsequence of tokens in the specified sequence to this sequence.

      The data types of the sequences must be compatible. If not identical, appropriate coercion will be attempted.

      Specified by:
      append in interface TokenAppendable
      Parameters:
      data - the sequence containing tokens to append
      start - the starting index of the subsequence in the source
      length - the length of the subsequence
    • ensureCanonical

      public final void ensureCanonical()
      Description copied from interface: MutableScalarTokenSequence
      Ensures that the internal representation is in a canonical form such that it can be read safely by multiple threads.
      Specified by:
      ensureCanonical in interface MutableScalarTokenSequence