Package madkit.message

# Class XMLMessage

java.lang.Object
madkit.kernel.Message
madkit.message.XMLMessage

All Implemented Interfaces:
  `Serializable`, `Cloneable`

public class XMLMessage extends Message
A message that carries an XML document. You can set the document either through a string or a pre-parsed DOM tree. This class is optimized in the sense that it will change representations only if needed (i.e. constructed with a String and used through the getDocument() accessor).

Since:
  MaDKit 1.0
Version:
  5.0
Author:
  Oliver Gutknecht, Jacques Ferber, Fabien Michel
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Document`
  `docContent`
  The xml content as a Document (null if the content is defined as a string)
  `protected String`
  `strcontent`
  The xml content as a String (null if the content is defined as a Document)

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XMLMessage(String s)`
  Setup an XMLMessage with the xml document setup as a string.
  `XMLMessage(Document d)`
  Setup an XMLMessage with the xml document setup as a Document

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Document`
  `getDocument()`
  Returns the XMLMessage content as a document.
  `String`
  `getString()`
  Returns the XMLMessage content as a string.
  `String`
  `toString()`
  This method returns a string for the XML document set in this message.

  ### Methods inherited from class madkit.kernel.Message

  `clone, getConversationID, getReceiver, getSender`

  ### Methods inherited from class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### docContent

    protected Document docContent
    The xml content as a Document (null if the content is defined as a string)

  - ### strcontent

    protected String strcontent
    The xml content as a String (null if the content is defined as a Document)

- ## Constructor Details

  - ### XMLMessage

    public XMLMessage(String s)
    Setup an XMLMessage with the xml document setup as a string. The string is not validated at construction
    Parameters:
      `s` - A valid (i.e. parseable) text XML document

  - ### XMLMessage

    public XMLMessage(Document d)
    Setup an XMLMessage with the xml document setup as a Document
    Parameters:
      `d` - A well-formed DOM object

- ## Method Details

  - ### getString

    public String getString()
    Returns the XMLMessage content as a string. If the String constructor was called, this accessor just returns the initial string. If the Document constructor was used, it transforms it to a String using JDOM
    Returns:
      A stringified version of the message content

  - ### getDocument

    public Document getDocument()
    Returns the XMLMessage content as a document. If the Document constructor was called, this accessor just returns the initial document. If the String constructor was used, it uses JDOM to parse it into a DOM tree.
    Returns:
      A DOM object for the message content

  - ### toString

    public String toString()
    This method returns a string for the XML document set in this message. Warning, if the document is directly stored as a Document and not a string, this will just call the toString() method on the Document object.
    Overrides:
      `toString` in class `Message`
    Returns:
      A stringified version of the document