org.restlet.representation
Class ObjectRepresentation<T extends java.io.Serializable>

java.lang.Object
  extended by org.restlet.representation.Variant
      extended by org.restlet.representation.RepresentationInfo
          extended by org.restlet.representation.Representation
              extended by org.restlet.representation.StreamRepresentation
                  extended by org.restlet.representation.OutputRepresentation
                      extended by org.restlet.representation.ObjectRepresentation<T>
Type Parameters:
T - The class to serialize, see Serializable

public class ObjectRepresentation<T extends java.io.Serializable>
extends OutputRepresentation

Representation based on a serializable Java object.
It supports binary representations of JavaBeans using the ObjectInputStream and ObjectOutputStream classes. In this case, it handles representations having the following media type: MediaType.APPLICATION_JAVA_OBJECT ("application/x-java-serialized-object"). It also supports textual representations of JavaBeans using the XMLEncoder and XMLDecoder classes. In this case, it handles representations having the following media type: MediaType.APPLICATION_JAVA_OBJECT_XML ("application/x-java-serialized-object+xml"). SECURITY WARNING: The usage of XMLDecoder when deserializing XML presentations from unstrusted sources can lead to malicious attacks. As pointed here, the XMLDecoder is able to force the JVM to execute unwanted Java code described inside the XML file. Thus, the support of such format has been disactivated by default inside the default converter. You can activate this support by turning on the following system property: org.restlet.engine.converter.DefaultConverter.VARIANT_OBJECT_XML_SUPPORTED. SECURITY WARNING: The usage of ObjectInputStream when deserializing binary presentations from unstrusted sources can lead to malicious attacks. As pointed here, the ObjectInputStream is able to force the JVM to execute unwanted Java code. Thus, the support of such format has been disactivated by default inside the default converter. You can activate this support by turning on the following system property: org.restlet.engine.converter.DefaultConverter .VARIANT_OBJECT_BINARY_SUPPORTED.

Author:
Jerome Louvel

Field Summary
 
Fields inherited from class org.restlet.representation.Representation
UNKNOWN_SIZE
 
Constructor Summary
ObjectRepresentation(Representation serializedRepresentation)
          Constructor reading the object from a serialized representation.
ObjectRepresentation(T object)
          Constructor for the MediaType.APPLICATION_JAVA_OBJECT type.
ObjectRepresentation(T object, MediaType mediaType)
          Constructor for either the MediaType.APPLICATION_JAVA_OBJECT type or the MediaType.APPLICATION_XML type.
 
Method Summary
 T getObject()
          Returns the represented object.
 void release()
          Releases the represented object.
 void setObject(T object)
          Sets the represented object.
 void write(java.io.OutputStream outputStream)
          Writes the representation to a byte stream.
 
Methods inherited from class org.restlet.representation.OutputRepresentation
getChannel, getStream
 
Methods inherited from class org.restlet.representation.StreamRepresentation
getReader, write, write
 
Methods inherited from class org.restlet.representation.Representation
append, exhaust, getAvailableSize, getDigest, getDisposition, getExpirationDate, getRange, getRegistration, getSize, getText, hasKnownSize, isAvailable, isEmpty, isSelectable, isTransient, setAvailable, setDigest, setDisposition, setExpirationDate, setListener, setRange, setSize, setTransient
 
Methods inherited from class org.restlet.representation.RepresentationInfo
getModificationDate, getTag, setModificationDate, setTag
 
Methods inherited from class org.restlet.representation.Variant
createClientInfo, equals, getCharacterSet, getEncodings, getLanguages, getLocationRef, getMediaType, includes, isCompatible, setCharacterSet, setEncodings, setLanguages, setLocationRef, setLocationRef, setMediaType, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ObjectRepresentation

public ObjectRepresentation(Representation serializedRepresentation)
                     throws java.io.IOException,
                            java.lang.ClassNotFoundException,
                            java.lang.IllegalArgumentException
Constructor reading the object from a serialized representation. This representation must have the proper media type: "application/x-java-serialized-object".

Parameters:
serializedRepresentation - The serialized representation.
Throws:
java.io.IOException
java.lang.ClassNotFoundException
java.lang.IllegalArgumentException

ObjectRepresentation

public ObjectRepresentation(T object)
Constructor for the MediaType.APPLICATION_JAVA_OBJECT type.

Parameters:
object - The serializable object.

ObjectRepresentation

public ObjectRepresentation(T object,
                            MediaType mediaType)
Constructor for either the MediaType.APPLICATION_JAVA_OBJECT type or the MediaType.APPLICATION_XML type. In the first case, the Java Object Serialization mechanism is used, based on ObjectOutputStream. In the latter case, the JavaBeans XML serialization is used, based on java.beans.XMLEncoder.

Parameters:
object - The serializable object.
mediaType - The media type.
Method Detail

getObject

public T getObject()
                                         throws java.io.IOException
Returns the represented object.

Returns:
The represented object.
Throws:
java.io.IOException

release

public void release()
Releases the represented object.

Overrides:
release in class Representation

setObject

public void setObject(T object)
Sets the represented object.

Parameters:
object - The represented object.

write

public void write(java.io.OutputStream outputStream)
           throws java.io.IOException
Description copied from class: Representation
Writes the representation to a byte stream. This method is ensured to write the full content for each invocation unless it is a transient representation, in which case an exception is thrown.

Note that the class implementing this method shouldn't flush or close the given OutputStream after writing to it as this will be handled by the Restlet connectors automatically.

Specified by:
write in class Representation
Parameters:
outputStream - The output stream.
Throws:
java.io.IOException


Copyright © 2005-2013 Restlet S.A.S..