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
Records 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
Conversions to fields of a given set of fields |
FieldSet<java.lang.String> |
convertFields(Conversion... conversions)
Associates a sequence of
Conversions to fields of a given set of field names |
FieldSet<java.lang.Integer> |
convertIndexes(Conversion... conversions)
Associates a sequence of
Conversions 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
Records 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)
RecordMetaDataindexOf in interface RecordMetaDatacolumn - 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)
RecordMetaDataindexOf in interface RecordMetaDataheaderName - name of the column whose index will be returnedpublic java.lang.Class<?> typeOf(java.lang.Enum<?> column)
RecordMetaDatasetTypeOfColumns(type, columns)typeOf in interface RecordMetaDatacolumn - the column whose type will be returnedpublic java.lang.Class<?> typeOf(java.lang.String headerName)
RecordMetaDatasetTypeOfColumns(type, columns)typeOf in interface RecordMetaDataheaderName - name of the column whose type will be returnedpublic java.lang.Class<?> typeOf(int columnIndex)
RecordMetaDatasetTypeOfColumns(type, columns)typeOf in interface RecordMetaDatacolumnIndex - the position of the column whose type will be returnedpublic <T> void setDefaultValueOfColumns(T defaultValue,
java.lang.Enum<?>... columns)
RecordMetaDatanullsetDefaultValueOfColumns in interface RecordMetaDataT - type of the default value.defaultValue - the value to be used for the given column when the parsed result is nullcolumns - the columns to be associated with a default value.public <T> void setDefaultValueOfColumns(T defaultValue,
java.lang.String... headerNames)
RecordMetaDatanullsetDefaultValueOfColumns in interface RecordMetaDataT - type of the default value.defaultValue - the value to be used for the given column when the parsed result is nullheaderNames - the column names to be associated with a default value.public <T> void setDefaultValueOfColumns(T defaultValue,
int... columnIndexes)
RecordMetaDatanullsetDefaultValueOfColumns in interface RecordMetaDataT - type of the default value.defaultValue - the value to be used for the given column when the parsed result is nullcolumnIndexes - the column indexes to be associated with a default value.public java.lang.Object defaultValueOf(java.lang.Enum<?> column)
RecordMetaDatasetDefaultValueOf(Column, Object))defaultValueOf in interface RecordMetaDatacolumn - the column whose default value will be returnednull.public java.lang.Object defaultValueOf(java.lang.String headerName)
RecordMetaDatasetDefaultValueOf(Column, Object))defaultValueOf in interface RecordMetaDataheaderName - the column name whose default value will be returnednull.public java.lang.Object defaultValueOf(int columnIndex)
RecordMetaDatasetDefaultValueOf(Column, Object))defaultValueOf in interface RecordMetaDatacolumnIndex - 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)
RecordMetaDataConversions to fields of a given set of fieldsconvertFields in interface RecordMetaDataT - the enumeration typeenumType - the type of the enumeration whose values represent headers in the input Recordsconversions - the sequence of conversions to applypublic FieldSet<java.lang.String> convertFields(Conversion... conversions)
RecordMetaDataConversions to fields of a given set of field namesconvertFields in interface RecordMetaDataconversions - the sequence of conversions to applypublic FieldSet<java.lang.Integer> convertIndexes(Conversion... conversions)
RecordMetaDataConversions to fields of a given set of column indexesconvertIndexes in interface RecordMetaDataconversions - the sequence of conversions to applypublic java.lang.String[] headers()
RecordMetaDataRecords 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 RecordMetaDataRecords parsed from the inputpublic java.lang.String[] selectedHeaders()
RecordMetaDataRecordMetaData.headers().selectedHeaders in interface RecordMetaDatajava.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)
RecordMetaDataRecord, 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 RecordMetaDatatype - 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)
RecordMetaDataRecord, 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 RecordMetaDatatype - 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)
RecordMetaDataRecord, 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 RecordMetaDatatype - 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)
RecordMetaDataRecords parsed from the inputcontainsColumn in interface RecordMetaDataheaderName - name of the headertrue if the given header name exists in the input records, otherwise false