Class CsvSplitter

  • All Implemented Interfaces:
    IXMLConfigurable, IImporterHandler, IDocumentSplitter

    public class CsvSplitter
    extends AbstractDocumentSplitter
    implements IXMLConfigurable

    Split files with Coma-Separated values (or any other characters, like tab) into one document per line.

    Can be used both as a pre-parse (text documents) or post-parse handler documents.

    XML configuration usage:

    
    <handler
        class="com.norconex.importer.handler.splitter.impl.CsvSplitter"
        separatorCharacter=""
        quoteCharacter=""
        escapeCharacter=""
        useFirstRowAsFields="(false|true)"
        linesToSkip="(integer)"
        referenceColumn="(column name or position from 1)"
        contentColumns="(csv list of column/position to use as content)">
      <!-- multiple "restrictTo" tags allowed (only one needs to match) -->
      <restrictTo>
        <fieldMatcher>(field-matching expression)</fieldMatcher>
        <valueMatcher>(value-matching expression)</valueMatcher>
      </restrictTo>
    </handler>

    XML usage example:

    
    <handler
        class="CsvSplitter"
        separatorCharacter=","
        quoteCharacter="'"
        escapeCharacter="\"
        useFirstRowAsFields="true"
        linesToSkip="0"
        referenceColumn="clientId"
        contentColumns="orgDesc"/>

    Given this sample CSV file content...

     'clientId','clientName','clientOrg','orgDesc'
     '123','Joe Dalton','ACME Inc.','Organization\'s description'
     '345','Avrel Dalton','Daisy Town','Another one'
     

    ... the above example will split the file into two documents (one for each row after the header row):

    Since:
    2.0.0
    Author:
    Pascal Essiembre
    • Field Detail

      • DEFAULT_SEPARATOR_CHARACTER

        public static final char DEFAULT_SEPARATOR_CHARACTER
        See Also:
        Constant Field Values
      • DEFAULT_QUOTE_CHARACTER

        public static final char DEFAULT_QUOTE_CHARACTER
        See Also:
        Constant Field Values
      • DEFAULT_ESCAPE_CHARACTER

        public static final char DEFAULT_ESCAPE_CHARACTER
        See Also:
        Constant Field Values
    • Constructor Detail

      • CsvSplitter

        public CsvSplitter()
    • Method Detail

      • getSeparatorCharacter

        public char getSeparatorCharacter()
        Gets the value-separator character.
        Returns:
        value-separator character
      • setSeparatorCharacter

        public void setSeparatorCharacter​(char separatorCharacter)
        Sets the value-separator character. Default is a comma (,).
        Parameters:
        separatorCharacter - value-separator character
      • getQuoteCharacter

        public char getQuoteCharacter()
        Get the value's surrounding quotes character.
        Returns:
        value's surrounding quotes character
      • setQuoteCharacter

        public void setQuoteCharacter​(char quoteCharacter)
        Sets the value's surrounding quotes character. Default is the double-quote character (").
        Parameters:
        quoteCharacter - value's surrounding quotes character
      • getEscapeCharacter

        public char getEscapeCharacter()
        Gets the escape character.
        Returns:
        escape character
      • setEscapeCharacter

        public void setEscapeCharacter​(char escapeCharacter)
        Sets the escape character. Default is the backslash character (\).
        Parameters:
        escapeCharacter - escape character
      • isUseFirstRowAsFields

        public boolean isUseFirstRowAsFields()
        Whether to use the first row as field names for values.
        Returns:
        true if using first row as field names.
      • setUseFirstRowAsFields

        public void setUseFirstRowAsFields​(boolean useFirstRowAsFields)
        Sets whether to use the first row as field names for values. Default is false.
        Parameters:
        useFirstRowAsFields - true if using first row as field names
      • getLinesToSkip

        public int getLinesToSkip()
        Gets how many lines to skip before starting to parse lines.
        Returns:
        how many lines to skip
      • setLinesToSkip

        public void setLinesToSkip​(int linesToSkip)
        Sets how many lines to skip before starting to parse lines. Default is 0.
        Parameters:
        linesToSkip - how many lines to skip
      • getReferenceColumn

        public String getReferenceColumn()
      • setReferenceColumn

        public void setReferenceColumn​(String referenceColumn)
      • getContentColumns

        public List<String> getContentColumns()
      • setContentColumns

        public void setContentColumns​(String... contentColumns)
      • setContentColumns

        public void setContentColumns​(List<String> contentColumns)
        Sets content columns.
        Parameters:
        contentColumns - content columns
        Since:
        3.0.0