public abstract class AbstractDataWriterFactory<T> extends Object implements DataWriterFactory<T>
Subclasses may override the filename generation. Subclasses must also provide an implementation that, given a filename, creates an output stream for it.
Modifier and Type | Field and Description |
---|---|
private FilenameGenerator<T> |
filenameGenerator |
private Set<String> |
usedFiles |
Modifier | Constructor and Description |
---|---|
protected |
AbstractDataWriterFactory(FilenameGenerator<T> filenameGenerator)
Create a new factory that uses the given file name generator.
|
Modifier and Type | Method and Description |
---|---|
DataWriter |
createDataWriter(T owner,
String suggestedFilename)
Create a data writer for writing data that belongs to the
given owner.
|
protected abstract OutputStream |
getOutputStream(String filename)
Create an output stream for writing to a file with the given
filename.
|
protected boolean |
isUnique(String filename)
Checks if the suggested file name has already been used
by this data writer factory or not.
|
private FilenameGenerator<T> filenameGenerator
protected AbstractDataWriterFactory(FilenameGenerator<T> filenameGenerator)
public DataWriter createDataWriter(T owner, String suggestedFilename) throws IOException
DataWriterFactory
DataWriter.getFilename()
) and
number of columns (DataWriter.getColumnCount()
) set, since this
is needed for the metadata generation.createDataWriter
in interface DataWriterFactory<T>
owner
- The object that "owns" the data that is written
to the filesuggestedFilename
- An optional suggested filename, the
factory may use this string or generate a different filenameIOException
protected abstract OutputStream getOutputStream(String filename) throws IOException
IOException
- If there is a problem creating the fileprotected boolean isUnique(String filename)
filename
- The filename to check