Class COSStreamArray

All Implemented Interfaces:
Closeable, AutoCloseable, COSObjectable

public class COSStreamArray extends COSStream
This will take an array of streams and sequence them together.
Version:
$Revision: 1.10 $
Author:
Ben Litchfield
  • Constructor Details

    • COSStreamArray

      public COSStreamArray(COSArray array)
      Constructor.
      Parameters:
      array - The array of COSStreams to concatenate together.
  • Method Details

    • get

      public COSBase get(int index)
      This will get a stream (or the reference to a stream) from the array.
      Parameters:
      index - The index of the requested stream
      Returns:
      The stream object or a reference to a stream
    • getStreamCount

      public int getStreamCount()
      This will get the number of streams in the array.
      Returns:
      the number of streams
    • getScratchFile

      public RandomAccess getScratchFile()
      This will get the scratch file associated with this stream.
      Overrides:
      getScratchFile in class COSStream
      Returns:
      The scratch file where this stream is being stored.
    • getItem

      public COSBase getItem(COSName key)
      This will get an object from this streams dictionary.
      Overrides:
      getItem in class COSDictionary
      Parameters:
      key - The key to the object.
      Returns:
      The dictionary object with the key or null if one does not exist.
    • getDictionaryObject

      public COSBase getDictionaryObject(COSName key)
      This will get an object from this streams dictionary and dereference it if necessary.
      Overrides:
      getDictionaryObject in class COSDictionary
      Parameters:
      key - The key to the object.
      Returns:
      The dictionary object with the key or null if one does not exist.
    • toString

      public String toString()
      Overrides:
      toString in class COSDictionary
    • getStreamTokens

      public List getStreamTokens() throws IOException
      This will get all the tokens in the stream.
      Overrides:
      getStreamTokens in class COSStream
      Returns:
      All of the tokens in the stream.
      Throws:
      IOException - If there is an error parsing the stream.
    • getDictionary

      public COSDictionary getDictionary()
      This will get the dictionary that is associated with this stream.
      Returns:
      the object that is associated with this stream.
    • getFilteredStream

      public InputStream getFilteredStream() throws IOException
      This will get the stream with all of the filters applied.
      Overrides:
      getFilteredStream in class COSStream
      Returns:
      the bytes of the physical (endoced) stream
      Throws:
      IOException - when encoding/decoding causes an exception
    • getUnfilteredStream

      public InputStream getUnfilteredStream() throws IOException
      This will get the logical content stream with none of the filters.
      Overrides:
      getUnfilteredStream in class COSStream
      Returns:
      the bytes of the logical (decoded) stream
      Throws:
      IOException - when encoding/decoding causes an exception
    • accept

      public Object accept(ICOSVisitor visitor) throws COSVisitorException
      visitor pattern double dispatch method.
      Overrides:
      accept in class COSStream
      Parameters:
      visitor - The object to notify when visiting this object.
      Returns:
      any object, depending on the visitor implementation, or null
      Throws:
      COSVisitorException - If an error occurs while visiting this object.
    • getFilters

      public COSBase getFilters()
      This will return the filters to apply to the byte stream the method will return. - null if no filters are to be applied - a COSName if one filter is to be applied - a COSArray containing COSNames if multiple filters are to be applied
      Overrides:
      getFilters in class COSStream
      Returns:
      the COSBase object representing the filters
    • createFilteredStream

      public OutputStream createFilteredStream() throws IOException
      This will create a new stream for which filtered byte should be written to. You probably don't want this but want to use the createUnfilteredStream, which is used to write raw bytes to.
      Overrides:
      createFilteredStream in class COSStream
      Returns:
      A stream that can be written to.
      Throws:
      IOException - If there is an error creating the stream.
    • createFilteredStream

      public OutputStream createFilteredStream(COSBase expectedLength) throws IOException
      This will create a new stream for which filtered byte should be written to. You probably don't want this but want to use the createUnfilteredStream, which is used to write raw bytes to.
      Overrides:
      createFilteredStream in class COSStream
      Parameters:
      expectedLength - An entry where a length is expected.
      Returns:
      A stream that can be written to.
      Throws:
      IOException - If there is an error creating the stream.
    • setFilters

      public void setFilters(COSBase filters) throws IOException
      set the filters to be applied to the stream.
      Overrides:
      setFilters in class COSStream
      Parameters:
      filters - The filters to set on this stream.
      Throws:
      IOException - If there is an error clearing the old filters.
    • createUnfilteredStream

      public OutputStream createUnfilteredStream() throws IOException
      This will create an output stream that can be written to.
      Overrides:
      createUnfilteredStream in class COSStream
      Returns:
      An output stream which raw data bytes should be written to.
      Throws:
      IOException - If there is an error creating the stream.
    • appendStream

      public void appendStream(COSStream streamToAppend)
      Appends a new stream to the array that represents this object's stream.
      Parameters:
      streamToAppend - The stream to append.
    • insertCOSStream

      public void insertCOSStream(PDStream streamToBeInserted)
      Insert the given stream at the beginning of the existing stream array.
      Parameters:
      streamToBeInserted -