Class FormatIdInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.lang.AutoCloseable, CloneableStream, ErrorInfo, ErrorObjectInput, Resetable

    public final class FormatIdInputStream
    extends java.io.DataInputStream
    implements ErrorObjectInput, Resetable, CloneableStream
    A stream for reading objects with format id tags which was produced by a FormatIdOutputStream.

    Please see the documentation for FormatIdOutputStream for information about the streams format and capabilites.

    • Constructor Summary

      Constructors 
      Constructor Description
      FormatIdInputStream​(java.io.InputStream in)
      Constructor for a FormatIdInputStream
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.io.InputStream cloneStream()
      Clone the stream.
      void closeStream()
      Close.
      (package private) ClassFactory getClassFactory()  
      private static Context getContextOrNull​(java.lang.String contextID)
      Privileged lookup of a Context.
      java.lang.String getErrorInfo()  
      java.io.InputStream getInputStream()  
      java.lang.Exception getNestedException()  
      private java.io.ObjectInputStream getObjectStream()  
      private <T extends java.lang.Throwable>
      T
      handleReadError​(T cause, java.io.ObjectInputStream stream)
      Handle an error that happened within readObject() when reading a Serializable object.
      void initStream()
      Initialize.
      java.lang.Object readObject()
      Read an object from this stream.
      void resetStream()
      Reset the stream to the beginning.
      private void setErrorInfo​(ErrorInfo ei)  
      void setInput​(java.io.InputStream in)
      Set the InputStream for this FormatIdInputStream to the stream provided.
      • Methods inherited from class java.io.DataInputStream

        read, read, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, readUTF, skipBytes
      • Methods inherited from class java.io.FilterInputStream

        available, close, mark, markSupported, read, reset, skip
      • Methods inherited from class java.io.InputStream

        nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.io.DataInput

        readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, skipBytes
      • Methods inherited from interface java.io.ObjectInput

        available, close, read, read, read, skip
    • Field Detail

      • myNestedException

        private java.lang.Exception myNestedException
    • Constructor Detail

      • FormatIdInputStream

        public FormatIdInputStream​(java.io.InputStream in)
        Constructor for a FormatIdInputStream
        Parameters:
        in - bytes come from here.
    • Method Detail

      • readObject

        public java.lang.Object readObject()
                                    throws java.io.IOException,
                                           java.lang.ClassNotFoundException
        Read an object from this stream.
        Specified by:
        readObject in interface java.io.ObjectInput
        Returns:
        The read object.
        Throws:
        java.io.IOException - An IO or serialization error occurred.
        java.lang.ClassNotFoundException - A class for an object in the stream could not be found.
      • setInput

        public void setInput​(java.io.InputStream in)
        Set the InputStream for this FormatIdInputStream to the stream provided.
        Parameters:
        in - The new input stream.
      • getInputStream

        public java.io.InputStream getInputStream()
      • setErrorInfo

        private void setErrorInfo​(ErrorInfo ei)
      • handleReadError

        private <T extends java.lang.Throwable> T handleReadError​(T cause,
                                                                  java.io.ObjectInputStream stream)
        Handle an error that happened within readObject() when reading a Serializable object.
        Type Parameters:
        T - the type of exception that was thrown
        Parameters:
        cause - the thrown exception
        stream - the stream from which the exception was thrown
        Returns:
        the thrown exception
      • getObjectStream

        private java.io.ObjectInputStream getObjectStream()
                                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • cloneStream

        public java.io.InputStream cloneStream()
        Description copied from interface: CloneableStream
        Clone the stream.

        To be used when a "deep" clone of a stream is required rather than multiple references to the same stream.

        The resulting clone should support reads, resets, closes which do not affect the original stream source of the clone.

        Specified by:
        cloneStream in interface CloneableStream
        Returns:
        The cloned stream.
        See Also:
        CloneableStream.cloneStream()
      • getContextOrNull

        private static Context getContextOrNull​(java.lang.String contextID)
        Privileged lookup of a Context. Must be private so that user code can't call this entry point.