org.restlet

## Class Message

- java.lang.Object
- - org.restlet.Message

Direct Known Subclasses:
  Request, Response

    public abstract class Message
    extends java.lang.Object

Generic message exchanged between components.

Author:
  Jerome Louvel

### Constructor Summary

Constructors
Constructor and Description
`Message()` Constructor.
`Message(Representation entity)` Constructor.

### Method Summary

Methods
`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.
`java.util.List<CacheDirective>` `getCacheDirectives()` Returns the cache directives. Note that when used with HTTP connectors, this property maps to the "Cache-Control" header.
`java.util.Date` `getDate()` Returns the date and time at which the message was originated.
`Representation` `getEntity()` Returns the entity representation.
`Form` `getEntityAsForm()` Deprecated. Will be removed in future release 2.1.
`java.lang.String` `getEntityAsText()` Returns the entity as text.
`Uniform` `getOnSent()` Returns the callback invoked after sending the message.
`java.util.List<RecipientInfo>` `getRecipientsInfo()` Returns the intermediary recipient information. Note that when used with HTTP connectors, this property maps to the "Via" headers.
`java.util.List<Warning>` `getWarnings()` Returns the additional warnings information. Note that when used with HTTP connectors, this property maps to the "Warning" headers.
`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 or received.
`void` `release()` Releases the message's entity if present.
`void` `setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)` Sets the modifiable map of attributes.
`void` `setCacheDirectives(java.util.List<CacheDirective> cacheDirectives)` Sets the cache directives.
`void` `setDate(java.util.Date date)` Sets the date and time at which the message was originated.
`void` `setEntity(Representation entity)` Sets the entity representation.
`void` `setEntity(java.lang.String value, MediaType mediaType)` Sets a textual entity.
`void` `setOnSent(Uniform onSentCallback)` Sets the callback invoked after sending the message.
`void` `setRecipientsInfo(java.util.List<RecipientInfo> recipientsInfo)` Sets the modifiable list of intermediary recipients.
`void` `setWarnings(java.util.List<Warning> warnings)` Sets the additional warnings information.

### 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<java.security.cert.Certificate> | 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.

#### getCacheDirectives

    public java.util.List<CacheDirective> getCacheDirectives()

Returns the cache directives.
Note that when used with HTTP connectors, this property maps to the "Cache-Control" header.

Returns:
  The cache directives.

#### getDate

    public java.util.Date getDate()

Returns the date and time at which the message was originated.

Returns:
  The date and time at which the message was originated.

#### getEntity

    public Representation getEntity()

Returns the entity representation.

Returns:
  The entity representation.

#### getEntityAsForm

    @Deprecated
    public Form getEntityAsForm()

Deprecated. Will be removed in future release 2.1.
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.

#### getEntityAsText

    public java.lang.String getEntityAsText()

Returns the entity as text. This method can be called several times and will always return the same text. Note that if the entity is large this method can result in important memory consumption.

Returns:
  The entity as text.

#### getOnSent

    public Uniform getOnSent()

Returns the callback invoked after sending the message.

Returns:
  The callback invoked after sending the message.

#### getRecipientsInfo

    public java.util.List<RecipientInfo> getRecipientsInfo()

Returns the intermediary recipient information.
Note that when used with HTTP connectors, this property maps to the "Via" headers.

Returns:
  The intermediary recipient information.

#### getWarnings

    public java.util.List<Warning> getWarnings()

Returns the additional warnings information.
Note that when used with HTTP connectors, this property maps to the "Warning" headers.

Returns:
  The additional warnings information.

#### 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 or received. 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 present.

See Also:
  `Representation.release()`

#### setAttributes

    public void setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)

Sets the modifiable map of attributes. This method clears the current map and puts all entries in the parameter map.

Parameters:
  `attributes` - A map of attributes

#### setCacheDirectives

    public void setCacheDirectives(java.util.List<CacheDirective> cacheDirectives)

Sets the cache directives. Note that when used with HTTP connectors, this property maps to the "Cache-Control" header. This method clears the current list and adds all entries in the parameter list.

Parameters:
  `cacheDirectives` - The cache directives.

#### setDate

    public void setDate(java.util.Date date)

Sets the date and time at which the message was originated.

Parameters:
  `date` - The date and time at which the message was originated.

#### 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.

#### setOnSent

    public void setOnSent(Uniform onSentCallback)

Sets the callback invoked after sending the message.

Parameters:
  `onSentCallback` - The callback invoked after sending the message.

#### setRecipientsInfo

    public void setRecipientsInfo(java.util.List<RecipientInfo> recipientsInfo)

Sets the modifiable list of intermediary recipients. Note that when used with HTTP connectors, this property maps to the "Via" headers. This method clears the current list and adds all entries in the parameter list.

Parameters:
  `recipientsInfo` - A list of intermediary recipients.

#### setWarnings

    public void setWarnings(java.util.List<Warning> warnings)

Sets the additional warnings information. Note that when used with HTTP connectors, this property maps to the "Warning" headers. This method clears the current list and adds all entries in the parameter list.

Parameters:
  `warnings` - The warnings.