Github user ijokarumawak commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2473#discussion_r168657570
--- Diff:
nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/csv/AbstractCSVRecordReader.java
---
@@ -0,0 +1,110 @@
+package org.apache.nifi.csv;
+
+
+import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.serialization.RecordReader;
+import org.apache.nifi.serialization.record.DataType;
+import org.apache.nifi.serialization.record.RecordSchema;
+import org.apache.nifi.serialization.record.util.DataTypeUtils;
+import org.apache.nifi.serialization.record.RecordFieldType;
+import java.text.DateFormat;
+import java.util.function.Supplier;
+
+abstract public class AbstractCSVRecordReader implements RecordReader {
+
+ protected final ComponentLog logger;
+ protected final boolean hasHeader;
+ protected final boolean ignoreHeader;
+
+ protected final Supplier<DateFormat> LAZY_DATE_FORMAT;
+ protected final Supplier<DateFormat> LAZY_TIME_FORMAT;
+ protected final Supplier<DateFormat> LAZY_TIMESTAMP_FORMAT;
+
+ protected final String dateFormat;
+ protected final String timeFormat;
+ protected final String timestampFormat;
+
+ protected final RecordSchema schema;
+
+ AbstractCSVRecordReader(final ComponentLog logger, final RecordSchema
schema, final boolean hasHeader, final boolean ignoreHeader,
+ final String dateFormat, final String
timeFormat, final String timestampFormat) {
+ this.logger = logger;
+ this.schema = schema;
+ this.hasHeader = hasHeader;
+ this.ignoreHeader = ignoreHeader;
+ this.dateFormat = (dateFormat == null) ?
RecordFieldType.DATE.getDefaultFormat() : dateFormat;
+ this.timeFormat = (timeFormat == null) ?
RecordFieldType.TIME.getDefaultFormat(): timeFormat;
+ this.timestampFormat = (timestampFormat == null) ?
RecordFieldType.TIMESTAMP.getDefaultFormat(): timestampFormat;
+
+ final DateFormat df = (dateFormat == null) ? null :
DataTypeUtils.getDateFormat(dateFormat);
+ final DateFormat tf = (timeFormat == null) ? null :
DataTypeUtils.getDateFormat(timeFormat);
+ final DateFormat tsf = (timestampFormat == null) ? null :
DataTypeUtils.getDateFormat(timestampFormat);
--- End diff --
I believe these three can omit null check using ternary operator since
String formats variables will not be null.
---