Package com.illumon.iris.importers
Class CsvFieldWriter
java.lang.Object
com.illumon.iris.importers.ImportFieldWriter
com.illumon.iris.importers.BaseCsvFieldWriter
com.illumon.iris.importers.CsvFieldWriter
- Direct Known Subclasses:
CsvFieldWriter.EndOfRecordWriter
,CsvFieldWriter.RowFlagsWriter
,PartitionDateFileTimeFieldWriter
Abstract class providing methods used when reading data from CSV files to be written to Deephaven columns.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static interface
Creates FieldWriters for passed ImporterColumnDefinitionsstatic class
Exception class to be thrown by CsvFieldWriter subclasses when an error is encountered while parsing input.static class
Nested classes/interfaces inherited from class com.illumon.iris.importers.BaseCsvFieldWriter
BaseCsvFieldWriter.CustomSetterFactory
-
Field Summary
Fields inherited from class com.illumon.iris.importers.BaseCsvFieldWriter
ZERO_VALUE_ARRAY
Fields inherited from class com.illumon.iris.importers.ImportFieldWriter
constantColumnValue, log
-
Constructor Summary
ConstructorsConstructorDescriptionCsvFieldWriter
(com.fishlib.io.logger.Logger log, String dbColumnName, String delimiter) -
Method Summary
Modifier and TypeMethodDescriptionChecks if value is an array and returns a string representation of the array appropriately.static BigDecimal
getBigDecimal
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, BigDecimal onEmpty) Reads a BigDecimal value from a CSVRecordstatic Boolean
getBoolean
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, Boolean onEmpty) Reads a Boolean value from a CSVRecord.static byte
getByte
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, byte onEmpty) Reads a byte value from a CSVRecordstatic char
getChar
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, char onEmpty) Reads a char value from a CSVRecordstatic double
getDouble
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, double onEmpty) Reads a double value from a CSVRecordstatic float
getFloat
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, float onEmpty) Reads a float value from a CSVRecordstatic int
getInt
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, int onEmpty) Reads an int value from a CSVRecordstatic long
getISONanos
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, long onEmpty) Reads a ISO formatted date value from a CSVRecord and converts it to nanoseconds since the epoch.static LocalDate
getLocalDate
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, LocalDate onEmpty) Read a LocalDate value from a CSVRecord.static LocalTime
getLocalTime
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, LocalTime onEmpty) Read a LocalTime value from a CSVRecord.static long
getLong
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, long onEmpty) Reads a long value from a CSVRecordstatic short
getShort
(String value, String columnName, com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, short onEmpty) Reads a short value from a CSVRecordgetSourceValue
(org.apache.commons.csv.CSVRecord record) static String
getTrimmedStringNull
(String value, String columnName) Reads a String value from a CSVRecord.void
processField
(org.apache.commons.csv.CSVRecord record) processValues
(Map<String, Object[]> columnNameToValueMap, int size, long destEnd) The method is invoked by the CustomSetter Column Parser by incorporating the values from all dependent columns If dependent columns are not provided then the map would contain values from all the columns Note no change for Constant Column values they need to be retrieved usingImportFieldWriter.getConstantColumnValue(String)
Methods inherited from class com.illumon.iris.importers.BaseCsvFieldWriter
getConstantColumnValue, getSetterCopy, getSetterValue, getSinglePartitionValue, initialize, processField, setConstantColumnValue, setSinglePartitionValue
Methods inherited from class com.illumon.iris.importers.ImportFieldWriter
accountingDouble, accountingInt, accountingLong, dbDateTimeFromLong, dbDateTimeFromTimestamp, dbDateTimeFromTimestamp, getBigDecimalArray, getBigDecimalArray, getBigDecimalArray, getBigIntegerArray, getBigIntegerArray, getBigIntegerArray, getBooleanArray, getBooleanArray, getBooleanArray, getByteArray, getByteArray, getByteArray, getCharArray, getCharArray, getCharArray, getConstantColumnValue, getDBDateTimeArray, getDoubleArray, getDoubleArray, getDoubleArray, getEnumFormatter, getFloatArray, getFloatArray, getFloatArray, getIntArray, getIntArray, getIntArray, getLocalDateArray, getLocalDateArray, getLocalDateArray, getLocalTimeArray, getLocalTimeArray, getLocalTimeArray, getLongArray, getLongArray, getLongArray, getShortArray, getShortArray, getShortArray, getStringArray, getStringArray, localDateFromString, parseBoolean, processField, setImportProperties, stripFirstCharacter, toISONanos, updateWithConstantColumnValue
-
Constructor Details
-
CsvFieldWriter
-
-
Method Details
-
getSourceValue
-
processField
- Throws:
IOException
-
processValues
public List<CustomSetterValue<?>> processValues(@NotNull Map<String, Object[]> columnNameToValueMap, int size, long destEnd) throws RowProcessingExceptionThe method is invoked by the CustomSetter Column Parser by incorporating the values from all dependent columns If dependent columns are not provided then the map would contain values from all the columns Note no change for Constant Column values they need to be retrieved usingImportFieldWriter.getConstantColumnValue(String)
- Overrides:
processValues
in classBaseCsvFieldWriter
- Parameters:
columnNameToValueMap
- The column name to corresponding CustomValue array mapsize
- The size of the chunk, which is the same as the size of CustomSetterValue array in the mapdestEnd
- The exclusive end index of the destination range.- Returns:
- The processed custom setter column values for each row
- Throws:
RowProcessingException
- Thrown if processing errors occur when parsing to create Csv records
-
asString
Checks if value is an array and returns a string representation of the array appropriately. For all other values the toString() is returned.- Parameters:
value
- The object value that should be converted to string- Returns:
- the appropriate value as String
-
getShort
@DynamicUse public static short getShort(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, short onEmpty) Reads a short value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getInt
@DynamicUse public static int getInt(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, int onEmpty) Reads an int value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getLong
@DynamicUse public static long getLong(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, long onEmpty) Reads a long value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getISONanos
@DynamicUse public static long getISONanos(@Nullable String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, long onEmpty) Reads a ISO formatted date value from a CSVRecord and converts it to nanoseconds since the epoch. This parser is a little less strict than ISO, in that it will accept time zone offsets without colons.- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getDouble
@DynamicUse public static double getDouble(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, double onEmpty) Reads a double value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getBigDecimal
@DynamicUse public static BigDecimal getBigDecimal(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, @Nullable BigDecimal onEmpty) Reads a BigDecimal value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getLocalDate
@DynamicUse public static LocalDate getLocalDate(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, @Nullable LocalDate onEmpty) Read a LocalDate value from a CSVRecord.- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getLocalTime
@DynamicUse public static LocalTime getLocalTime(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, @Nullable LocalTime onEmpty) Read a LocalTime value from a CSVRecord.- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getFloat
@DynamicUse public static float getFloat(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, float onEmpty) Reads a float value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getChar
@DynamicUse public static char getChar(@Nullable String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, char onEmpty) Reads a char value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getByte
@DynamicUse public static byte getByte(@Nullable String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, byte onEmpty) Reads a byte value from a CSVRecord- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-
getTrimmedStringNull
@DynamicUse public static String getTrimmedStringNull(@Nullable String value, @Nullable String columnName) Reads a String value from a CSVRecord. Trims white space, and handles the special case of the word null being returned as a null String.- Returns:
- the read value, or a null String if the field contains the keyword "null"
-
getBoolean
@DynamicUse public static Boolean getBoolean(@NotNull String value, @Nullable String columnName, @NotNull com.fishlib.io.logger.Logger log, boolean strict, boolean failDefault, Boolean onEmpty) Reads a Boolean value from a CSVRecord. parseBoolean handles interpretation of various text boolean expressions (true, false, 1, 0, T, F, etc).- Parameters:
value
- The value of the named column in the current row in the import filecolumnName
- The column name from which the value should be readlog
- The passed-down loggerstrict
- Whether strict (true) or permissive (false) import rules are being usedfailDefault
- Whether (true) to use the default value (onEmpty) if parsing/conversion of the source value failsonEmpty
- A default value that may be used if the source is empty or parsing fails- Returns:
- the converted value, or the onEmpty value, depending on strict, failDefault, and the source value itself
-