Class MessageEvent

  • All Implemented Interfaces:
    Element, ExtensionElement, NamedElement, XmlElement, XmlLangElement

    public class MessageEvent
    extends Object
    implements ExtensionElement
    Represents message events relating to the delivery, display, composition and cancellation of messages.

    There are four message events currently defined in this namespace:

    1. Offline
      Indicates that the message has been stored offline by the intended recipient's server. This event is triggered only if the intended recipient's server supports offline storage, has that support enabled, and the recipient is offline when the server receives the message for delivery.
    2. Delivered
      Indicates that the message has been delivered to the recipient. This signifies that the message has reached the recipient's XMPP client, but does not necessarily mean that the message has been displayed. This event is to be raised by the XMPP client.
    3. Displayed
      Once the message has been received by the recipient's XMPP client, it may be displayed to the user. This event indicates that the message has been displayed, and is to be raised by the XMPP client. Even if a message is displayed multiple times, this event should be raised only once.
    4. Composing
      In threaded chat conversations, this indicates that the recipient is composing a reply to a message. The event is to be raised by the recipient's XMPP client. A XMPP client is allowed to raise this event multiple times in response to the same request, providing the original event is cancelled first.
    • Constructor Summary

      Constructors 
      Constructor Description
      MessageEvent()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      String getElementName()
      Returns the XML element name of the extension sub-packet root element.
      List<String> getEventTypes()
      Returns the types of events.
      String getNamespace()
      Returns the XML namespace of the extension sub-packet root element.
      String getStanzaId()
      Returns the unique ID of the message that requested to be notified of the event.
      boolean isCancelled()
      When the message is a notification returns if the receiver of the message cancelled composing a reply.
      boolean isComposing()
      When the message is a request returns if the sender of the message requests to be notified when the receiver is composing a reply.
      boolean isDelivered()
      When the message is a request returns if the sender of the message requests to be notified when the message is delivered.
      boolean isDisplayed()
      When the message is a request returns if the sender of the message requests to be notified when the message is displayed.
      boolean isMessageEventRequest()
      Returns true if this MessageEvent is a request for notifications.
      boolean isOffline()
      When the message is a request returns if the sender of the message requests to be notified when the receiver of the message is offline.
      void setCancelled​(boolean cancelled)
      When the message is a notification sets if the receiver of the message cancelled composing a reply.
      void setComposing​(boolean composing)
      When the message is a request sets if the sender of the message requests to be notified when the receiver is composing a reply.
      void setDelivered​(boolean delivered)
      When the message is a request sets if the sender of the message requests to be notified when the message is delivered.
      void setDisplayed​(boolean displayed)
      When the message is a request sets if the sender of the message requests to be notified when the message is displayed.
      void setOffline​(boolean offline)
      When the message is a request sets if the sender of the message requests to be notified when the receiver of the message is offline.
      void setStanzaId​(String packetID)
      Sets the unique ID of the message that requested to be notified of the event.
      String toXML​(XmlEnvironment enclosingNamespace)
      Returns the XML representation of a Message Event according the specification.
    • Method Detail

      • getElementName

        public String getElementName()
        Returns the XML element name of the extension sub-packet root element. Always returns "x"
        Specified by:
        getElementName in interface NamedElement
        Returns:
        the XML element name of the stanza extension.
      • getNamespace

        public String getNamespace()
        Returns the XML namespace of the extension sub-packet root element. According the specification the namespace is always "jabber:x:event"
        Specified by:
        getNamespace in interface XmlElement
        Returns:
        the XML namespace of the stanza extension.
      • isComposing

        public boolean isComposing()
        When the message is a request returns if the sender of the message requests to be notified when the receiver is composing a reply. When the message is a notification returns if the receiver of the message is composing a reply.
        Returns:
        true if the sender is requesting to be notified when composing or when notifying that the receiver of the message is composing a reply
      • isDelivered

        public boolean isDelivered()
        When the message is a request returns if the sender of the message requests to be notified when the message is delivered. When the message is a notification returns if the message was delivered or not.
        Returns:
        true if the sender is requesting to be notified when delivered or when notifying that the message was delivered
      • isDisplayed

        public boolean isDisplayed()
        When the message is a request returns if the sender of the message requests to be notified when the message is displayed. When the message is a notification returns if the message was displayed or not.
        Returns:
        true if the sender is requesting to be notified when displayed or when notifying that the message was displayed
      • isOffline

        public boolean isOffline()
        When the message is a request returns if the sender of the message requests to be notified when the receiver of the message is offline. When the message is a notification returns if the receiver of the message was offline.
        Returns:
        true if the sender is requesting to be notified when offline or when notifying that the receiver of the message is offline
      • isCancelled

        public boolean isCancelled()
        When the message is a notification returns if the receiver of the message cancelled composing a reply.
        Returns:
        true if the receiver of the message cancelled composing a reply
      • getStanzaId

        public String getStanzaId()
        Returns the unique ID of the message that requested to be notified of the event. The stanza id is not used when the message is a request for notifications
        Returns:
        the message id that requested to be notified of the event.
      • getEventTypes

        public List<StringgetEventTypes()
        Returns the types of events. The type of event could be: "offline", "composing","delivered","displayed", "offline"
        Returns:
        a List of all the types of events of the MessageEvent.
      • setComposing

        public void setComposing​(boolean composing)
        When the message is a request sets if the sender of the message requests to be notified when the receiver is composing a reply. When the message is a notification sets if the receiver of the message is composing a reply.
        Parameters:
        composing - sets if the sender is requesting to be notified when composing or when notifying that the receiver of the message is composing a reply
      • setDelivered

        public void setDelivered​(boolean delivered)
        When the message is a request sets if the sender of the message requests to be notified when the message is delivered. When the message is a notification sets if the message was delivered or not.
        Parameters:
        delivered - sets if the sender is requesting to be notified when delivered or when notifying that the message was delivered
      • setDisplayed

        public void setDisplayed​(boolean displayed)
        When the message is a request sets if the sender of the message requests to be notified when the message is displayed. When the message is a notification sets if the message was displayed or not.
        Parameters:
        displayed - sets if the sender is requesting to be notified when displayed or when notifying that the message was displayed
      • setOffline

        public void setOffline​(boolean offline)
        When the message is a request sets if the sender of the message requests to be notified when the receiver of the message is offline. When the message is a notification sets if the receiver of the message was offline.
        Parameters:
        offline - sets if the sender is requesting to be notified when offline or when notifying that the receiver of the message is offline
      • setCancelled

        public void setCancelled​(boolean cancelled)
        When the message is a notification sets if the receiver of the message cancelled composing a reply. The Cancelled event is never requested explicitly. It is requested implicitly when requesting to be notified of the Composing event.
        Parameters:
        cancelled - sets if the receiver of the message cancelled composing a reply
      • setStanzaId

        public void setStanzaId​(String packetID)
        Sets the unique ID of the message that requested to be notified of the event. The stanza id is not used when the message is a request for notifications
        Parameters:
        packetID - the message id that requested to be notified of the event.
      • isMessageEventRequest

        public boolean isMessageEventRequest()
        Returns true if this MessageEvent is a request for notifications. Returns false if this MessageEvent is a notification of an event.
        Returns:
        true if this message is a request for notifications.
      • toXML

        public String toXML​(XmlEnvironment enclosingNamespace)
        Returns the XML representation of a Message Event according the specification. Usually the XML representation will be inside of a Message XML representation like in the following examples:

        Request to be notified when displayed:

         <message
            to='romeo@montague.net/orchard'
            from='juliet@capulet.com/balcony'
            id='message22'>
         <x xmlns='jabber:x:event'>
           <displayed/>
         </x>
         </message>
         
        Notification of displayed:
         <message
            from='romeo@montague.net/orchard'
            to='juliet@capulet.com/balcony'>
         <x xmlns='jabber:x:event'>
           <displayed/>
           <id>message22</id>
         </x>
         </message>
         
        Specified by:
        toXML in interface Element