Package com.sleepycat.bind.serial

## Class SerialInput

- java.lang.Object
- - java.io.InputStream
  - - java.io.ObjectInputStream
    - - com.sleepycat.util.ClassResolver.Stream
      - - com.sleepycat.bind.serial.SerialInput

All Implemented Interfaces:
  `java.io.Closeable`, `java.io.DataInput`, `java.io.ObjectInput`, `java.io.ObjectStreamConstants`, `java.lang.AutoCloseable`

    public class SerialInput
    extends ClassResolver.Stream

A specialized `ObjectInputStream` that gets class description information from a `ClassCatalog`. It is used by `SerialBinding`.

This class is used instead of an `ObjectInputStream`, which it extends, to read an object stream written by the `SerialOutput` class. For reading objects from a database normally one of the serial binding classes is used. `SerialInput` is used when an `ObjectInputStream` is needed along with compact storage. A `ClassCatalog` must be supplied, however, to stored shared class descriptions.

See Also:
  Class Evolution

### Nested Class Summary

### Nested classes/interfaces inherited from class java.io.ObjectInputStream

`java.io.ObjectInputStream.GetField`

### Field Summary

### 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`

### Constructor Summary

Constructors
`SerialInput​(java.io.InputStream in, ClassCatalog classCatalog)` Creates a serial input stream.
`SerialInput​(java.io.InputStream in, ClassCatalog classCatalog, java.lang.ClassLoader classLoader)` Creates a serial input stream.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected java.io.ObjectStreamClass` `readClassDescriptor()`

### Methods inherited from class com.sleepycat.util.ClassResolver.Stream

`resolveClass`

### Methods inherited from class java.io.ObjectInputStream

`available, close, defaultReadObject, enableResolveObject, getObjectInputFilter, read, read, readBoolean, readByte, readChar, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, resolveProxyClass, setObjectInputFilter, skipBytes`

### Methods inherited from class java.io.InputStream

`mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, 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.ObjectInput

`read, skip`

### Constructor Detail

#### SerialInput

    public SerialInput​(java.io.InputStream in,
                       ClassCatalog classCatalog)
                throws java.io.IOException

Creates a serial input stream.

Parameters:
  `in` - is the input stream from which compact serialized objects will be read.
  `classCatalog` - is the catalog containing the class descriptions for the serialized objects.
Throws:
  `java.io.IOException` - if an I/O error occurs while reading stream header.

#### SerialInput

    public SerialInput​(java.io.InputStream in,
                       ClassCatalog classCatalog,
                       java.lang.ClassLoader classLoader)
                throws java.io.IOException

Creates a serial input stream.

Parameters:
  `in` - is the input stream from which compact serialized objects will be read.
  `classCatalog` - is the catalog containing the class descriptions for the serialized objects.
  `classLoader` - is the class loader to use, or null if a default class loader should be used.
Throws:
  `java.io.IOException` - if an I/O error occurs while reading stream header.

### Method Detail

#### readClassDescriptor

    protected java.io.ObjectStreamClass readClassDescriptor()
                                                     throws java.io.IOException,
                                                            java.lang.ClassNotFoundException

Overrides:
  `readClassDescriptor` in class `java.io.ObjectInputStream`
Throws:
  `java.io.IOException`
  `java.lang.ClassNotFoundException`