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:
java.io.Closeable,java.io.DataInput,java.io.ObjectInput,java.io.ObjectStreamConstants,java.lang.AutoCloseable
public class ContextClassLoaderObjectInputStream extends java.io.ObjectInputStreamA subclass ofObjectInputStreamthat usesthe context class loaderto resolve classes encountered in the input stream.- Author:
- Lucian Chirita (lucianc@users.sourceforge.net)
-
-
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, java.io.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 JasperReportsContextgetJasperReportsContext()protected java.lang.Class<?>resolveClass(java.io.ObjectStreamClass desc)Callssuper.resolveClass()and in case this fails withClassNotFoundExceptionattempts to load the class using the context class loader.protected java.lang.ObjectresolveObject(java.lang.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
-
-
-
-
Constructor Detail
-
ContextClassLoaderObjectInputStream
public ContextClassLoaderObjectInputStream(JasperReportsContext jasperReportsContext, java.io.InputStream in) throws java.io.IOException
Creates an object input stream that reads data from the specifiedInputStream.- Parameters:
in- the input stream to read data from- Throws:
java.io.IOException- See Also:
ObjectInputStream(InputStream)
-
-
Method Detail
-
getJasperReportsContext
public JasperReportsContext getJasperReportsContext()
-
resolveClass
protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass desc) throws java.io.IOException, java.lang.ClassNotFoundExceptionCallssuper.resolveClass()and in case this fails withClassNotFoundExceptionattempts to load the class using the context class loader.- Overrides:
resolveClassin classjava.io.ObjectInputStream- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
resolveObject
protected java.lang.Object resolveObject(java.lang.Object obj) throws java.io.IOExceptionChecks 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:
resolveObjectin classjava.io.ObjectInputStream- Throws:
java.io.IOException
-
-