Class BlockUnmarshaller

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int remaining  
      private SerialUnmarshaller serialUnmarshaller  
      • Fields inherited from interface java.io.ObjectStreamConstants

        baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, SERIAL_FILTER_PERMISSION, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream.
      private java.io.StreamCorruptedException badLeadByte​(int leadByte)  
      void clearClassCache()
      Discard the class cache.
      void clearInstanceCache()
      Discard the instance cache.
      void close()  
      (package private) void endOfStream()  
      void finish()
      Finish unmarshalling from a stream.
      (package private) boolean inBlock()  
      int read()
      Reads the next byte of data from the input stream.
      int read​(byte[] b)
      Read some bytes from the input stream into the given array.
      int read​(byte[] b, int off, int len)
      Read some bytes from the input stream into the given array.
      (package private) void readBlockHeader​(int leadByte)  
      boolean readBoolean()  
      byte readByte()  
      char readChar()  
      double readDouble()  
      float readFloat()  
      void readFully​(byte[] b)  
      void readFully​(byte[] b, int off, int len)  
      int readInt()  
      java.lang.String readLine()  
      long readLong()  
      java.lang.Object readObject()  
      private java.lang.Object readObject​(boolean unshared)  
      <T> T readObject​(java.lang.Class<T> type)
      Read and return an object, cast to a specific type.
      java.lang.Object readObjectUnshared()
      Read and return an unshared object.
      <T> T readObjectUnshared​(java.lang.Class<T> type)
      Read and return an unshared object, cast to a specific type.
      short readShort()  
      (package private) void readToEndBlockData()  
      int readUnsignedByte()  
      int readUnsignedShort()  
      java.lang.String readUTF()  
      (package private) int remaining()  
      long skip​(long n)
      Skips over and discards up to n bytes of data from this input stream.
      int skipBytes​(int n)  
      void start​(ByteInput newInput)
      Begin unmarshalling from a stream.
      (package private) void unblock()  
      private static java.io.InvalidObjectException wrongType​(java.lang.ClassCastException e, java.lang.Class<?> expected, java.lang.Class<?> actual)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • remaining

        private int remaining
    • Method Detail

      • inBlock

        boolean inBlock()
      • remaining

        int remaining()
      • endOfStream

        void endOfStream()
      • unblock

        void unblock()
      • readBlockHeader

        void readBlockHeader​(int leadByte)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • readToEndBlockData

        void readToEndBlockData()
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • badLeadByte

        private java.io.StreamCorruptedException badLeadByte​(int leadByte)
      • readObjectUnshared

        public java.lang.Object readObjectUnshared()
                                            throws java.lang.ClassNotFoundException,
                                                   java.io.IOException
        Description copied from interface: Unmarshaller
        Read and return an unshared object.
        Specified by:
        readObjectUnshared in interface Unmarshaller
        Returns:
        an unshared object
        Throws:
        java.lang.ClassNotFoundException - if the class of a serialized object cannot be found
        java.io.IOException - if an error occurs
      • readObject

        public java.lang.Object readObject()
                                    throws java.lang.ClassNotFoundException,
                                           java.io.IOException
        Specified by:
        readObject in interface java.io.ObjectInput
        Throws:
        java.lang.ClassNotFoundException
        java.io.IOException
      • readObject

        private java.lang.Object readObject​(boolean unshared)
                                     throws java.lang.ClassNotFoundException,
                                            java.io.IOException
        Throws:
        java.lang.ClassNotFoundException
        java.io.IOException
      • read

        public int read()
                 throws java.io.IOException
        Description copied from interface: ByteInput
        Reads the next byte of data from the input stream. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
        Specified by:
        read in interface ByteInput
        Specified by:
        read in interface java.io.ObjectInput
        Returns:
        the next byte, or -1 if the end of stream has been reached
        Throws:
        java.io.IOException - if an error occurs
      • read

        public int read​(byte[] b)
                 throws java.io.IOException
        Description copied from interface: ByteInput
        Read some bytes from the input stream into the given array. Returns the number of bytes actually read (possibly zero), or -1 if the end of stream has been reached.
        Specified by:
        read in interface ByteInput
        Specified by:
        read in interface java.io.ObjectInput
        Parameters:
        b - the destination array
        Returns:
        the number of bytes read (possibly zero), or -1 if the end of stream has been reached
        Throws:
        java.io.IOException - if an error occurs
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException
        Description copied from interface: ByteInput
        Read some bytes from the input stream into the given array. Returns the number of bytes actually read (possibly zero), or -1 if the end of stream has been reached.
        Specified by:
        read in interface ByteInput
        Specified by:
        read in interface java.io.ObjectInput
        Parameters:
        b - the destination array
        off - the offset into the array into which data should be read
        len - the number of bytes to attempt to fill in the destination array
        Returns:
        the number of bytes read (possibly zero), or -1 if the end of stream has been reached
        Throws:
        java.io.IOException - if an error occurs
      • skip

        public long skip​(long n)
                  throws java.io.IOException
        Description copied from interface: ByteInput
        Skips over and discards up to n bytes of data from this input stream. If the end of stream is reached, this method returns 0 in order to be consistent with InputStream.skip(long).
        Specified by:
        skip in interface ByteInput
        Specified by:
        skip in interface java.io.ObjectInput
        Parameters:
        n - the number of bytes to attempt to skip
        Returns:
        the number of bytes skipped
        Throws:
        java.io.IOException - if an error occurs
      • available

        public int available()
                      throws java.io.IOException
        Description copied from interface: ByteInput
        Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream.
        Specified by:
        available in interface ByteInput
        Specified by:
        available in interface java.io.ObjectInput
        Returns:
        the number of bytes
        Throws:
        java.io.IOException - if an error occurs
      • readFully

        public void readFully​(byte[] b)
                       throws java.io.IOException
        Specified by:
        readFully in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readFully

        public void readFully​(byte[] b,
                              int off,
                              int len)
                       throws java.io.IOException
        Specified by:
        readFully in interface java.io.DataInput
        Throws:
        java.io.IOException
      • skipBytes

        public int skipBytes​(int n)
                      throws java.io.IOException
        Specified by:
        skipBytes in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readBoolean

        public boolean readBoolean()
                            throws java.io.IOException
        Specified by:
        readBoolean in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readByte

        public byte readByte()
                      throws java.io.IOException
        Specified by:
        readByte in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUnsignedByte

        public int readUnsignedByte()
                             throws java.io.IOException
        Specified by:
        readUnsignedByte in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readShort

        public short readShort()
                        throws java.io.IOException
        Specified by:
        readShort in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUnsignedShort

        public int readUnsignedShort()
                              throws java.io.IOException
        Specified by:
        readUnsignedShort in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readChar

        public char readChar()
                      throws java.io.IOException
        Specified by:
        readChar in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readInt

        public int readInt()
                    throws java.io.IOException
        Specified by:
        readInt in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readLong

        public long readLong()
                      throws java.io.IOException
        Specified by:
        readLong in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readFloat

        public float readFloat()
                        throws java.io.IOException
        Specified by:
        readFloat in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readDouble

        public double readDouble()
                          throws java.io.IOException
        Specified by:
        readDouble in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readLine

        public java.lang.String readLine()
                                  throws java.io.IOException
        Specified by:
        readLine in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUTF

        public java.lang.String readUTF()
                                 throws java.io.IOException
        Specified by:
        readUTF in interface java.io.DataInput
        Throws:
        java.io.IOException
      • clearInstanceCache

        public void clearInstanceCache()
                                throws java.io.IOException
        Description copied from interface: Unmarshaller
        Discard the instance cache.
        Specified by:
        clearInstanceCache in interface Unmarshaller
        Throws:
        java.io.IOException - if an error occurs
      • clearClassCache

        public void clearClassCache()
                             throws java.io.IOException
        Description copied from interface: Unmarshaller
        Discard the class cache. Implicitly also discards the instance cache.
        Specified by:
        clearClassCache in interface Unmarshaller
        Throws:
        java.io.IOException - if an error occurs
      • start

        public void start​(ByteInput newInput)
                   throws java.io.IOException
        Description copied from interface: Unmarshaller
        Begin unmarshalling from a stream.
        Specified by:
        start in interface Unmarshaller
        Parameters:
        newInput - the new stream
        Throws:
        java.io.IOException - if an error occurs during setup, such as an invalid header
      • finish

        public void finish()
                    throws java.io.IOException
        Description copied from interface: Unmarshaller
        Finish unmarshalling from a stream. Any transient class or instance cache is discarded.
        Specified by:
        finish in interface Unmarshaller
        Throws:
        java.io.IOException - if an error occurs
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface java.io.ObjectInput
        Throws:
        java.io.IOException
      • readObject

        public <T> T readObject​(java.lang.Class<T> type)
                         throws java.lang.ClassNotFoundException,
                                java.io.IOException
        Description copied from interface: Unmarshaller
        Read and return an object, cast to a specific type.
        Specified by:
        readObject in interface Unmarshaller
        Type Parameters:
        T - the object type
        Parameters:
        type - the object class
        Returns:
        the object read from the stream
        Throws:
        java.lang.ClassNotFoundException - if the class of a serialized object cannot be found
        java.io.InvalidObjectException - if the object is not of the expected type
        java.io.IOException - if an error occurs
      • readObjectUnshared

        public <T> T readObjectUnshared​(java.lang.Class<T> type)
                                 throws java.lang.ClassNotFoundException,
                                        java.io.IOException
        Description copied from interface: Unmarshaller
        Read and return an unshared object, cast to a specific type.
        Specified by:
        readObjectUnshared in interface Unmarshaller
        Type Parameters:
        T - the object type
        Parameters:
        type - the object class
        Returns:
        an unshared object
        Throws:
        java.lang.ClassNotFoundException - if the class of a serialized object cannot be found
        java.io.InvalidObjectException - if the object is not of the expected type
        java.io.IOException - if an error occurs
      • wrongType

        private static java.io.InvalidObjectException wrongType​(java.lang.ClassCastException e,
                                                                java.lang.Class<?> expected,
                                                                java.lang.Class<?> actual)