Interface ParsingContext

All Superinterfaces:
Context
All Known Implementing Classes:
DefaultParsingContext, NoopParsingContext, ParsingContextSnapshot, ParsingContextWrapper

public interface ParsingContext extends Context
Parsing context information available to instances of RowProcessor.

The ParsingContext can be used to control and to obtain information about the parsing process.

See Also:
  • Method Details

    • headers

      String[] headers()
      Returns the file headers that identify each parsed record.

      If the headers are extracted from the input (i.e. CommonParserSettings.isHeaderExtractionEnabled() == true), then these values will be returned.

      If no headers are extracted from the input, then the configured headers in CommonSettings.getHeaders() will be returned. Note that the user-provided headers will override the header list parsed from the input, if any. To obtain the original list of headers found in the input use parsedHeaders()

      Specified by:
      headers in interface Context
      Returns:
      the headers used to identify each record parsed from the input.
      See Also:
    • extractedFieldIndexes

      int[] extractedFieldIndexes()
      Returns the indexes of each field extracted from the input when fields are selected in the parser settings (i.e. using CommonSettings.selectFields(java.lang.String...) and friends).

      The indexes are relative to their original position in the input.

      For example, if the input has the fields "A, B, C, D", and the selected fields are "A, D", then the extracted field indexes will return [0, 3]

      If no fields were selected, then this method will return null. This means all fields are being parsed.

      Specified by:
      extractedFieldIndexes in interface Context
      Returns:
      The indexes of each selected field; null if no fields were selected.
      See Also:
    • columnsReordered

      boolean columnsReordered()
      Indicates whether selected fields (using CommonSettings.selectFields(java.lang.String...) and friends) are being reordered.

      If columns are reordered, each parsed record will contain values only for the selected fields, as specified by CommonParserSettings.isColumnReorderingEnabled()

      Specified by:
      columnsReordered in interface Context
      Returns:
      true if the parsed records are being reordered by the parser, false otherwise
      See Also:
    • currentLine

      long currentLine()
      Returns the current line of text being processed by the parser
      Returns:
      current line of text being processed by the parser
    • currentChar

      long currentChar()
      Returns the index of the last char read from the input so far.
      Returns:
      the index of the last char read from the input so far.
    • skipLines

      void skipLines(long lines)
      Skips a given number of lines from the current position.
      Parameters:
      lines - the number of lines to be skipped.
    • parsedHeaders

      String[] parsedHeaders()
      Returns the headers parsed from the input, if and only if CommonParserSettings.headerExtractionEnabled is true. The result of this method won't return the list of headers manually set by the user in CommonSettings.getHeaders(). Use the headers() method instead to obtain the headers actually used by the parser.
      Returns:
      the headers parsed from the input, when CommonParserSettings.headerExtractionEnabled is true.
    • currentParsedContent

      String currentParsedContent()
      Returns a String with the input character sequence parsed to produce the current record.
      Returns:
      the text content parsed for the current input record.
    • currentParsedContentLength

      int currentParsedContentLength()
      Returns the length of the character sequence parsed to produce the current record.
      Returns:
      the length of the text content parsed for the current input record
    • fieldContentOnError

      String fieldContentOnError()
      Returns a String with the input character sequence accumulated on a field before TextParsingException occurred.
      Returns:
      the text content parsed for the current field of the current input record at the time of the error.
    • comments

      Map<Long,String> comments()
      Returns all comments collected by the parser so far. An empty map will be returned if CommonParserSettings.isCommentCollectionEnabled() evaluates to false.
      Returns:
      a map containing the line numbers and comments found in each.
    • lastComment

      String lastComment()
      Returns the last comment found in the input. null will be returned if CommonParserSettings.isCommentCollectionEnabled() is evaluated to false.
      Returns:
      the last comment found in the input.
    • lineSeparator

      char[] lineSeparator()
      Returns the line separator characters used to separate individual records when parsing. This could be the line separator defined in the Format.getLineSeparator() configuration, or the line separator sequence identified automatically when CommonParserSettings.isLineSeparatorDetectionEnabled() evaluates to true.
      Returns:
      the line separator sequence. Might contain one or two characters.