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 ofObjectInputStreamthat usesthe context class loaderto 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 JasperReportsContextgetJasperReportsContext()protected Class<?>resolveClass(ObjectStreamClass desc)Callssuper.resolveClass()and in case this fails withClassNotFoundExceptionattempts to load the class using the context class loader.protected ObjectresolveObject(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 withClassNotFoundExceptionattempts to load the class using the context class loader.- Overrides:
resolveClassin classObjectInputStream- Throws:
IOExceptionClassNotFoundException
-
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:
resolveObjectin classObjectInputStream- Throws:
IOException
-
-