Class WriterRouterErrors
Object
WriterRouterErrors
Write data via
ElementWriter
s to the file system.
Or alternatively write by creating new sub-directories for writing data to.
This class is similar to Writer
but:
- exceptions are suppressed and errors are instead reported.
- differences exist around writing sub-folders.
These operations occur in association with the currently bound output manager.
The ElementWriterSupplier
interface is used so as to avoid object-creation if an
operation isn't actually written.
Note that a ElementWriter
may write more than one file for a given element.
- Author:
- Owen Feehan
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateFilenameForWriting
(String outputName, String extension) The path to write a particular output to.createSubdirectory
(String outputName, boolean inheritOutputRulesAndRecording) Maybe creates a subdirectory for writing to.<T> void
write
(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) Writes an element using anElementWriter
to the current directory.<T> void
writeWithIndex
(IndexableOutputNameStyle outputNameStyle, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element, String index) Writes an indexed-element using anElementWriter
in the current directory.
-
Constructor Details
-
WriterRouterErrors
-
-
Method Details
-
createSubdirectory
public Optional<Outputter> createSubdirectory(String outputName, boolean inheritOutputRulesAndRecording) Maybe creates a subdirectory for writing to.- Parameters:
outputName
- the name of the subdirectory.inheritOutputRulesAndRecording
- if true, the output rules and recording are inherited from the parent directory. if false, they are not, and all outputs are allowed and are unrecorded.- Returns:
- an output-manager for the directory if it is allowed, otherwise
Optional.empty()
.
-
write
public <T> void write(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) Writes an element using anElementWriter
to the current directory.- Parameters:
outputName
- the name of the subdirectory. This may determine if an output is allowed or not.elementWriter
- writes the element to the filesystemelement
- the element to write
-
writeWithIndex
public <T> void writeWithIndex(IndexableOutputNameStyle outputNameStyle, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element, String index) Writes an indexed-element using anElementWriter
in the current directory.- Parameters:
outputNameStyle
- how to combine a particular output-name with an indexelementWriter
- writes the element to the filesystemelement
- the element to writeindex
- the index
-
createFilenameForWriting
The path to write a particular output to.This is an alternative method to write to the file system rather than using an
ElementWriter
andwrite(String, ElementWriterSupplier, ElementSupplier)
andwriteWithIndex(IndexableOutputNameStyle, ElementWriterSupplier, ElementSupplier, String)
.- Parameters:
outputName
- the output-name. This is the filename without an extension, and may determine if an output is allowed or not.extension
- the extension- Returns:
- the path to write to, if it is allowed, otherwise
Optional.empty()
.
-