Class BufferedEmbosserWriter
- java.lang.Object
-
- org.daisy.braille.utils.impl.tools.embosser.BufferedEmbosserWriter
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,EmbosserWriter
,EmbosserWriterProperties
public class BufferedEmbosserWriter extends Object implements EmbosserWriter
Provides an easy way to add a communications contract to an EmbosserWriter. All events sent to the BufferedEmbosserWriter are kept in memory while the contract information is collected. When the BufferedEmbosserWriter is closed, the underlying EmbosserWriter is opened with a contract matching the events in the communication. The events are then sent to the underlying EmbosserWriter as they would have been if used directly.
-
-
Constructor Summary
Constructors Constructor Description BufferedEmbosserWriter(ContractEmbosserWriter writer)
Creates a new buffered embosser writer with an embosser writer that supports a contract.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
int
getMaxWidth()
Gets the maximum row width in the current configuration.int
getRowGap()
Gets the current row gap, measured as an integer multiple of the dot-to-dot height.boolean
isClosed()
Tests if embosser has been closed.boolean
isOpen()
Returns true if embosser is open.void
newLine()
Starts a new line.void
newPage()
Starts a new page.void
newSectionAndPage(boolean duplex)
Starts a new page on a blank sheet of paper with the specified duplex settings.void
newVolumeSectionAndPage(boolean duplex)
Starts a new page on a blank sheet of paper in a new volume with the specified duplex settings.void
open(boolean duplex)
Opens for writing using the default contract.void
setRowGap(int value)
Sets the row gap for following calls to newLine to the specified value, measured as an integer multiple of the dot-to-dot height.boolean
supportsAligning()
Returns true if this embosser supports aligning.void
write(String braille)
Writes a string of braille to the embosser.
-
-
-
Constructor Detail
-
BufferedEmbosserWriter
public BufferedEmbosserWriter(ContractEmbosserWriter writer)
Creates a new buffered embosser writer with an embosser writer that supports a contract.- Parameters:
writer
- the writer
-
-
Method Detail
-
getMaxWidth
public int getMaxWidth()
Description copied from interface:EmbosserWriterProperties
Gets the maximum row width in the current configuration.- Specified by:
getMaxWidth
in interfaceEmbosserWriterProperties
- Returns:
- returns the maximum row width, in characters
-
supportsAligning
public boolean supportsAligning()
Description copied from interface:EmbosserWriterProperties
Returns true if this embosser supports aligning. This indicates that rows can be padded with whitespace to move the text block horizontally using the value returned bygetMaxWidth
. Should return true for all physical embossers, since they all have a finite row length.- Specified by:
supportsAligning
in interfaceEmbosserWriterProperties
- Returns:
- returns true if this embosser supports aligning, false otherwise.
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
write
public void write(String braille) throws IOException
Description copied from interface:EmbosserWriter
Writes a string of braille to the embosser. Values must be between 0x2800 and 0x28FF. An implementation may supply a complete row of braille in a single chunk. However, an implementation may also call this method repeatedly without any other calls in between.- Specified by:
write
in interfaceEmbosserWriter
- Parameters:
braille
- characters in the range 0x2800 to 0x28FF- Throws:
IOException
- if an I/O error occurs
-
newLine
public void newLine() throws IOException
Description copied from interface:EmbosserWriter
Starts a new line.- Specified by:
newLine
in interfaceEmbosserWriter
- Throws:
IOException
- if an I/O error occurs
-
newPage
public void newPage() throws IOException
Description copied from interface:EmbosserWriter
Starts a new page.- Specified by:
newPage
in interfaceEmbosserWriter
- Throws:
IOException
- if an I/O error occurs
-
newSectionAndPage
public void newSectionAndPage(boolean duplex) throws IOException
Description copied from interface:EmbosserWriter
Starts a new page on a blank sheet of paper with the specified duplex settings.- Specified by:
newSectionAndPage
in interfaceEmbosserWriter
- Parameters:
duplex
- if both sides of sheets should be used, false otherwise- Throws:
IOException
- if an I/O error occurs
-
newVolumeSectionAndPage
public void newVolumeSectionAndPage(boolean duplex) throws IOException
Description copied from interface:EmbosserWriter
Starts a new page on a blank sheet of paper in a new volume with the specified duplex settings.- Specified by:
newVolumeSectionAndPage
in interfaceEmbosserWriter
- Parameters:
duplex
- if both sides of sheets should be used, false otherwise- Throws:
IOException
- if an I/O error occurs
-
open
public void open(boolean duplex) throws IOException
Description copied from interface:EmbosserWriter
Opens for writing using the default contract.- Specified by:
open
in interfaceEmbosserWriter
- Parameters:
duplex
- true if both sides of sheets should be used, false otherwise- Throws:
IOException
- if an I/O error occurs
-
isOpen
public boolean isOpen()
Description copied from interface:EmbosserWriter
Returns true if embosser is open.- Specified by:
isOpen
in interfaceEmbosserWriter
- Returns:
- returns true if embosser is open, false otherwise
-
isClosed
public boolean isClosed()
Description copied from interface:EmbosserWriter
Tests if embosser has been closed.- Specified by:
isClosed
in interfaceEmbosserWriter
- Returns:
- returns true if the embosser has been open, but is now closed, false otherwise
-
setRowGap
public void setRowGap(int value)
Description copied from interface:EmbosserWriter
Sets the row gap for following calls to newLine to the specified value, measured as an integer multiple of the dot-to-dot height.- Specified by:
setRowGap
in interfaceEmbosserWriter
- Parameters:
value
- the row gap
-
getRowGap
public int getRowGap()
Description copied from interface:EmbosserWriter
Gets the current row gap, measured as an integer multiple of the dot-to-dot height.- Specified by:
getRowGap
in interfaceEmbosserWriter
- Returns:
- returns the current row gap
-
-