java.lang.Object
com.pervasive.datarush.schema.TextRecord
- All Implemented Interfaces:
RecordTextSchema<TextDataType>,TextSchema
A definition of a variable-width record type in a text file.
Because fields are not necessarily fixed-size, additional information
must be provided to a structured text reader or writer so that fields
can be identified correctly.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final TextRecordDiscovererThe default schema discoverer used for reading delimited text.static final TextRecordDiscovererA schema discoverer which treats all fields as raw text.protected final Map<String,TextField<TextDataType>> -
Constructor Summary
ConstructorsConstructorDescriptionDefines an empty record.TextRecord(TextConversionDefaults defaults) Defines an empty record with the specified text conversion behavior.TextRecord(TextConversionDefaults defaults, Map<String, TextDataType> fieldTypes) Defines a record with the specified text conversion behavior and fields. -
Method Summary
Modifier and TypeMethodDescriptionstatic final TextRecordconvert(RecordTokenType type) Generates a text file schema from a token type.static final TextRecordconvert(RecordTokenType type, TextConversionDefaults defaults) Generates a text file schema from a token type, using the specified schema-wide default behavior.static final TextRecordconvert(RecordTokenType type, TextTypes.StringConversion behavior) Generates a text file schema from a token type, using the specified string conversion default behavior.final TokenFormattercreateFieldFormatter(String fieldName) Creates a new formatter for values of the specified field.final TokenParsercreateFieldParser(String fieldName) Creates a new parser for values of the specified field.final voiddefineField(String name, TextDataType type) Defines a new field in the record with the specified name and type.final voiddefineField(String name, TextDataType type, FieldDomain domain) Defines a new field in the record with the specified name and type.static TextRecordDiscovererextendDefault(List<TypePattern> additions) Creates a new discoverer which extends the default patterns.final TextConversionDefaultsGets the default conversion behaviors for fields in the schema which do not explicitly define any.final intGets the number of fields defined in the record.final FieldDomaingetFieldDomain(String name) Gets the domain of the specified field in the record.Gets the names of the fields defined in the record.final TextDataTypegetFieldType(String name) Gets the type of the specified fields in the record.final RecordTokenTypeGets the type of the token representation of the text record.final booleanisFieldDefined(String name) Indicates whether a field with the given name is already defined.final voidsetFieldType(String name, TextDataType newType) Modifies the value conversion scheme for an existing field.
-
Field Details
-
DEFAULT_AUTODISCOVER
The default schema discoverer used for reading delimited text. This is the same discoverer as obtained by creating a newPatternBasedDiscovery. -
TEXT_FIELD_DISCOVER
A schema discoverer which treats all fields as raw text. When used withReadDelimitedText, the resulting schema identifies the field values without interpreting them.The output type produced is compatible for use as input to
ParseTextFields. -
textFieldsByName
-
-
Constructor Details
-
TextRecord
public TextRecord()Defines an empty record. Default text conversion behavior is used.An empty record definition is not meaningful; at least one field must be defined before the schema is used.
- See Also:
-
TextRecord
Defines an empty record with the specified text conversion behavior.An empty record definition is not meaningful; at least one field must be defined before the schema is used.
- Parameters:
defaults- text conversion behavior to apply by default to the schema
-
TextRecord
Defines a record with the specified text conversion behavior and fields. The field order is the iteration order of the provided field mapping.- Parameters:
defaults- default text conversion behavior for the schemafieldTypes- the defined fields in the record schema default to the schema
-
-
Method Details
-
convert
Generates a text file schema from a token type. The names and order of fields in the resulting schema are the same as in the record token type. Default conversion for each token type will be used.- Parameters:
type- the template type for which to create a text schema- Returns:
- a new schema which maps to the specified token type
-
convert
Generates a text file schema from a token type, using the specified string conversion default behavior. The names and order of fields in the resulting schema are the same as in the record token type. Default conversion for each token type will be used, with strings following the requested conversion behavior.- Parameters:
type- the template type for which to create a text schemabehavior- the schema-wide default behavior for string conversion- Returns:
- a new schema which maps to the specified token type
-
getTextFields
-
convert
Generates a text file schema from a token type, using the specified schema-wide default behavior. The names and order of fields in the resulting schema are the same as in the record token type. Default conversion for each token type will be used, following the requested behavior where applicable.- Parameters:
type- the template type for which to create a text schemadefaults- the schema-wide default settings for text conversion- Returns:
- a new schema which maps to the specified token type
-
extendDefault
Creates a new discoverer which extends the default patterns. The specified patterns take precedence over default patterns; this is equivalent to prepending the additions to thePatternBasedDiscovery.DEFAULT_PATTERNS.- Parameters:
additions- additional patterns to use in determining field types- Returns:
- a new discoverer for automatically generating a schema for a delimited text file
-
getDefaults
Description copied from interface:RecordTextSchemaGets the default conversion behaviors for fields in the schema which do not explicitly define any. These include settings such as the null indicator for values and whether string values are trimmed or preserved as is.- Specified by:
getDefaultsin interfaceRecordTextSchema<T extends TextDataType>- Returns:
- the default behavior for the schema
-
getTokenType
Description copied from interface:RecordTextSchemaGets the type of the token representation of the text record. The fields of the resulting type are in the same order and have the same name as the fields in the schema.- Specified by:
getTokenTypein interfaceRecordTextSchema<T extends TextDataType>- Returns:
- the token type representing the schema
-
getFieldCount
public final int getFieldCount()Description copied from interface:RecordTextSchemaGets the number of fields defined in the record.- Specified by:
getFieldCountin interfaceRecordTextSchema<T extends TextDataType>- Returns:
- the number of defined fields
-
getFieldNames
Description copied from interface:RecordTextSchemaGets the names of the fields defined in the record. The names are returned in the order they were defined.- Specified by:
getFieldNamesin interfaceRecordTextSchema<T extends TextDataType>- Returns:
- a list of defined field names
-
isFieldDefined
Description copied from interface:RecordTextSchemaIndicates whether a field with the given name is already defined.- Specified by:
isFieldDefinedin interfaceRecordTextSchema<T extends TextDataType>- Parameters:
name- the field to check- Returns:
trueif a field with the name is defined in the schema,falseotherwise.
-
defineField
Defines a new field in the record with the specified name and type.- Parameters:
name- the name associated with the field. The name must be unique amongst all defined fields.type- specifies how to convert between text and token values
-
defineField
Defines a new field in the record with the specified name and type.- Parameters:
name- the name associated with the field. The name must be unique amongst all defined fields.type- specifies how to convert between text and token values
-
getFieldType
Description copied from interface:RecordTextSchemaGets the type of the specified fields in the record. The names are returned in the order they were defined.- Specified by:
getFieldTypein interfaceRecordTextSchema<T extends TextDataType>- Parameters:
name- the field for which to fetch the type- Returns:
- the text type of the named field
-
getFieldDomain
Description copied from interface:RecordTextSchemaGets the domain of the specified field in the record.- Specified by:
getFieldDomainin interfaceRecordTextSchema<T extends TextDataType>- Parameters:
name- the field for which to fetch the domain- Returns:
- the domain of the named field
-
setFieldType
Modifies the value conversion scheme for an existing field.- Parameters:
name- the field to modify. This field must exist in the schema.newType- specifies how to convert between text and token values
-
createFieldParser
Description copied from interface:RecordTextSchemaCreates a new parser for values of the specified field.- Specified by:
createFieldParserin interfaceRecordTextSchema<T extends TextDataType>- Parameters:
fieldName- the field for which to obtain a parser- Returns:
- a parser for converting text values to token values for the field
-
createFieldFormatter
Description copied from interface:RecordTextSchemaCreates a new formatter for values of the specified field.- Specified by:
createFieldFormatterin interfaceRecordTextSchema<T extends TextDataType>- Parameters:
fieldName- the field for which to obtain a formatter- Returns:
- a formatter for converting token values to text values for the field
-