Class CompositeTokenSequence

java.lang.Object
com.pervasive.datarush.sequences.record.CompositeTokenSequence
All Implemented Interfaces:
RecordTokenSequence, TokenSequence, RecordTyped, TokenTyped

public class CompositeTokenSequence extends Object
A record sequence comprised of scalar sequences for fields.

There is no guarantee of immutability for these objects. While no mutators are provided on CompositeTokenSequence, the underlying columns may refer to mutable objects.

  • Constructor Details

    • CompositeTokenSequence

      public CompositeTokenSequence(RecordTokenType type, ScalarTokenSequence[] columns)
      Create a new sequence backed with the specified scalar token sequences containing the field values for each record element. All sequences must be of the same length.
      Parameters:
      type - the record schema
      columns - the ScalarTokenArray objects containing the column data.
      Throws:
      IllegalArgumentException - if not all columns are of the same length
  • Method Details

    • columns

      public final int columns()
      Description copied from interface: RecordTokenSequence
      Gets the number of columns in a record.
      Specified by:
      columns in interface RecordTokenSequence
      Returns:
      the number of columns in a record.
    • getColumn

      public ScalarTokenSequence getColumn(int i)
      Description copied from interface: RecordTokenSequence
      Gets the ScalarTokenSequence containing the specified column data.
      Specified by:
      getColumn in interface RecordTokenSequence
      Parameters:
      i - the column sequence to get. Indexes are zero-based and ordered identically to the fields in the RecordTokenType for this array.
      Returns:
      a ScalarTokenSequence containing the token values for the column.
    • 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.
    • getType

      public final RecordTokenType getType()
      Description copied from interface: TokenTyped
      Gets the type of data tokens handled by the implementor.
      Specified by:
      getType in interface RecordTyped
      Specified by:
      getType in interface TokenTyped
      Returns:
      the type of tokens associated with the class.
    • isNull

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

      public final boolean containsNull(int index)
      Description copied from interface: RecordTokenSequence
      Determines if any column in the specified row is null valued.
      Specified by:
      containsNull in interface RecordTokenSequence
      Parameters:
      index - the row to check
      Returns:
      true if at least one column is null valued, false if none are
    • compareElement

      public final int compareElement(int index, TokenValued value)
      Description copied from interface: RecordTokenSequence
      Compares the values of the specified row of tokens to the tokens at which the given port is positioned. Tokens in a row are compared to the token of the subport in the same position as the token's column. Comparison starts with the first column and progresses until the tokens compare unequal or there are no more columns.

      The source sequence must be composite and have the same number of columns as this sequence. All columns must be of comparable types.

      Specified by:
      compareElement in interface RecordTokenSequence
      Specified by:
      compareElement in interface TokenSequence
      Parameters:
      index - 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 lhsIndex, int rhsIndex)
      Description copied from interface: TokenSequence
      Compares the values of the tokens at the specified positions.
      Specified by:
      compareElements in interface RecordTokenSequence
      Specified by:
      compareElements in interface TokenSequence
      Parameters:
      lhsIndex - the index of the left-hand element
      rhsIndex - 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: RecordTokenSequence
      Gets an ElementComparator for the token array and given ordering. All columns will by sorted in the given order.
      Specified by:
      getElementComparator in interface RecordTokenSequence
      Specified by:
      getElementComparator in interface TokenSequence
      Parameters:
      sortOrder - the desired ordering
      Returns:
      an ElementComparator on the CompositeTokenArray.
    • getElementComparator

      public final ElementComparator getElementComparator(TokenOrder... sortOrder)
      Description copied from interface: RecordTokenSequence
      Gets an ElementComparator for the token array and given ordering. Each column will be sorted by the order specified in the matching position in the ordering array. An ordering must be specified for each column.
      Specified by:
      getElementComparator in interface RecordTokenSequence
      Parameters:
      sortOrder - the desired ordering
      Returns:
      an ElementComparator on this sequence
    • getElementComparator

      public final ElementComparator getElementComparator(SortKey... sortKeys)
      Description copied from interface: RecordTokenSequence
      Gets an ElementComparator for the token array for the fields with the given names and the given token orders.
      Specified by:
      getElementComparator in interface RecordTokenSequence
      Parameters:
      sortKeys - list of key fields and sort order for each
      Returns:
      an ElementComparator on this sequence
    • getToken

      public final RecordValued getToken(int index)
      Description copied from interface: TokenSequence
      Gets the value at the specified position.
      Specified by:
      getToken in interface RecordTokenSequence
      Specified by:
      getToken in interface TokenSequence
      Parameters:
      index - the index of the token
      Returns:
      the value
    • hashCode

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

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

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

      public RecordValuedIterator 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 RecordTokenSequence
      Specified by:
      newValueIterator in interface TokenSequence
      Returns:
      an newly-created iterator over the non-null values of this sequence.