View Javadoc
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  }