org.nuiton.util.csv
Class Import<E>

java.lang.Object
  extended by org.nuiton.util.csv.Import<E>
All Implemented Interfaces:
Closeable, Iterable<E>
Direct Known Subclasses:
ImportToMap

public class Import<E>
extends Object
implements Iterable<E>, Closeable

Import engine for a given import model. It acts as an Iterable, you can use directly inside a foreach. The method prepareAndValidate() will be invoked before all and only once. It mainly obtain header from the csv input, pass it to the model and then validate the model.

Since:
2.4
Author:
bleny , tchemit , fdesbois

Field Summary
protected  ImportModel<E> model
          Csv import model.
protected  com.csvreader.CsvReader reader
          Csv reader (this is the input).
protected  boolean validate
          A flag to know if model was already validated.
 
Constructor Summary
protected Import(ImportModel<E> model, InputStream inputStream)
           
protected Import(ImportModel<E> model, Reader reader)
           
 
Method Summary
protected  void checkAllManadatoryHeadersArePresent(String[] headers)
           
protected  void checkHeaderNamesAreAllKnown(String[] headers)
           
protected  void checkUniqueModelColumnNames()
           
 void close()
           
protected  List<ImportableColumn<E,?>> getAllMandatoryHeaders()
           
protected  String[] getHeaders()
           
protected  List<ImportableColumn<E,Object>> getNonIgnoredHeaders()
           
 Iterator<E> iterator()
           
static
<E> Import<E>
newImport(ImportModel<E> model, InputStream inputStream)
           
static
<E> Import<E>
newImport(ImportModel<E> model, Reader reader)
           
 void prepareAndValidate()
           
protected  void readFirstLine()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

model

protected ImportModel<E> model
Csv import model.


reader

protected com.csvreader.CsvReader reader
Csv reader (this is the input).


validate

protected boolean validate
A flag to know if model was already validated.

Save once done to prevent multiple headers read leading to consider first lines as headers.

Constructor Detail

Import

protected Import(ImportModel<E> model,
                 InputStream inputStream)

Import

protected Import(ImportModel<E> model,
                 Reader reader)
Method Detail

newImport

public static <E> Import<E> newImport(ImportModel<E> model,
                                      InputStream inputStream)

newImport

public static <E> Import<E> newImport(ImportModel<E> model,
                                      Reader reader)

iterator

public Iterator<E> iterator()
Specified by:
iterator in interface Iterable<E>

close

public void close()
Specified by:
close in interface Closeable

prepareAndValidate

public void prepareAndValidate()

checkHeaderNamesAreAllKnown

protected void checkHeaderNamesAreAllKnown(String[] headers)

checkUniqueModelColumnNames

protected void checkUniqueModelColumnNames()

checkAllManadatoryHeadersArePresent

protected void checkAllManadatoryHeadersArePresent(String[] headers)

getHeaders

protected String[] getHeaders()
                       throws ImportRuntimeException
Throws:
ImportRuntimeException

getNonIgnoredHeaders

protected List<ImportableColumn<E,Object>> getNonIgnoredHeaders()

getAllMandatoryHeaders

protected List<ImportableColumn<E,?>> getAllMandatoryHeaders()

readFirstLine

protected void readFirstLine()
                      throws ImportRuntimeException
Throws:
ImportRuntimeException


Copyright © 2011 CodeLutin. All Rights Reserved.