Class Message

  • Direct Known Subclasses:
    Invitation

    @NotThreadSafe
    public class Message
    extends Packet
    Message packet.

    A message can have one of several Types. For each message type, different message fields are typically used as follows:

     Message type
    FieldNormalChatGroup ChatHeadlineError
    subject SHOULDSHOULD NOTSHOULD NOTSHOULD NOTSHOULD NOT
    thread OPTIONALSHOULDOPTIONALOPTIONALSHOULD NOT
    body SHOULDSHOULDSHOULDSHOULDSHOULD NOT
    error MUST NOTMUST NOTMUST NOTMUST NOTMUST
    • Constructor Detail

      • Message

        public Message()
        Constructs a new Message.
      • Message

        public Message​(org.dom4j.Element element)
        Constructs a new Message using an existing Element. This is useful for parsing incoming message Elements into Message objects.
        Parameters:
        element - the message Element.
      • Message

        public Message​(org.dom4j.Element element,
                       boolean skipValidation)
        Constructs a new Message using an existing Element. This is useful for parsing incoming message Elements into Message objects. Stringprep validation on the TO address can be disabled. The FROM address will not be validated since the server is the one that sets that value.
        Parameters:
        element - the message Element.
        skipValidation - true if stringprep should not be applied to the TO address.
    • Method Detail

      • getType

        public Message.Type getType()
        Returns the type of this message
        Returns:
        the message type.
        See Also:
        Message.Type
      • setType

        public void setType​(Message.Type type)
        Sets the type of this message.
        Parameters:
        type - the message type.
        See Also:
        Message.Type
      • getSubject

        public String getSubject()
        Returns the subject of this message or null if there is no subject..
        Returns:
        the subject.
      • setSubject

        public void setSubject​(String subject)
        Sets the subject of this message.
        Parameters:
        subject - the subject.
      • getBody

        public String getBody()
        Returns the body of this message or null if there is no body.
        Returns:
        the body.
      • setBody

        public void setBody​(String body)
        Sets the body of this message.
        Parameters:
        body - the body.
      • getThread

        public String getThread()
        Returns the thread value of this message, an identifier that is used for tracking a conversation thread ("instant messaging session") between two entities. If the thread is not set, null will be returned.
        Returns:
        the thread value.
      • setThread

        public void setThread​(String thread)
        Sets the thread value of this message, an identifier that is used for tracking a conversation thread ("instant messaging session") between two entities.
        Parameters:
        thread - thread value.
      • getChildElement

        public org.dom4j.Element getChildElement​(String name,
                                                 String namespace)
        Returns the first child element of this packet that matches the given name and namespace. If no matching element is found, null will be returned. This is a convenience method to avoid manipulating this underlying packet's Element instance directly.

        Child elements in extended namespaces are used to extend the features of XMPP. Examples include a "user is typing" indicator and invitations to group chat rooms. Although any valid XML can be included in a child element in an extended namespace, many common features have been standardized as XMPP Extension Protocols (XEPs).

        Parameters:
        name - the element name.
        namespace - the element namespace.
        Returns:
        the first matching child element, or null if there is no matching child element.
      • addChildElement

        public org.dom4j.Element addChildElement​(String name,
                                                 String namespace)
        Adds a new child element to this packet with the given name and namespace. The newly created Element is returned. This is a convenience method to avoid manipulating this underlying packet's Element instance directly.

        Child elements in extended namespaces are used to extend the features of XMPP. Examples include a "user is typing" indicator and invitations to group chat rooms. Although any valid XML can be included in a child element in an extended namespace, many common features have been standardized as XMPP Extension Protocols (XEPs).

        Parameters:
        name - the element name.
        namespace - the element namespace.
        Returns:
        the newly created child element.
      • createCopy

        public Message createCopy()
        Returns a deep copy of this Message.
        Specified by:
        createCopy in class Packet
        Returns:
        a deep copy of this Message.