Class BufferedEmbosserWriter

java.lang.Object
org.daisy.braille.embosser.BufferedEmbosserWriter
All Implemented Interfaces:
Closeable, AutoCloseable, EmbosserProperties, 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.
Author:
Joel HÃ¥kansson
  • Constructor Details

    • BufferedEmbosserWriter

      public BufferedEmbosserWriter(EmbosserWriter writer)
  • Method Details

    • getMaxWidth

      public int getMaxWidth()
      Description copied from interface: EmbosserWriterProperties
      Gets the maximum row width in the current configuration
      Specified by:
      getMaxWidth in interface EmbosserWriterProperties
      Returns:
      returns the maximum row width, in characters
    • getMaxHeight

      public int getMaxHeight()
      Description copied from interface: EmbosserWriterProperties
      Gets the maximum page height in the current configuration
      Specified by:
      getMaxHeight in interface EmbosserWriterProperties
      Returns:
      returns the maximum page height, in rows
    • supportsVolumes

      public boolean supportsVolumes()
      Description copied from interface: EmbosserProperties
      Returns true if this embosser has some method for volume handling
      Specified by:
      supportsVolumes in interface EmbosserProperties
      Returns:
      returns true if this embosser supports volumes
    • supports8dot

      public boolean supports8dot()
      Description copied from interface: EmbosserProperties
      Returns true if this embosser supports 8 dot braille
      Specified by:
      supports8dot in interface EmbosserProperties
      Returns:
      returns true if this embosser supports 8 dot braille
    • supportsDuplex

      public boolean supportsDuplex()
      Description copied from interface: EmbosserProperties
      Returns true if this embosser supports duplex printing
      Specified by:
      supportsDuplex in interface EmbosserProperties
      Returns:
      returns true if this embosser supports duplex printing
    • supportsAligning

      public boolean supportsAligning()
      Description copied from interface: EmbosserProperties
      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 by getMaxWidth. Should return true for all physical embossers, since they all have a finite row length.
      Specified by:
      supportsAligning in interface EmbosserProperties
      Returns:
      returns true if this embosser supports aligning, false otherwise.
    • supportsZFolding

      public boolean supportsZFolding()
      Description copied from interface: EmbosserProperties
      Returns true if this embosser supports z-folding. This indicates that, if tractor paper is used, the embosser can emboss every other paper upside down with the rear side up so that pages are ordered face up as they fold naturally in the output stack.
      Specified by:
      supportsZFolding in interface EmbosserProperties
      Returns:
      returns true if this embosser supports z-folding, false otherwise.
    • supportsPrintMode

      public boolean supportsPrintMode(EmbosserProperties.PrintMode mode)
      Description copied from interface: EmbosserProperties
      Returns true if this embosser supports magazine layout. This indicates that the embosser can reorder pages and emboss two pages side-by-side on the same side of the paper (and two more on the other side), so that a readable document is created by stapling and folding the output stack in the middle.
      Specified by:
      supportsPrintMode in interface EmbosserProperties
      Returns:
      returns true if this embosser supports magazine layout, false otherwise.
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      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 interface EmbosserWriter
      Parameters:
      braille - characters in the range 0x2800 to 0x28FF
      Throws:
      IOException
    • newLine

      public void newLine() throws IOException
      Description copied from interface: EmbosserWriter
      Starts a new line
      Specified by:
      newLine in interface EmbosserWriter
      Throws:
      IOException
    • newPage

      public void newPage() throws IOException
      Description copied from interface: EmbosserWriter
      Starts a new page
      Specified by:
      newPage in interface EmbosserWriter
      Throws:
      IOException
    • 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 interface EmbosserWriter
      Throws:
      IOException
    • 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 interface EmbosserWriter
      Throws:
      IOException
    • open

      public void open(boolean duplex) throws IOException
      Description copied from interface: EmbosserWriter
      Opens for writing using the default contract
      Specified by:
      open in interface EmbosserWriter
      Throws:
      IOException - if an I/O exception of some sort has occurred
    • open

      public void open(boolean duplex, Contract contract) throws IOException, ContractNotSupportedException
      Description copied from interface: EmbosserWriter
      Opens for writing
      Specified by:
      open in interface EmbosserWriter
      Throws:
      IOException - if an I/O exception of some sort has occurred
      ContractNotSupportedException - if the supplied contract is not supported, that is to say if the contract does not contain information required by the implementation
    • isOpen

      public boolean isOpen()
      Description copied from interface: EmbosserWriter
      Returns true if embosser is open
      Specified by:
      isOpen in interface EmbosserWriter
      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 interface EmbosserWriter
      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 interface EmbosserWriter
    • 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 interface EmbosserWriter
      Returns:
      returns the current row gap