Module datarush.library
Class AbstractRecordValued<F extends ScalarValued>
- java.lang.Object
-
- com.pervasive.datarush.tokens.record.AbstractRecordValued<F>
-
- Type Parameters:
F
- the type ofScalarValued
objects contained in the record
- All Implemented Interfaces:
RecordValued
,TokenValued
,RecordTyped
,TokenTyped
- Direct Known Subclasses:
CompositeValue
,RecordRegister
,RecordToken
public abstract class AbstractRecordValued<F extends ScalarValued> extends Object implements RecordValued
For internal use only. A base implementation of aRecordValued
object, providing implementations of all required methods.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRecordValued(RecordTokenType type, F[] fieldValues, boolean validateType, ModificationCountProvider modificationCountProvider)
Constructs a value using the given elements as the field elements, using the specified type.protected
AbstractRecordValued(RecordTokenType type, F[] fieldValues, ModificationCountProvider modificationCountProvider)
Constructs a value using the given elements as the field elements, using the specified type.protected
AbstractRecordValued(F[] fieldValues, ModificationCountProvider modificationCountProvider)
Constructs a value using the given elements as the field elements.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
containsNull()
Determines if any field in the record is null valued.protected TokenConverter
getConverter()
Gets a memoized converter for this object.F
getField(int index)
Get the field at the given index within the list of fields.F
getField(String fieldName)
Gets the value of the field with the given name.F[]
getFields()
Gets the values of all fields in the recordRecordTokenType
getType()
Gets the data type of the token.boolean
isNull()
Indicates whether the token is null valued.ScalarValuedIterator
newFieldIterator(FieldIteratorProperties properties)
Create a new iterator for visiting the fields in this RecordValued object.ScalarValuedIterator
newFieldIterator(ScalarTokenType type)
Create a new iterator for visiting the fields in this RecordValued object.ScalarValuedIterator
newFieldIterator(ScalarTokenType type, String[] selectedFieldNames)
Create a new iterator for visiting the fields in this RecordValued object.int
size()
Gets the number of fields in the record schema.String
toString()
-
-
-
Constructor Detail
-
AbstractRecordValued
protected AbstractRecordValued(F[] fieldValues, ModificationCountProvider modificationCountProvider)
Constructs a value using the given elements as the field elements. A type will be generated from the element types using default field names.- Parameters:
fieldValues
- the elements to use as the fieldsmodificationCountProvider
- modification count provider. required for notification of underlying changes.
-
AbstractRecordValued
protected AbstractRecordValued(RecordTokenType type, F[] fieldValues, ModificationCountProvider modificationCountProvider)
Constructs a value using the given elements as the field elements, using the specified type. The field types will be cross-validated against the elements.- Parameters:
type
- the record schema to use for the valuefieldValues
- the elements to use as the fieldsmodificationCountProvider
- modification count provider. required for notification of underlying changes.- Throws:
DRException
- if the provided field types disagree with the types of the elements
-
AbstractRecordValued
protected AbstractRecordValued(RecordTokenType type, F[] fieldValues, boolean validateType, ModificationCountProvider modificationCountProvider)
Constructs a value using the given elements as the field elements, using the specified type.- Parameters:
type
- the record schema to use for the valuefieldValues
- the elements to use as the fieldsvalidateType
- indicates whether to cross-validate the type with the element typesmodificationCountProvider
- modification count provider. required for notification of underlying changes.- Throws:
DRException
- if type validation is requested and the provided field types disagree with the types of the elements
-
-
Method Detail
-
getType
public final RecordTokenType getType()
Description copied from interface:TokenValued
Gets the data type of the token. This type will dictate the valid values that can be contained.- Specified by:
getType
in interfaceRecordTyped
- Specified by:
getType
in interfaceRecordValued
- Specified by:
getType
in interfaceTokenTyped
- Specified by:
getType
in interfaceTokenValued
- Returns:
- the token type.
-
size
public final int size()
Description copied from interface:RecordValued
Gets the number of fields in the record schema.- Specified by:
size
in interfaceRecordValued
- Returns:
- the number of fields
-
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 interfaceTokenValued
- Returns:
true
if the token is null valued,false
otherwise
-
containsNull
public final boolean containsNull()
Description copied from interface:RecordValued
Determines if any field in the record is null valued.- Specified by:
containsNull
in interfaceRecordValued
- Returns:
true
if at least one field is null valued,false
if none are
-
getField
public final F getField(int index)
Description copied from interface:RecordValued
Get the field at the given index within the list of fields.- Specified by:
getField
in interfaceRecordValued
- Parameters:
index
- zero-based index into the field list- Returns:
- the field's value
-
getField
public final F getField(String fieldName)
Description copied from interface:RecordValued
Gets the value of the field with the given name.- Specified by:
getField
in interfaceRecordValued
- Parameters:
fieldName
- the field name- Returns:
- the field's value
-
getFields
public final F[] getFields()
Description copied from interface:RecordValued
Gets the values of all fields in the record- Specified by:
getFields
in interfaceRecordValued
- Returns:
- an array containing the values of the record's fields
-
getConverter
protected final TokenConverter getConverter()
Gets a memoized converter for this object. Any conversion operations should use the returned converter to reduce the overhead of allocating converters each time one is required.- Returns:
- a converter usable with the value
-
newFieldIterator
public final ScalarValuedIterator newFieldIterator(ScalarTokenType type)
Description copied from interface:RecordValued
Create a new iterator for visiting the fields in this RecordValued object. Visitation order will be sorted by the field's index.- Specified by:
newFieldIterator
in interfaceRecordValued
- Parameters:
type
- the type of fields over which to iterate- Returns:
- an iterator over fields of the specified type
-
newFieldIterator
public final ScalarValuedIterator newFieldIterator(ScalarTokenType type, String[] selectedFieldNames)
Description copied from interface:RecordValued
Create a new iterator for visiting the fields in this RecordValued object. Visitation order will be sorted by the field's index.- Specified by:
newFieldIterator
in interfaceRecordValued
- Parameters:
type
- the type of fields over which to iterateselectedFieldNames
- the fields over which to iterate- Returns:
- an iterator over the specified fields
-
newFieldIterator
public final ScalarValuedIterator newFieldIterator(FieldIteratorProperties properties)
Description copied from interface:RecordValued
Create a new iterator for visiting the fields in this RecordValued object. Visitation order will optionally be sorted by the field's index, depending on the value ofFieldIteratorProperties.isSorted()
.- Specified by:
newFieldIterator
in interfaceRecordValued
- Parameters:
properties
- properties for the iterator- Returns:
- an iterator over the fields
-
-