public interface ByteWriterPattern {
/**
* Invoked during the step setup phase
* @param props
*/
public void initialize(Properties props);
/**
* Writes the given object onto the given outputstream. Any processing
* that needs to be done before writing can be added here
* @param out
* @param record
* @throws IOException
*/
public void writeRecord(BufferedOutputStream out, Object record) throws IOException;
/**
* Write header information if any
* @param out
* @throws IOException
*/
public void writeHeader(BufferedOutputStream out) throws IOException;
/**
* This method can be optionally called during process step to explicity
* initialize and write the header.
* @param header
*/
public void writeHeader(BufferedOutputStream out, Object header) throws IOException;
}