Class CsvConnection

All Implemented Interfaces:
Connection

public class CsvConnection extends AbstractTextConnection
Represents a connection to CSV file.

For configuration details and examples see overview page.

Version:
1.1
Author:
Fyodor Kupolov, Sean Summers
  • Field Details

    • LOG

      protected static final Logger LOG
    • SEPARATOR

      public static final String SEPARATOR
      Name of the separator connection property. The delimiter to use for separating entries when reading from or writing to files.
      See Also:
    • QUOTE

      public static final String QUOTE
      Name of the quote connection property. The character to use for quoted elements when reading from or writing to files. Use empty string to suppress quoting.
      See Also:
    • ESCAPE

      public static final String ESCAPE
      Name of the escape connection property. The character to use for escaped elements when writing to files. Use empty string to suppress escaping.
      See Also:
    • HEADERS

      public static final String HEADERS
      Name of the headers connection property. true means the first line contains headers. Default value is true.

      Only valid for <query> elements.

      See Also:
    • QUOTEALL

      public static final String QUOTEALL
      Name of the quoteall connection property. false means only elements with the quote or escape character are quoted. Default value is true.
      See Also:
  • Constructor Details

  • Method Details

    • getProgressCounter

      public AbstractConnection.StatementCounter getProgressCounter()
      Description copied from interface: Connection
      Optional live progress counter. Called on the execution thread only. Return a stable in-memory counter updated with the same semantics as Connection.getExecutedStatementsCount(), or null if unavailable. The reporter reads only its volatile value, never this connection. The counter must remain valid after close. Existing providers need not implement this method.
    • executeScript

      public void executeScript(Resource scriptContent, ParametersCallback parametersCallback) throws ProviderException
      Description copied from interface: Connection
      Executes a script specified by its content.

      scriptContent may be used as a key for caching purposes, i.e. provider may precompile scripts and use compiled versions for subsequent executions. Please note that only inline text resources can be safely cached.

      Parameters:
      scriptContent - script content. Cannot be null.
      parametersCallback - callback to get parameter values. Cannot be null.
      Throws:
      ProviderException - if script execution failed.
    • executeQuery

      public void executeQuery(Resource queryContent, ParametersCallback parametersCallback, QueryCallback queryCallback) throws ProviderException
      Description copied from interface: Connection
      Executes a query specified by its content.

      Parameters:
      queryContent - query content. Cannot be null.
      parametersCallback - callback to get parameter values. Cannot be null.
      queryCallback - callback to call for each result set element produced by this query. Cannot be null.
      Throws:
      ProviderException - if query execution failed.
      See Also:
    • getOut

      protected CSVWriter getOut()
      Returns:
      lazily intialized writer.
    • newCsvQuery

      protected CsvQuery newCsvQuery(CSVReader csvReader, PropertiesSubstitutor ps)
      Template factory method to instantiate query handlers.
      Parameters:
      csvReader - CSV reader to use for parsing.
      ps - properties substitutor.
      Returns:
      constructed query for a specified input and parameters.
    • close

      public void close() throws ProviderException
      Description copied from interface: Connection
      Closes the connection and releases all related resources.
      Throws:
      ProviderException - if a critical failure occured.
    • getConnectionParameters

      protected CsvConnectionParameters getConnectionParameters()
      Overrides:
      getConnectionParameters in class AbstractTextConnection