Github user derekstraka commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2473#discussion_r168861958
  
    --- 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 --
    
    It can come in null if the data is not set, but you are correct, it could 
also be the empty string.  The empty string should use the default format as 
well.  I'll re-work this a bit.


---

Reply via email to