public final class SparseRecordTokenList extends Object implements MutableRecordTokenSequence
MutableRecordTokenSequence 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 and Description |
|---|
SparseRecordTokenList(RecordRegisterStorage storage)
Create a list using the specified storage.
|
SparseRecordTokenList(RecordTokenType type,
int capacity)
Create an empty array with the specified type.
|
| Modifier and Type | Method and Description |
|---|---|
void |
append(TokenSequence data)
Appends all tokens in the specified sequence to this
sequence.
|
void |
append(TokenSequence data,
int start,
int length)
Appends a subsequence of tokens in the specified sequence
to this sequence.
|
void |
append(TokenValued value)
Appends the specified token value to this sequence.
|
void |
append(TokenValued value,
long count)
Appends the specified token value to this sequence
multiple times.
|
void |
appendNull()
Appends a null value to this sequence.
|
void |
appendNull(int count)
Appends the specified number of null values to this sequence.
|
void |
appendZero()
Appends a zero value to this sequence.
|
void |
appendZero(int count)
Appends the specified number of zero values to this sequence.
|
int |
columns()
Gets the number of columns in a record.
|
int |
compareElement(int index,
TokenValued value)
Compares the values of the specified row of tokens to the
tokens at which the given port is positioned.
|
int |
compareElements(int lhsIndex,
int rhsIndex)
Compares the values of the tokens at the specified
positions.
|
boolean |
containsNull(int index)
Determines if any column in the specified row is null valued.
|
void |
fillValue(int start,
int length,
TokenValued value)
Sets the tokens in the specified subsequence to the given value.
|
ScalarTokenSequence |
getColumn(int index)
Gets the
ScalarTokenSequence containing the specified
column data. |
ElementComparator |
getElementComparator(SortKey... sortKeys)
Gets an
ElementComparator for the token array for the
fields with the given names and the given token orders. |
ElementComparator |
getElementComparator(TokenOrder... sortOrder)
Gets an ElementComparator for the token array and given ordering.
|
ElementComparator |
getElementComparator(TokenOrder sortOrder)
Gets an ElementComparator for the token array and given ordering.
|
RecordValued |
getToken(int index)
Gets the value at the specified position.
|
RecordSettable |
getTokenSetter(int index)
Returns a mutator for the given index.
|
RecordTokenType |
getType()
Gets the type of data tokens handled by the implementor.
|
int |
hashCode(int index)
Gets the hash code for the token at the specified position.
|
boolean |
isNull(int index)
Indicates whether the specified token has a null value.
|
RecordValuedIterator |
newValueIterator()
Creates an iterator over the non-null values of this sequence.
|
void |
reset()
Removes all elements from the sequence.
|
void |
setNull(int index)
Sets the token at the specified position to be null valued.
|
void |
setNull(int start,
int length)
Sets the tokens in the specified subsequence to be null valued.
|
void |
setValue(int index,
TokenValued value)
Sets the token at the specified position to the given value.
|
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.
|
void |
setZero(int index)
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.
|
int |
size()
Gets the length of the sequence.
|
String |
toString() |
String |
toString(int index)
Gets the string representation of the token at the specified
position.
|
public SparseRecordTokenList(RecordTokenType type, int capacity)
type - the record schemacapacity - the initial capacity.public SparseRecordTokenList(RecordRegisterStorage storage)
storage - the data storage for the listpublic ScalarTokenSequence getColumn(int index)
RecordTokenSequenceScalarTokenSequence containing the specified
column data.getColumn in interface RecordTokenSequenceindex - the column sequence to get. Indexes are zero-based
and ordered identically to the fields in the
RecordTokenType for this array.ScalarTokenSequence containing the token
values for the column.public int columns()
RecordTokenSequencecolumns in interface RecordTokenSequencepublic int size()
TokenSequencesize in interface TokenSequencepublic RecordTokenType getType()
TokenTypedgetType in interface RecordTypedgetType in interface TokenTypedpublic void reset()
MutableTokenSequencereset in interface MutableTokenSequencepublic int hashCode(int index)
TokenSequencehashCode in interface TokenSequenceindex - the index of the tokenpublic boolean containsNull(int index)
RecordTokenSequencecontainsNull in interface RecordTokenSequenceindex - the row to checktrue if at least one column is null
valued, false if none arepublic boolean isNull(int index)
TokenSequenceisNull in interface TokenSequenceindex - the index of the tokentrue if the element is null,
false otherwisepublic final String toString(int index)
TokenSequencetoString in interface TokenSequenceindex - the index of the tokenpublic int compareElement(int index,
TokenValued value)
RecordTokenSequenceThe source sequence must be composite and have the same number of columns as this sequence. All columns must be of comparable types.
compareElement in interface RecordTokenSequencecompareElement in interface TokenSequenceindex - the index of the tokenvalue - the input port positioned at the token for
comparison0 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.public int compareElements(int lhsIndex,
int rhsIndex)
TokenSequencecompareElements in interface RecordTokenSequencecompareElements in interface TokenSequencelhsIndex - the index of the left-hand elementrhsIndex - the index of the right-hand element0 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.public ElementComparator getElementComparator(TokenOrder sortOrder)
RecordTokenSequencegetElementComparator in interface RecordTokenSequencegetElementComparator in interface TokenSequencesortOrder - the desired orderingpublic ElementComparator getElementComparator(TokenOrder... sortOrder)
RecordTokenSequencegetElementComparator in interface RecordTokenSequencesortOrder - the desired orderingElementComparator on this sequencepublic ElementComparator getElementComparator(SortKey... sortKeys)
RecordTokenSequenceElementComparator for the token array for the
fields with the given names and the given token orders.getElementComparator in interface RecordTokenSequencesortKeys - list of key fields and sort order for eachElementComparator on this sequencepublic RecordValued getToken(int index)
TokenSequencegetToken in interface RecordTokenSequencegetToken in interface TokenSequenceindex - the index of the tokenpublic RecordSettable getTokenSetter(int index)
MutableTokenSequencegetTokenSetter in interface MutableTokenSequencegetTokenSetter in interface MutableRecordTokenSequenceindex - the positionpublic RecordValuedIterator newValueIterator()
TokenSequencenewValueIterator in interface RecordTokenSequencenewValueIterator in interface TokenSequencepublic void appendNull()
MutableTokenSequenceappendNull in interface MutableTokenSequencepublic void appendNull(int count)
MutableTokenSequenceappendNull in interface MutableTokenSequencecount - the number of null values to appendpublic void appendZero()
MutableTokenSequenceappendZero in interface MutableTokenSequencepublic void appendZero(int count)
MutableTokenSequenceappendZero in interface MutableTokenSequencecount - the number of zero values to appendpublic void append(TokenValued value)
TokenAppendableThe data types of the sequence and the value must be compatible. If the types are not identical, appropriate coercion will be attempted.
append in interface TokenAppendablevalue - the token value to appendpublic void append(TokenValued value, long count)
TokenAppendableThe data types of the sequence and the value must be compatible. If the types are not identical, appropriate coercion will be attempted.
append in interface TokenAppendablevalue - the token value to appendcount - the number of copies to appendpublic void append(TokenSequence data)
TokenAppendableThe data types of the sequences must be compatible. If not identical, appropriate coercion will be attempted.
append in interface TokenAppendabledata - the sequence to appendpublic void append(TokenSequence data, int start, int length)
TokenAppendableThe data types of the sequences must be compatible. If not identical, appropriate coercion will be attempted.
append in interface TokenAppendabledata - the sequence containing tokens to appendstart - the starting index of the subsequence in the sourcelength - the length of the subsequencepublic void setNull(int index)
MutableTokenSequencesetNull in interface MutableTokenSequenceindex - the position of the token in the arraypublic void setNull(int start,
int length)
MutableTokenSequencesetNull in interface MutableTokenSequencestart - the starting index of the subsequence in the arraylength - the length of the subsequencepublic void setZero(int index)
MutableTokenSequencesetZero in interface MutableTokenSequenceindex - the position of the token in the arraypublic void setZero(int start,
int length)
MutableTokenSequencesetZero in interface MutableTokenSequencestart - the starting index of the subsequence in the arraylength - the length of the subsequencepublic void setValue(int index,
TokenValued value)
MutableTokenSequencesetValue in interface MutableTokenSequenceindex - the position of the token in the arrayvalue - the value to which to set the token. This value
must be of an appropriate type for the array.public void fillValue(int start,
int length,
TokenValued value)
MutableTokenSequencefillValue in interface MutableTokenSequencestart - the starting index of the subsequence in the arraylength - the length of the subsequencevalue - the value to which to set the tokens. This value
must be of an appropriate type for the arraypublic void setValues(int start,
TokenSequence values,
int offset,
int length)
MutableTokenSequencesetValues in interface MutableTokenSequencestart - the starting index of the subsequence in the arrayvalues - 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 copyCopyright © 2016 Actian Corporation. All rights reserved.