Interface Writer
- All Known Implementing Classes:
AlwaysAllowed
,CheckIfAllowed
public interface Writer
Write data via
ElementWriter
s 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> boolean
write
(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) Writes an element using anElementWriter
to the current directory.<T> boolean
writeWithIndex
(IndexableOutputNameStyle outputNameStyle, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element, String index) Writes an indexed-element using anElementWriter
in the current directory.<T> boolean
writeWithoutName
(String outputName, ElementWriterSupplier<T> elementWriter, ElementSupplier<T> element) Writes an element using anElementWriter
to 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 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 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 anElementWriter
in 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 anElementWriter
to 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
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()
.
-