Package org.restlet

Class Message

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

public abstract class Message extends Object
Generic message exchanged between components.
Author:
Jerome Louvel
  • Constructor Details

    • Message

      public Message()
      Constructor.
    • Message

      public Message(Representation entity)
      Constructor.
      Parameters:
      entity - The payload of the message.
  • Method Details

    • bufferEntity

      public void bufferEntity()
      If the entity is transient or its size unknown in advance but available, then the entity is wrapped with a BufferingRepresentation.

      Be careful as this method could create potentially very large byte buffers in memory that could impact your application performance.
      See Also:
    • flushBuffers

      public void flushBuffers() throws IOException
      Asks the underlying connector to immediately flush the network buffers.
      Throws:
      IOException
    • getAttributes

      public ConcurrentMap<String,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:
      list of currently used attributes
      Attribute name Class name Description
      org.restlet.http.headers org.restlet.util.Series<org.restlet.engine.header.Header> 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 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 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.
    • getEntityAsText

      public 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.
    • getHeaders

      public Series<Header> getHeaders()
      Returns the series of lower-level HTTP headers. Please not that this method should rarely be used as most HTTP headers are already surfaced by the Restlet API. The result series can be used to deal with HTTP extension headers.
      Returns:
      The HTTP headers.
    • getOnError

      public Uniform getOnError()
      Returns the callback invoked when an error occurs when sending the message.
      Returns:
      The callback invoked when an error occurs when sending the message.
    • getOnSent

      public Uniform getOnSent()
      Returns the callback invoked after sending the message.
      Returns:
      The callback invoked after sending the message.
    • getRecipientsInfo

      public 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 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:
    • setAttributes

      public void setAttributes(Map<String,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(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(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(String value, MediaType mediaType)
      Sets a textual entity.
      Parameters:
      value - The represented string.
      mediaType - The representation's media type.
    • setOnError

      public void setOnError(Uniform onError)
      Sets the callback invoked when an error occurs when sending the message.
      Parameters:
      onError - The callback invoked when an error occurs when sending the message.
    • 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(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(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.