package com.opencsv;

import com.opencsv.enums.CSVReaderNullFieldIndicator;

import java.io.IOException;

import static com.opencsv.enums.CSVReaderNullFieldIndicator.NEITHER;
import java.util.Locale;

This interface defines all of the behavior CSVReader needs from a parser to tokenize an input line for further processing.
Since:3.9
/** * This interface defines all of the behavior {@link com.opencsv.CSVReader} * needs from a parser to tokenize an input line for further processing. * * @since 3.9 */
public interface ICSVParser {
The default separator to use if none is supplied to the constructor.
/** * The default separator to use if none is supplied to the constructor. */
char DEFAULT_SEPARATOR = ',';
The average size of a line read by opencsv (used for setting the size of StringBuilders).
/** * The average size of a line read by opencsv (used for setting the size of StringBuilders). */
int INITIAL_READ_SIZE = 1024;
In most cases we know the size of the line we want to read. In that case we will set the initial read to that plus an buffer size.
/** * In most cases we know the size of the line we want to read. In that case we will set the initial read * to that plus an buffer size. */
int READ_BUFFER_SIZE = 128;
The default quote character to use if none is supplied to the constructor.
/** * The default quote character to use if none is supplied to the * constructor. */
char DEFAULT_QUOTE_CHARACTER = '"';
The default escape character to use if none is supplied to the constructor.
/** * The default escape character to use if none is supplied to the * constructor. */
char DEFAULT_ESCAPE_CHARACTER = '\\';
The default strict quote behavior to use if none is supplied to the constructor.
/** * The default strict quote behavior to use if none is supplied to the * constructor. */
boolean DEFAULT_STRICT_QUOTES = false;
The default leading whitespace behavior to use if none is supplied to the constructor.
/** * The default leading whitespace behavior to use if none is supplied to the * constructor. */
boolean DEFAULT_IGNORE_LEADING_WHITESPACE = true;
If the quote character is set to null then there is no quote character.
/** * If the quote character is set to null then there is no quote character. */
boolean DEFAULT_IGNORE_QUOTATIONS = false;
This is the "null" character - if a value is set to this then it is ignored.
/** * This is the "null" character - if a value is set to this then it is ignored. */
char NULL_CHARACTER = '\0';
Denotes what field contents will cause the parser to return null: EMPTY_SEPARATORS, EMPTY_QUOTES, BOTH, NEITHER (default).
/** * Denotes what field contents will cause the parser to return null: EMPTY_SEPARATORS, EMPTY_QUOTES, BOTH, NEITHER (default). */
CSVReaderNullFieldIndicator DEFAULT_NULL_FIELD_INDICATOR = NEITHER;
The name of the resource bundle for translations of error messages in opencsv.
/** * The name of the resource bundle for translations of error messages in opencsv. */
String DEFAULT_BUNDLE_NAME = "opencsv";
When creating builders this should be the smallest size to account for quotes and any possible escape characters.
/** * When creating builders this should be the smallest size to account for quotes and any possible escape characters. */
int MAX_SIZE_FOR_EMPTY_FIELD = 16;
Default newline character for the parser.
/** * Default newline character for the parser. */
String NEWLINE = "\n";
Returns:The default separator for this parser.
/** * @return The default separator for this parser. */
char getSeparator();
Returns:The default quotation character for this parser.
/** * @return The default quotation character for this parser. */
char getQuotechar();
Returns:True if something was left over from last call(s)
/** * @return True if something was left over from last call(s) */
boolean isPending();
Parses an incoming String and returns an array of elements. This method is used when the data spans multiple lines.
Params:
  • nextLine – Current line to be processed
Throws:
Returns:The comma-tokenized list of elements, or null if nextLine is null
/** * Parses an incoming String and returns an array of elements. * This method is used when the data spans multiple lines. * * @param nextLine Current line to be processed * @return The comma-tokenized list of elements, or null if nextLine is null * @throws IOException If bad things happen during the read */
String[] parseLineMulti(String nextLine) throws IOException;
Parses an incoming String and returns an array of elements. This method is used when all data is contained in a single line.
Params:
  • nextLine – Line to be parsed.
Throws:
Returns:The list of elements, or null if nextLine is null
/** * Parses an incoming String and returns an array of elements. * This method is used when all data is contained in a single line. * * @param nextLine Line to be parsed. * @return The list of elements, or null if nextLine is null * @throws IOException If bad things happen during the read */
String[] parseLine(String nextLine) throws IOException;
Essentially a "Reverse parse" where an array of values are concatenating to a csv delimited string. NOTE: as of the 4.1 release this functionality is not considered production ready and has not been fully tested (and the ability to add a parser to the CSVWriter has not been implemented yet. I am adding this now because because I need to do the 4.1 release because of the number of defect fixes and I do not want to strip this out.
Params:
  • values – List of elements to parse.
  • applyQuotesToAll – - If true all strings in the array will have quotes if it needs it or not. If false then it will only have quotes if it needs it (i.e. contains a quote character).
Returns:CSV formatted string representing the values in the array.
Since:4.1
/** * Essentially a "Reverse parse" where an array of values are concatenating to a * csv delimited string. * * NOTE: as of the 4.1 release this functionality is not considered production ready and * has not been fully tested (and the ability to add a parser to the CSVWriter has not * been implemented yet. I am adding this now because because I need to do the 4.1 * release because of the number of defect fixes and I do not want to strip this out. * * @param values List of elements to parse. * @param applyQuotesToAll - If true all strings in the array will have quotes if it needs it or not. * If false then it will only have quotes if it needs it (i.e. contains a quote character). * @return CSV formatted string representing the values in the array. * @since 4.1 */
String parseToLine(String[] values, boolean applyQuotesToAll);
Returns:The null field indicator.
/** * @return The null field indicator. */
CSVReaderNullFieldIndicator nullFieldIndicator();
If a parser is in the middle of parsing a multiline field, this will return the text collected so far.
Returns:The incomplete text for a multiline field. If there is no pending text, this returns an empty string.
Since:4.1
/** * If a parser is in the middle of parsing a multiline field, this will * return the text collected so far. * * @return The incomplete text for a multiline field. If there is no * pending text, this returns an empty string. * @since 4.1 */
String getPendingText();
Sets the locale for all error messages.
Params:
  • errorLocale – Locale for error messages. If null, the default locale is used.
Since:4.2
/** * Sets the locale for all error messages. * @param errorLocale Locale for error messages. If null, the default locale * is used. * @since 4.2 */
void setErrorLocale(Locale errorLocale); }