Interface Writer
- All Known Implementing Classes:
AlwaysAllowed,CheckIfAllowed
public interface Writer
Write data via
ElementWriters to the file system, or creates new sub-directories for
writing data to.
This class is similar to WriterRouterErrors but exceptions are thrown rather than
reporting errors.
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
-
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> booleanwrite(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) Writes an element using anElementWriterto the current directory.<T> booleanwriteWithIndex(IndexableOutputNameStyle outputNameStyle, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element, String index) Writes an indexed-element using anElementWriterin the current directory.<T> booleanwriteWithoutName(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) Writes an element using anElementWriterto the current directory, without including an output name in the path.
-
Method Details
-
createSubdirectory
Optional<OutputterChecked> createSubdirectory(String outputName, boolean inheritOutputRulesAndRecording) throws OutputWriteFailedException Maybe creates a subdirectory for writing to.- Parameters:
outputName- the name of the subdirectory. This may determine if an output is allowed or not.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(). - Throws:
OutputWriteFailedException- if the directory creation fails.
-
write
<T> boolean write(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) throws OutputWriteFailedException Writes an element using anElementWriterto 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 filesystem.element- the element to write.- Returns:
- true if the output was allowed, false otherwise.
- Throws:
OutputWriteFailedException- if the write operation fails.
-
writeWithIndex
<T> boolean writeWithIndex(IndexableOutputNameStyle outputNameStyle, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element, String index) throws OutputWriteFailedException Writes an indexed-element using anElementWriterin the current directory.- Parameters:
outputNameStyle- how to combine a particular output-name with an index.elementWriter- writes the element to the filesystem.element- the element to write.index- the index.- Returns:
- true if the output was allowed, false otherwise.
- Throws:
OutputWriteFailedException- if the write operation fails.
-
writeWithoutName
<T> boolean writeWithoutName(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) throws OutputWriteFailedException Writes an element using anElementWriterto the current directory, without including an output name in the path.- Parameters:
outputName- the name of the subdirectory. This may determine if an output is allowed or not, but will not be included in the outputted filename.elementWriter- writes the element to the filesystem.element- the element to write.- Returns:
- true if the output was allowed, false otherwise.
- Throws:
OutputWriteFailedException- if the write operation fails.
-
createFilenameForWriting
The path to write a particular output to.This is an alternative method to write to the file system rather than using an
ElementWriterandwrite(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().
-