Package net.sf.jasperreports.engine.util
Class ContextClassLoaderObjectInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.ObjectInputStream
-
- net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream
-
- All Implemented Interfaces:
Closeable
,DataInput
,ObjectInput
,ObjectStreamConstants
,AutoCloseable
public class ContextClassLoaderObjectInputStream extends ObjectInputStream
A subclass ofObjectInputStream
that usesthe context class loader
to resolve classes encountered in the input stream.- Author:
- Lucian Chirita (lucianc@users.sourceforge.net)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.io.ObjectInputStream
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 Constructor Description ContextClassLoaderObjectInputStream(JasperReportsContext jasperReportsContext, InputStream in)
Creates an object input stream that reads data from the specifiedInputStream
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JasperReportsContext
getJasperReportsContext()
protected Class<?>
resolveClass(ObjectStreamClass desc)
Callssuper.resolveClass()
and in case this fails withClassNotFoundException
attempts to load the class using the context class loader.protected Object
resolveObject(Object obj)
Checks to see if the object is an instance ofjava.awt.Font
, and in case it is, it replaces it with the one looked up for in the font extensions.-
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, getObjectInputFilter, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, 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
-
ContextClassLoaderObjectInputStream
public ContextClassLoaderObjectInputStream(JasperReportsContext jasperReportsContext, InputStream in) throws IOException
Creates an object input stream that reads data from the specifiedInputStream
.- Parameters:
in
- the input stream to read data from- Throws:
IOException
- See Also:
ObjectInputStream(InputStream)
-
-
Method Detail
-
getJasperReportsContext
public JasperReportsContext getJasperReportsContext()
-
resolveClass
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException
Callssuper.resolveClass()
and in case this fails withClassNotFoundException
attempts to load the class using the context class loader.- Overrides:
resolveClass
in classObjectInputStream
- Throws:
IOException
ClassNotFoundException
-
resolveObject
protected Object resolveObject(Object obj) throws IOException
Checks to see if the object is an instance ofjava.awt.Font
, and in case it is, it replaces it with the one looked up for in the font extensions.- Overrides:
resolveObject
in classObjectInputStream
- Throws:
IOException
-
-