org.restlet.data
Class Message

java.lang.Object
  extended by org.restlet.data.Message
Direct Known Subclasses:
Request, Response

public abstract class Message
extends java.lang.Object

Generic message exchanged between client and server connectors.

Author:
Jerome Louvel

Constructor Summary
Message()
          Constructor.
Message(Representation entity)
          Constructor.
 
Method Summary
 java.util.Map<java.lang.String,java.lang.Object> getAttributes()
          Returns the modifiable map of attributes that can be used by developers to save information relative to the message.
 Representation getEntity()
          Returns the entity representation.
 DomRepresentation getEntityAsDom()
          Returns the entity as a DOM representation.
This method can be called several times and will always return the same representation instance.
 Form getEntityAsForm()
          Returns the entity as a form.
This method can be called several times and will always return the same form instance.
 java.lang.Object getEntityAsObject()
          Deprecated. Since 1.1, the ConverterService is deprecated, with no replacement as it doesn't fit well with content negotiation. Most users prefer to handle those conversion in Resource subclasses.
 SaxRepresentation getEntityAsSax()
          Returns the entity as a SAX representation.
This method can be called several times and will always return the same representation instance.
abstract  boolean isConfidential()
          Indicates if the message was or will be exchanged confidentially, for example via a SSL-secured connection.
 boolean isEntityAvailable()
          Indicates if a content is available and can be sent.
 void release()
          Releases the message's entity.
 void setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)
          Sets the modifiable map of attributes
 void setEntity(java.lang.Object object)
          Deprecated. Since 1.1, the ConverterService is deprecated, with no replacement as it doesn't fit well with content negotiation. Most users prefer to handle those conversion in Resource subclasses.
 void setEntity(Representation entity)
          Sets the entity representation.
 void setEntity(java.lang.String value, MediaType mediaType)
          Sets a textual entity.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Message

public Message()
Constructor.


Message

public Message(Representation entity)
Constructor.

Parameters:
entity - The payload of the message.
Method Detail

getAttributes

public java.util.Map<java.lang.String,java.lang.Object> getAttributes()
Returns the modifiable map of attributes that can be used by developers to save information relative to the message. Creates a new instance if no one has been set. This is an easier alternative to the creation of a wrapper instance around the whole message.

In addition, this map is a shared space between the developer and the connectors. In this case, it is used to exchange information that is not uniform across all protocols and couldn't therefore be directly included in the API. For this purpose, all attribute names starting with "org.restlet" are reserved. Currently the following attributes are used:
Attribute name Class name Description
org.restlet.http.headers org.restlet.data.Form Server HTTP connectors must provide all request headers and client HTTP connectors must provide all response headers, exactly as they were received. In addition, developers can also use this attribute to specify non-standard headers that should be added to the request or to the response.
org.restlet.https.clientCertificates List For requests received via a secure connector, indicates the ordered list of client certificates, if they are available and accessible.

Most of the standard HTTP headers are directly supported via the Restlet API. Thus, adding such HTTP headers is forbidden because it could conflict with the connector's internal behavior, limit portability or prevent future optimizations. The other standard HTTP headers (that are not supported) can be added as attributes via the "org.restlet.http.headers" key.

Returns:
The modifiable attributes map.

getEntity

public Representation getEntity()
Returns the entity representation.

Returns:
The entity representation.

getEntityAsDom

public DomRepresentation getEntityAsDom()
Returns the entity as a DOM representation.
This method can be called several times and will always return the same representation instance. Note that if the entity is large this method can result in important memory consumption. In this case, consider using a SAX representation.

Returns:
The entity as a DOM representation.

getEntityAsForm

public Form getEntityAsForm()
Returns the entity as a form.
This method can be called several times and will always return the same form instance. Note that if the entity is large this method can result in important memory consumption.

Returns:
The entity as a form.

getEntityAsObject

@Deprecated
public java.lang.Object getEntityAsObject()
Deprecated. Since 1.1, the ConverterService is deprecated, with no replacement as it doesn't fit well with content negotiation. Most users prefer to handle those conversion in Resource subclasses.

Returns the entity as a higher-level object. This object is created by the Application's converter service. In order to use this method to facilitate the parsing of entities, you need to set an instance of a subclass of ConverterService onto your Restlet Application, overriding the toObject(Representation) method.
Note that this triggers the parsing of the entity.

Returns:
The entity as a higher-level object.
See Also:
ConverterService

getEntityAsSax

public SaxRepresentation getEntityAsSax()
Returns the entity as a SAX representation.
This method can be called several times and will always return the same representation instance. Note that generally this type of representation can only be parsed once. If you evaluate an XPath expression, it can also only be done once. If you need to reuse the entity multiple times, consider using the getEntityAsDom() method instead.

Returns:
The entity as a SAX representation.

isConfidential

public abstract boolean isConfidential()
Indicates if the message was or will be exchanged confidentially, for example via a SSL-secured connection.

Returns:
True if the message is confidential.

isEntityAvailable

public boolean isEntityAvailable()
Indicates if a content is available and can be sent. Several conditions must be met: the content must exists and have some available data.

Returns:
True if a content is available and can be sent.

release

public void release()
Releases the message's entity. If the entity is transient and hasn't been read yet, all the remaining content will be discarded, any open socket, channel, file or similar source of content will be immediately closed.


setAttributes

public void setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)
Sets the modifiable map of attributes

Parameters:
attributes - The modifiable map of attributes

setEntity

@Deprecated
public void setEntity(java.lang.Object object)
Deprecated. Since 1.1, the ConverterService is deprecated, with no replacement as it doesn't fit well with content negotiation. Most users prefer to handle those conversion in Resource subclasses.

Sets the entity from a higher-level object. This object is converted to a representation using the Application's converter service. If you want to use this method to facilitate the setting of entities, you need to provide a custom implementation of the ConverterService class, overriding the toRepresentation(Object) method.

Parameters:
object - The higher-level object.
See Also:
ConverterService

setEntity

public void setEntity(Representation entity)
Sets the entity representation.

Parameters:
entity - The entity representation.

setEntity

public void setEntity(java.lang.String value,
                      MediaType mediaType)
Sets a textual entity.

Parameters:
value - The represented string.
mediaType - The representation's media type.


Copyright © 2005-2008 Noelios Technologies.