Interface CsvCallback<T>

  • All Known Implementing Classes:
    DefaultCsvCallback

    public interface CsvCallback<T>
    Provides callback methods for customisation of CSV processing.

    You can provide your own CsvCallback implementation to customise the CSV processing. It is expected that the DefaultCsvCallback provides a good base class that you can extend.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void begin​(Database database)
      The processing is about to begin.
      void end​(int row)
      The processing has ended successfully.
      void endWithError​(int row, Exception e)
      The processing has ended due to an error.
      void processBean​(int row, String[] line, T bean)
      Called for each bean after it has been loaded from the CSV content.
      boolean processLine​(int row, String[] line)
      Check that the row should be processed - return true to process the row or false to ignore the row.
      void readHeader​(String[] line)
      Read the header row.
    • Method Detail

      • begin

        void begin​(Database database)
        The processing is about to begin.

        Typically the callback will create a transaction, set batch mode, batch size etc.

      • processLine

        boolean processLine​(int row,
                            String[] line)
        Check that the row should be processed - return true to process the row or false to ignore the row. Gives ability to handle bad data... empty rows etc and ignore it rather than fail.
      • processBean

        void processBean​(int row,
                         String[] line,
                         T bean)
        Called for each bean after it has been loaded from the CSV content.

        This allows you to process the bean however you like.

        When you use a CsvCallback the CsvReader *WILL NOT* create a transaction and will not save the bean for you. You have complete control and must do these things yourself (if that is want you want).

        Parameters:
        row - the index of the content being processed
        line - the content that has been used to load the bean
        bean - the entity bean after it has been loaded from the csv content
      • end

        void end​(int row)
        The processing has ended successfully.

        Typically the callback will commit the transaction.

      • endWithError

        void endWithError​(int row,
                          Exception e)
        The processing has ended due to an error.

        This gives the callback the opportunity to rollback the transaction if one was created.

        Parameters:
        row - the row that the error has occurred on
        e - the error that occurred