public interface FileReaderPattern {
/**
* Invoked during the step setup phase
* @param props
*/
public void initialize(Properties props);
/**
* This method is invoked only once. It should be used
* to read any header data if necessary.
* @param reader
* @throws IOException
*/
public void processHeader(BufferedReader reader) throws IOException;
/**
* This method should read the next line from the reader
* and return the data in suitable form to be processed
* by the step.
* @param reader
* @return
* @throws IOException
*/
public Object fetchRecord(BufferedReader reader) throws IOException;
/**
* This method can be optionally invoked from the process step
* to obtain the header data that was previously obtained during the
* processHeader call
* @return
*/
public Object fetchHeader();
}