1 package com.opencsv;
2
3
4 import com.opencsv.enums.CSVReaderNullFieldIndicator;
5
6 /**
7 * Builder for creating a RFC4180Parser.
8 * <p>Example code for using this class:<br><br>
9 * <code>
10 * final RFC4180Parser parser =<br>
11 * new RFC4180ParserBuilder()<br>
12 * .withSeparator('\t')<br>
13 * .build();<br>
14 * </code></p>
15 *
16 * @see RFC4180Parser
17 * @since 3.9
18 */
19 public class RFC4180ParserBuilder {
20
21 private char separator = ICSVParser.DEFAULT_SEPARATOR;
22 private char quoteChar = ICSVParser.DEFAULT_QUOTE_CHARACTER;
23 private CSVReaderNullFieldIndicator nullFieldIndicator = CSVReaderNullFieldIndicator.NEITHER;
24
25 /**
26 * Default constructor.
27 */
28 public RFC4180ParserBuilder() {
29 }
30
31 /**
32 * @return The defined separator.
33 */
34 public char getSeparator() {
35 return separator;
36 }
37
38 /**
39 * @return The defined quotation character.
40 */
41 public char getQuoteChar() {
42 return quoteChar;
43 }
44
45 /**
46 * @return The null field indicator.
47 */
48 public CSVReaderNullFieldIndicator nullFieldIndicator() {
49 return nullFieldIndicator;
50 }
51
52 /**
53 * Constructs RFC4180Parser.
54 *
55 * @return A new RFC4180Parser with defined settings.
56 */
57 public RFC4180Parser build() {
58
59 return new RFC4180Parser(quoteChar, separator, nullFieldIndicator);
60
61 }
62
63 /**
64 * Sets the delimiter to use for separating entries.
65 *
66 * @param separator The delimiter to use for separating entries
67 * @return The RFC4180ParserBuilder
68 */
69 public RFC4180ParserBuilder withSeparator(
70 final char separator) {
71 this.separator = separator;
72 return this;
73 }
74
75
76 /**
77 * Sets the character to use for quoted elements.
78 *
79 * @param quoteChar The character to use for quoted element.
80 * @return The RFC4180ParserBuilder
81 */
82 public RFC4180ParserBuilder withQuoteChar(
83 final char quoteChar) {
84 this.quoteChar = quoteChar;
85 return this;
86 }
87
88 /**
89 * Sets the NullFieldIndicator.
90 *
91 * @param fieldIndicator CSVReaderNullFieldIndicator set to what should be considered a null field.
92 * @return The RFC4180ParserBuilder
93 */
94 public RFC4180ParserBuilder withFieldAsNull(final CSVReaderNullFieldIndicator fieldIndicator) {
95 this.nullFieldIndicator = fieldIndicator;
96 return this;
97 }
98
99 }