gate.persist
Class GateAwareObjectInputStream
java.lang.Object
java.io.InputStream
java.io.ObjectInputStream
gate.persist.GateAwareObjectInputStream
- All Implemented Interfaces:
- Closeable, DataInput, ObjectInput, ObjectStreamConstants
public class GateAwareObjectInputStream
- extends ObjectInputStream
An ObjectInputStream that attempts to resolve the classes of objects
loaded from the stream via the GateClassLoader if they cannot be
found by the usual means. This allows LRs to be loaded successfully
from a serial datastore when they have features (or annotations with
features) whose class is defined in a plugin.
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, 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 |
Methods inherited from class java.io.ObjectInputStream |
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GateAwareObjectInputStream
public GateAwareObjectInputStream(InputStream source)
throws IOException
- Creates a GATE aware object input stream to read from the given
source.
- Throws:
IOException
resolveClass
protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException,
ClassNotFoundException
- Resolve the class of an object read from the stream. First attempts
to use the default resolution method provided by ObjectInputStream.
If that fails with a ClassNotFoundException then tries to resolve
the class via the GATE classloader instead.
- Overrides:
resolveClass
in class ObjectInputStream
- Throws:
IOException
ClassNotFoundException
resolveProxyClass
protected Class<?> resolveProxyClass(String[] interfaces)
throws IOException,
ClassNotFoundException
- Resolve a proxy class that implements the given interfaces. First
attempts to use the default resolution method provided by
ObjectInputStream. If that fails with a ClassNotFoundException then
tries to resolve the interfaces and create the proxy class using
the GATE classloader instead.
- Overrides:
resolveProxyClass
in class ObjectInputStream
- Throws:
IOException
ClassNotFoundException