Class SaRMIInputStream

java.lang.Object
java.io.InputStream
com.saperion.rmi.SaRMIInputStream
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
SaRMIInputStreamSeekable

public class SaRMIInputStream extends InputStream
A InputStream that reads data of a document identified by it's HDOC from the archive.
  • Field Details

    • docHdoc

      protected final String docHdoc
    • docElement

      protected final int docElement
    • byteBuffer

      protected byte[] byteBuffer
    • bufferSize

      protected int bufferSize
    • started

      protected boolean started
    • closed

      protected boolean closed
    • bufferPointer

      protected int bufferPointer
    • handle

      protected com.saperion.jni.SaJNIDocHandle handle
    • curRevision

      protected boolean curRevision
  • Constructor Details

    • SaRMIInputStream

      public SaRMIInputStream(String hdoc, boolean currentRevision, int elementNumber, SaRMIClientCommand connector, Object monitor)
      Constructs the SaRMIInputStream instance which represents the input stream of the document (will be returned from the Saperion backend).
      Parameters:
      hdoc - Document HDOC
      currentRevision - flag indicating that the current revision of the document should be retrieved by resolving hdoc
      elementNumber - number of the structure-element to read from
      connector - the rmi-client connector used to read data from the archive
      monitor - a ClassicConnector instance used to synchronize calls on the connector
    • SaRMIInputStream

      public SaRMIInputStream(String hdoc, boolean currentRevision, int elementNumber, boolean withAnnotations, SaRMIClientCommand connector, Object monitor)
      Constructs the SaRMIInputStream instance which represents the input stream of the document (will be returned from the Saperion backend).
      Parameters:
      hdoc - Document HDOC
      currentRevision - flag indicating that the current revision of the document should be retrieved by resolving hdoc
      elementNumber - number of the structure-element to read from
      withAnnotations - if true, annotations will be saved on the document stream
      connector - the rmi-client connector used to read data from the archive
      monitor - a ClassicConnector instance used to synchronize calls on the connector
    • SaRMIInputStream

      public SaRMIInputStream(String hdoc, boolean currentRevision, int elementNumber, SaRMIClientCommand connector, boolean dummy, Object monitor)
      Constructs the SaRMIInputStream instance which represents the input stream of the document (will be returned from the Saperion backend).
      Parameters:
      hdoc - Document HDOC
      currentRevision - flag indicating that the current revision of the document should be retrieved by resolving hdoc
      elementNumber - number of the structure-element to read from
      connector - the rmi-client connector used to read data from the archive
      dummy - if true, no content will be read from the backend. Instead the
      monitor - a ClassicConnector instance used to synchronize calls on the connector
  • Method Details

    • read

      public int read() throws IOException
      Reads the next byte of the document from the archive.
      Specified by:
      read in class InputStream
      Returns:
      Next byte from stream
      Throws:
      IOException - Exception
      See Also:
    • readDocumentFirst

      protected com.saperion.jni.SaJNIReadBuffer readDocumentFirst(String docHdoc, boolean curRevision, int docElement, boolean withAnnotations) throws SaSystemException, SaAuthenticationException, SaGetNodeException
      Throws:
      SaSystemException
      SaAuthenticationException
      SaGetNodeException
    • close

      public void close() throws IOException
      closes the input stream of the current document.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class InputStream
      Throws:
      IOException - Exception
      See Also:
    • reset

      public void reset() throws IOException
      Overrides:
      reset in class InputStream
      Throws:
      IOException - IOException
      See Also:
    • markSupported

      public boolean markSupported()
      Tests if this input stream supports the mark and reset methods. Whether or not mark and reset are supported is an invariant property of a particular input stream instance. The markSupported method of InputStream returns false.
      Overrides:
      markSupported in class InputStream
      Returns:
      true if this stream instance supports the mark and reset methods; false otherwise.
      See Also:
    • getFileName

      public String getFileName()
      Returns:
      file name
    • setFileName

      public void setFileName(String newFileName)
      Parameters:
      newFileName - File name to set
    • available

      @Deprecated public int available() throws IOException
      Deprecated.
      Overrides:
      available in class InputStream
      Returns:
      the number of bytes that can be read from this input stream without blocking.
      Throws:
      IOException - IO exception
      See Also:
    • getDocHdoc

      public String getDocHdoc()
      Retrieves the hdoc.
      Returns:
      target document hdoc
    • getDocElement

      public int getDocElement()
      Retrieves the document index.
      Returns:
      document index
    • isCurrentRevision

      public boolean isCurrentRevision()
      True, if the current revision should be fetched.
      Returns:
      isCurrentRevision
    • isDummy

      public boolean isDummy()
      If true, no content will be read from the backend. Instead the read method will always return -1.
      Returns:
      isDummy
    • isWithAnnotations

      public boolean isWithAnnotations()
      True, if annotations should be saved on the document.
      Returns:
      true, if the withAnnotations flag is set to true