3636import java .util .Map ;
3737import java .util .logging .Level ;
3838import org .apache .commons .csv .CSVFormat ;
39+ import org .apache .commons .csv .CSVFormat .Builder ;
3940import org .apache .commons .csv .CSVParser ;
4041import org .apache .commons .csv .CSVRecord ;
4142
@@ -90,19 +91,20 @@ public String getUnit() {
9091 public void configure (ODocument iConfiguration , OCommandContext iContext ) {
9192 super .configure (iConfiguration , iContext );
9293
93- csvFormat =
94+ Builder builder =
9495 CSVFormat .newFormat (',' )
95- .withNullString (NULL_STRING )
96- .withEscape ('\\' )
97- .withQuote ('"' )
98- .withCommentMarker ('#' );
96+ .builder ()
97+ .setNullString (NULL_STRING )
98+ .setEscape ('\\' )
99+ .setQuote ('"' )
100+ .setCommentMarker ('#' );
99101
100102 if (iConfiguration .containsField ("predefinedFormat" )) {
101- csvFormat = CSVFormat .valueOf (iConfiguration .<String >field ("predefinedFormat" ));
103+ builder = CSVFormat .valueOf (iConfiguration .<String >field ("predefinedFormat" )). builder ( );
102104 }
103105
104106 if (iConfiguration .containsField ("separator" )) {
105- csvFormat = csvFormat . withDelimiter (iConfiguration .field ("separator" ).toString ().charAt (0 ));
107+ builder = builder . setDelimiter (iConfiguration .field ("separator" ).toString ().charAt (0 ));
106108 }
107109
108110 if (iConfiguration .containsField ("dateFormat" )) {
@@ -114,21 +116,24 @@ public void configure(ODocument iConfiguration, OCommandContext iContext) {
114116
115117 if (iConfiguration .containsField ("ignoreEmptyLines" )) {
116118 boolean ignoreEmptyLines = iConfiguration .field ("ignoreEmptyLines" );
117- csvFormat = csvFormat . withIgnoreEmptyLines (ignoreEmptyLines );
119+ builder = builder . setIgnoreEmptyLines (ignoreEmptyLines );
118120 }
119121
120122 if (iConfiguration .containsField ("ignoreMissingColumns" )) {
121123 boolean ignoreMissingColumns = iConfiguration .field ("ignoreMissingColumns" );
122- csvFormat = csvFormat . withAllowMissingColumnNames (ignoreMissingColumns );
124+ builder = builder . setAllowMissingColumnNames (ignoreMissingColumns );
123125 }
124126
125127 if (iConfiguration .containsField ("columnsOnFirstLine" )) {
126128 Boolean columnsOnFirstLine = (Boolean ) iConfiguration .field ("columnsOnFirstLine" );
127129 if (columnsOnFirstLine .equals (Boolean .TRUE )) {
128- csvFormat = csvFormat .withHeader ();
130+ builder = builder .setHeader ();
131+ } else {
132+ builder = builder .setAllowMissingColumnNames (true );
129133 }
130134 } else {
131- csvFormat = csvFormat .withHeader ();
135+ builder = builder .setHeader ();
136+ builder = builder .setAllowMissingColumnNames (true );
132137 }
133138
134139 if (iConfiguration .containsField ("columns" )) {
@@ -147,7 +152,8 @@ public void configure(ODocument iConfiguration, OCommandContext iContext) {
147152 }
148153
149154 log (Level .INFO , "column types: %s" , columnTypes );
150- csvFormat = csvFormat .withHeader (columnNames .toArray (new String [] {})).withSkipHeaderRecord ();
155+ builder = builder .setHeader (columnNames .toArray (new String [] {}));
156+ builder = builder .setSkipHeaderRecord (true );
151157 }
152158
153159 if (iConfiguration .containsField ("skipFrom" )) {
@@ -160,23 +166,24 @@ public void configure(ODocument iConfiguration, OCommandContext iContext) {
160166
161167 if (iConfiguration .containsField ("nullValue" )) {
162168 nullValue = iConfiguration .<String >field ("nullValue" );
163- csvFormat = csvFormat . withNullString (nullValue );
169+ builder = builder . setNullString (nullValue );
164170 }
165171
166172 if (iConfiguration .containsField ("quote" )) {
167173 final String value = iConfiguration .field ("quote" ).toString ();
168174 if (!value .isEmpty ()) {
169- csvFormat = csvFormat . withQuote (value .charAt (0 ));
175+ builder = builder . setQuote (value .charAt (0 ));
170176 }
171177 }
178+ csvFormat = builder .get ();
172179 }
173180
174181 @ Override
175182 public void extract (final Reader iReader ) {
176183 super .extract (iReader );
177184 try {
178185
179- CSVParser parser = new CSVParser (iReader , csvFormat );
186+ CSVParser parser = CSVParser . parse (iReader , csvFormat );
180187
181188 recordIterator = parser .iterator ();
182189 } catch (IOException e ) {
0 commit comments