class RecordMetaDataImpl<C extends Context> extends java.lang.Object implements RecordMetaData
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.Integer,java.lang.annotation.Annotation> |
annotationHashes |
(package private) C |
context |
private java.util.Map<java.lang.Class,Conversion> |
conversionByType |
private FieldConversionMapping |
conversions |
private java.util.Map<java.lang.Class,java.util.Map<java.lang.annotation.Annotation,Conversion>> |
conversionsByAnnotation |
private MetaData[] |
indexMap |
Constructor and Description |
---|
RecordMetaDataImpl(C context) |
Modifier and Type | Method and Description |
---|---|
(package private) <T> java.lang.annotation.Annotation |
buildAnnotation(java.lang.Class<T> type,
java.lang.String args1,
java.lang.String... args2) |
(package private) static java.lang.annotation.Annotation |
buildBooleanStringAnnotation(java.lang.String[] trueStrings,
java.lang.String[] falseStrings) |
boolean |
containsColumn(java.lang.String headerName)
Queries whether a given header name exists in the
Record s parsed from the input |
private <T> T |
convert(MetaData md,
java.lang.String[] data,
java.lang.Class<T> expectedType,
Conversion[] conversions) |
private <T> T |
convert(MetaData md,
java.lang.String[] data,
java.lang.Class<T> type,
T defaultValue,
java.lang.annotation.Annotation annotation) |
private static java.lang.Object |
convert(MetaData md,
java.lang.String[] data,
Conversion[] conversions) |
private java.lang.Object |
convert(MetaData md,
java.lang.String[] data,
java.lang.Object defaultValue,
Conversion[] conversions) |
<T extends java.lang.Enum<T>> |
convertFields(java.lang.Class<T> enumType,
Conversion... conversions)
Associates a sequence of
Conversion s to fields of a given set of fields |
FieldSet<java.lang.String> |
convertFields(Conversion... conversions)
Associates a sequence of
Conversion s to fields of a given set of field names |
FieldSet<java.lang.Integer> |
convertIndexes(Conversion... conversions)
Associates a sequence of
Conversion s to fields of a given set of column indexes |
java.lang.Object |
defaultValueOf(java.lang.Enum<?> column)
Returns the default value associated with a column (defined using
setDefaultValueOf(Column, Object) ) |
java.lang.Object |
defaultValueOf(int columnIndex)
Returns the default value associated with a column (defined using
setDefaultValueOf(Column, Object) ) |
java.lang.Object |
defaultValueOf(java.lang.String headerName)
Returns the default value associated with a column (defined using
setDefaultValueOf(Column, Object) ) |
private FieldConversionMapping |
getConversions() |
private MetaData |
getMetaData(java.lang.Enum<?> column) |
MetaData |
getMetaData(int index) |
private MetaData |
getMetaData(java.lang.String name) |
(package private) <T> T |
getObjectValue(java.lang.String[] data,
java.lang.Enum<?> column,
java.lang.Class<T> type,
T defaultValue) |
(package private) <T> T |
getObjectValue(java.lang.String[] data,
java.lang.Enum<?> column,
java.lang.Class<T> type,
T defaultValue,
java.lang.String format,
java.lang.String... formatOptions) |
(package private) <T> T |
getObjectValue(java.lang.String[] data,
int columnIndex,
java.lang.Class<T> type,
T defaultValue) |
(package private) <T> T |
getObjectValue(java.lang.String[] data,
int columnIndex,
java.lang.Class<T> type,
T defaultValue,
java.lang.String format,
java.lang.String... formatOptions) |
(package private) <T> T |
getObjectValue(java.lang.String[] data,
java.lang.String headerName,
java.lang.Class<T> type,
T defaultValue) |
(package private) <T> T |
getObjectValue(java.lang.String[] data,
java.lang.String headerName,
java.lang.Class<T> type,
T defaultValue,
java.lang.String format,
java.lang.String... formatOptions) |
private NormalizedString[] |
getValidatedHeaders() |
(package private) java.lang.String |
getValue(java.lang.String[] data,
java.lang.Enum<?> column) |
(package private) <T> T |
getValue(java.lang.String[] data,
java.lang.Enum<?> column,
java.lang.Class<T> expectedType,
Conversion[] conversions) |
(package private) <T> T |
getValue(java.lang.String[] data,
java.lang.Enum<?> column,
T defaultValue,
Conversion[] conversions) |
(package private) java.lang.String |
getValue(java.lang.String[] data,
int columnIndex) |
(package private) <T> T |
getValue(java.lang.String[] data,
int columnIndex,
java.lang.Class<T> expectedType,
Conversion[] conversions) |
(package private) <T> T |
getValue(java.lang.String[] data,
int columnIndex,
T defaultValue,
Conversion[] conversions) |
(package private) java.lang.String |
getValue(java.lang.String[] data,
java.lang.String headerName) |
(package private) <T> T |
getValue(java.lang.String[] data,
java.lang.String headerName,
java.lang.Class<T> expectedType,
Conversion[] conversions) |
(package private) <T> T |
getValue(java.lang.String[] data,
java.lang.String headerName,
T defaultValue,
Conversion[] conversions) |
java.lang.String[] |
headers()
Returns the column names of the
Record s parsed from the input. |
int |
indexOf(java.lang.Enum<?> column)
Returns the index of a given column
|
int |
indexOf(java.lang.String headerName)
Returns the index of a given column
|
private void |
initializeMetadataConversions(java.lang.String[] data,
MetaData md) |
(package private) MetaData |
metadataOf(java.lang.Enum<?> column) |
(package private) MetaData |
metadataOf(int columnIndex) |
(package private) MetaData |
metadataOf(java.lang.String headerName) |
private static java.lang.annotation.Annotation |
newFormatAnnotation(java.lang.String format,
java.lang.String... formatOptions) |
java.lang.String[] |
selectedHeaders()
Returns the sequence of headers that have been selected.
|
<T> void |
setDefaultValueOfColumns(T defaultValue,
java.lang.Enum<?>... columns)
Associates a default value with one or more columns, in case the values contained are
null |
<T> void |
setDefaultValueOfColumns(T defaultValue,
int... columnIndexes)
Associates a default value with one or more columns, in case the values contained are
null |
<T> void |
setDefaultValueOfColumns(T defaultValue,
java.lang.String... headerNames)
Associates a default value with one or more columns, in case the values contained are
null |
void |
setTypeOfColumns(java.lang.Class<?> type,
java.lang.Enum... columns)
Associates a type with one or more column.
|
void |
setTypeOfColumns(java.lang.Class<?> type,
int... columnIndexes)
Associates a type with one or more column.
|
void |
setTypeOfColumns(java.lang.Class<?> type,
java.lang.String... headerNames)
Associates a type with one or more column.
|
java.lang.Class<?> |
typeOf(java.lang.Enum<?> column)
Returns the type associated with a given column, defined with the method
setTypeOfColumns(type, columns) |
java.lang.Class<?> |
typeOf(int columnIndex)
Returns the type associated with a given column, defined with the method
setTypeOfColumns(type, columns) |
java.lang.Class<?> |
typeOf(java.lang.String headerName)
Returns the type associated with a given column name, defined with the method
setTypeOfColumns(type, columns) |
private java.util.Map<java.lang.Class,Conversion> conversionByType
private java.util.Map<java.lang.Class,java.util.Map<java.lang.annotation.Annotation,Conversion>> conversionsByAnnotation
private java.util.Map<java.lang.Integer,java.lang.annotation.Annotation> annotationHashes
private MetaData[] indexMap
private FieldConversionMapping conversions
RecordMetaDataImpl(C context)
private MetaData getMetaData(java.lang.String name)
private NormalizedString[] getValidatedHeaders()
private MetaData getMetaData(java.lang.Enum<?> column)
public MetaData getMetaData(int index)
public int indexOf(java.lang.Enum<?> column)
RecordMetaData
indexOf
in interface RecordMetaData
column
- the column whose index will be returnedMetaData metadataOf(java.lang.String headerName)
MetaData metadataOf(java.lang.Enum<?> column)
MetaData metadataOf(int columnIndex)
public int indexOf(java.lang.String headerName)
RecordMetaData
indexOf
in interface RecordMetaData
headerName
- name of the column whose index will be returnedpublic java.lang.Class<?> typeOf(java.lang.Enum<?> column)
RecordMetaData
setTypeOfColumns(type, columns)
typeOf
in interface RecordMetaData
column
- the column whose type will be returnedpublic java.lang.Class<?> typeOf(java.lang.String headerName)
RecordMetaData
setTypeOfColumns(type, columns)
typeOf
in interface RecordMetaData
headerName
- name of the column whose type will be returnedpublic java.lang.Class<?> typeOf(int columnIndex)
RecordMetaData
setTypeOfColumns(type, columns)
typeOf
in interface RecordMetaData
columnIndex
- the position of the column whose type will be returnedpublic <T> void setDefaultValueOfColumns(T defaultValue, java.lang.Enum<?>... columns)
RecordMetaData
null
setDefaultValueOfColumns
in interface RecordMetaData
T
- type of the default value.defaultValue
- the value to be used for the given column when the parsed result is null
columns
- the columns to be associated with a default value.public <T> void setDefaultValueOfColumns(T defaultValue, java.lang.String... headerNames)
RecordMetaData
null
setDefaultValueOfColumns
in interface RecordMetaData
T
- type of the default value.defaultValue
- the value to be used for the given column when the parsed result is null
headerNames
- the column names to be associated with a default value.public <T> void setDefaultValueOfColumns(T defaultValue, int... columnIndexes)
RecordMetaData
null
setDefaultValueOfColumns
in interface RecordMetaData
T
- type of the default value.defaultValue
- the value to be used for the given column when the parsed result is null
columnIndexes
- the column indexes to be associated with a default value.public java.lang.Object defaultValueOf(java.lang.Enum<?> column)
RecordMetaData
setDefaultValueOf(Column, Object)
)defaultValueOf
in interface RecordMetaData
column
- the column whose default value will be returnednull
.public java.lang.Object defaultValueOf(java.lang.String headerName)
RecordMetaData
setDefaultValueOf(Column, Object)
)defaultValueOf
in interface RecordMetaData
headerName
- the column name whose default value will be returnednull
.public java.lang.Object defaultValueOf(int columnIndex)
RecordMetaData
setDefaultValueOf(Column, Object)
)defaultValueOf
in interface RecordMetaData
columnIndex
- the column index whose default value will be returnednull
.private FieldConversionMapping getConversions()
public <T extends java.lang.Enum<T>> FieldSet<T> convertFields(java.lang.Class<T> enumType, Conversion... conversions)
RecordMetaData
Conversion
s to fields of a given set of fieldsconvertFields
in interface RecordMetaData
T
- the enumeration typeenumType
- the type of the enumeration whose values represent headers in the input Record
sconversions
- the sequence of conversions to applypublic FieldSet<java.lang.String> convertFields(Conversion... conversions)
RecordMetaData
Conversion
s to fields of a given set of field namesconvertFields
in interface RecordMetaData
conversions
- the sequence of conversions to applypublic FieldSet<java.lang.Integer> convertIndexes(Conversion... conversions)
RecordMetaData
Conversion
s to fields of a given set of column indexesconvertIndexes
in interface RecordMetaData
conversions
- the sequence of conversions to applypublic java.lang.String[] headers()
RecordMetaData
Record
s parsed from the input.
If the headers are extracted from the input (i.e. CommonParserSettings.isHeaderExtractionEnabled()
== true), then these values will be returned.
If no headers are extracted from the input, then the configured headers in CommonSettings.getHeaders()
will be returned.
headers
in interface RecordMetaData
Record
s parsed from the inputpublic java.lang.String[] selectedHeaders()
RecordMetaData
RecordMetaData.headers()
.selectedHeaders
in interface RecordMetaData
java.lang.String getValue(java.lang.String[] data, java.lang.String headerName)
java.lang.String getValue(java.lang.String[] data, int columnIndex)
java.lang.String getValue(java.lang.String[] data, java.lang.Enum<?> column)
private <T> T convert(MetaData md, java.lang.String[] data, java.lang.Class<T> expectedType, Conversion[] conversions)
private java.lang.Object convert(MetaData md, java.lang.String[] data, java.lang.Object defaultValue, Conversion[] conversions)
private static java.lang.Object convert(MetaData md, java.lang.String[] data, Conversion[] conversions)
<T> T getValue(java.lang.String[] data, java.lang.String headerName, T defaultValue, Conversion[] conversions)
<T> T getValue(java.lang.String[] data, int columnIndex, T defaultValue, Conversion[] conversions)
<T> T getValue(java.lang.String[] data, java.lang.Enum<?> column, T defaultValue, Conversion[] conversions)
<T> T getValue(java.lang.String[] data, java.lang.String headerName, java.lang.Class<T> expectedType, Conversion[] conversions)
<T> T getValue(java.lang.String[] data, int columnIndex, java.lang.Class<T> expectedType, Conversion[] conversions)
<T> T getValue(java.lang.String[] data, java.lang.Enum<?> column, java.lang.Class<T> expectedType, Conversion[] conversions)
private <T> T convert(MetaData md, java.lang.String[] data, java.lang.Class<T> type, T defaultValue, java.lang.annotation.Annotation annotation)
private void initializeMetadataConversions(java.lang.String[] data, MetaData md)
<T> T getObjectValue(java.lang.String[] data, java.lang.String headerName, java.lang.Class<T> type, T defaultValue)
<T> T getObjectValue(java.lang.String[] data, int columnIndex, java.lang.Class<T> type, T defaultValue)
<T> T getObjectValue(java.lang.String[] data, java.lang.Enum<?> column, java.lang.Class<T> type, T defaultValue)
<T> T getObjectValue(java.lang.String[] data, java.lang.String headerName, java.lang.Class<T> type, T defaultValue, java.lang.String format, java.lang.String... formatOptions)
<T> T getObjectValue(java.lang.String[] data, int columnIndex, java.lang.Class<T> type, T defaultValue, java.lang.String format, java.lang.String... formatOptions)
<T> T getObjectValue(java.lang.String[] data, java.lang.Enum<?> column, java.lang.Class<T> type, T defaultValue, java.lang.String format, java.lang.String... formatOptions)
static java.lang.annotation.Annotation buildBooleanStringAnnotation(java.lang.String[] trueStrings, java.lang.String[] falseStrings)
private static java.lang.annotation.Annotation newFormatAnnotation(java.lang.String format, java.lang.String... formatOptions)
<T> java.lang.annotation.Annotation buildAnnotation(java.lang.Class<T> type, java.lang.String args1, java.lang.String... args2)
public void setTypeOfColumns(java.lang.Class<?> type, java.lang.Enum... columns)
RecordMetaData
Record
, e.g. Record.toFieldObjectMap(String...)
will
convert the selected field values to their respective types, and then set the result as the values in the map.setTypeOfColumns
in interface RecordMetaData
type
- the type to associate with a list of columncolumns
- the columns that will be associated with the given type.public void setTypeOfColumns(java.lang.Class<?> type, java.lang.String... headerNames)
RecordMetaData
Record
, e.g. Record.toFieldObjectMap(String...)
will
convert the selected field values to their respective types, and then set the result as the values in the map.setTypeOfColumns
in interface RecordMetaData
type
- the type to associate with a list of columnheaderNames
- the columns that will be associated with the given type.public void setTypeOfColumns(java.lang.Class<?> type, int... columnIndexes)
RecordMetaData
Record
, e.g. Record.toFieldObjectMap(String...)
will
convert the selected field values to their respective types, and then set the result as the values in the map.setTypeOfColumns
in interface RecordMetaData
type
- the type to associate with a list of columncolumnIndexes
- the columns that will be associated with the given type.public boolean containsColumn(java.lang.String headerName)
RecordMetaData
Record
s parsed from the inputcontainsColumn
in interface RecordMetaData
headerName
- name of the headertrue
if the given header name exists in the input records, otherwise false