Class BlockUnmarshaller

  • All Implemented Interfaces:
    java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.lang.AutoCloseable, ByteInput, Unmarshaller

    public final class BlockUnmarshaller
    extends java.lang.Object
    implements Unmarshaller
    • Field Detail

      • remaining

        private int remaining
    • Constructor Detail

    • Method Detail

      • inBlock

        boolean inBlock()
      • remaining

        int remaining()
      • endOfStream

        void endOfStream()
      • tempEndOfStream

        int tempEndOfStream()
      • restore

        void restore​(int remaining)
      • 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)