Package org.restlet

Class Message

  • Direct Known Subclasses:
    Request, Response

    public abstract class Message
    extends java.lang.Object
    Generic message exchanged between components.
    Author:
    Jerome Louvel
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      void flushBuffers()
      Asks the underlying connector to immediately flush the network buffers.
      java.util.concurrent.ConcurrentMap<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.
      java.lang.String getEntityAsText()
      Returns the entity as text.
      Series<Header> getHeaders()
      Returns the series of lower-level HTTP headers.
      Uniform getOnError()
      Returns the callback invoked when an error occurs when sending the message.
      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​(java.lang.String value, MediaType mediaType)
      Sets a textual entity.
      void setEntity​(Representation entity)
      Sets the entity representation.
      void setOnError​(Uniform onError)
      Sets the callback invoked when an error occurs when sending the message.
      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

      • flushBuffers

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

        public java.util.concurrent.ConcurrentMap<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:
        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 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.
      • 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.
      • 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 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.
      • 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.
      • 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​(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.