Class XMLMemento

java.lang.Object
org.eclipse.ui.XMLMemento
All Implemented Interfaces:
IMemento

public final class XMLMemento extends Object implements IMemento
This class represents the default implementation of the IMemento interface.

This class is not intended to be extended by clients.

See Also:
  • Constructor Details

    • XMLMemento

      public XMLMemento(Document document, Element element)
      Creates a memento for the specified document and element.

      Clients should use createReadRoot and createWriteRoot to create the initial memento on a document.

      Parameters:
      document - the document for the memento
      element - the element node for the memento
  • Method Details

    • createReadRoot

      public static XMLMemento createReadRoot(Reader reader) throws WorkbenchException
      Creates a Document from the Reader and returns a memento on the first Element for reading the document.

      Same as calling createReadRoot(reader, null)

      Parameters:
      reader - the Reader used to create the memento's document
      Returns:
      a memento on the first Element for reading the document
      Throws:
      WorkbenchException - if IO problems, invalid format, or no element.
    • createReadRoot

      public static XMLMemento createReadRoot(Reader reader, String baseDir) throws WorkbenchException
      Creates a Document from the Reader and returns a memento on the first Element for reading the document.
      Parameters:
      reader - the Reader used to create the memento's document
      baseDir - the directory used to resolve relative file names in the XML document. This directory must exist and include the trailing separator. The directory format, including the separators, must be valid for the platform. Can be null if not needed.
      Returns:
      a memento on the first Element for reading the document
      Throws:
      WorkbenchException - if IO problems, invalid format, or no element.
    • createWriteRoot

      public static XMLMemento createWriteRoot(String type) throws DOMException
      Returns a root memento for writing a document.
      Parameters:
      type - the element node type to create on the document
      Returns:
      the root memento for writing a document
      Throws:
      DOMException - when the element could not be created for the passed type
    • createChild

      public IMemento createChild(String type) throws DOMException
      Creates a new child of this memento with the given type.

      The getChild and getChildren methods are used to retrieve children of a given type.

      Specified by:
      createChild in interface IMemento
      Parameters:
      type - the type
      Returns:
      a new child memento
      Throws:
      DOMException - if the child cannot be created
      See Also:
    • createChild

      public IMemento createChild(String type, String id) throws DOMException
      Creates a new child of this memento with the given type and id. The id is stored in the child memento (using a special reserved key, TAG_ID) and can be retrieved using getId.

      The getChild and getChildren methods are used to retrieve children of a given type.

      Specified by:
      createChild in interface IMemento
      Parameters:
      type - the type
      id - the child id
      Returns:
      a new child memento with the given type and id
      Throws:
      DOMException - if the child cannot be created
      See Also:
    • copyChild

      public IMemento copyChild(IMemento child) throws DOMException
      Create a copy of the child node and append it to this node.
      Parameters:
      child - the child to copy
      Returns:
      An IMenento for the new child node.
      Throws:
      DOMException - if the child cannot be created
    • getChild

      public IMemento getChild(String type)
      Description copied from interface: IMemento
      Returns the first child with the given type id.
      Specified by:
      getChild in interface IMemento
      Parameters:
      type - the type id
      Returns:
      the first child with the given type. May return null .
    • getChildren

      public IMemento[] getChildren()
      Description copied from interface: IMemento
      Returns all children of this node.
      Specified by:
      getChildren in interface IMemento
      Returns:
      an array of children of this node. This will not be null. If there are no children, an array of length zero will be returned.
    • getChildren

      public IMemento[] getChildren(String type)
      Description copied from interface: IMemento
      Returns all children with the given type id.
      Specified by:
      getChildren in interface IMemento
      Parameters:
      type - the type id
      Returns:
      an array of children with the given type. This will not be null. If there are no keys, an array of length zero will be returned.
    • getFloat

      public Float getFloat(String key)
      Description copied from interface: IMemento
      Returns the floating point value of the given key.
      Specified by:
      getFloat in interface IMemento
      Parameters:
      key - the key
      Returns:
      the value, or null if the key was not found or was found but was not a floating point number
    • getType

      public String getType()
      Description copied from interface: IMemento
      Returns the type for this memento.
      Specified by:
      getType in interface IMemento
      Returns:
      the memento type
      Since:
      3.4
      See Also:
    • getID

      public String getID()
      Description copied from interface: IMemento
      Returns the id for this memento.
      Specified by:
      getID in interface IMemento
      Returns:
      the memento id, or null if none
      See Also:
    • getInteger

      public Integer getInteger(String key)
      Description copied from interface: IMemento
      Returns the integer value of the given key.
      Specified by:
      getInteger in interface IMemento
      Parameters:
      key - the key
      Returns:
      the value, or null if the key was not found or was found but was not an integer
    • getString

      public String getString(String key)
      Description copied from interface: IMemento
      Returns the string value of the given key.
      Specified by:
      getString in interface IMemento
      Parameters:
      key - the key
      Returns:
      the value, or null if the key was not found
    • getBoolean

      public Boolean getBoolean(String key)
      Description copied from interface: IMemento
      Returns the boolean value of the given key.
      Specified by:
      getBoolean in interface IMemento
      Parameters:
      key - the key
      Returns:
      the value, or null if the key was not found
      Since:
      3.4
    • getTextData

      public String getTextData() throws DOMException
      Returns the data of the Text node of the memento. Each memento is allowed only one Text node.
      Specified by:
      getTextData in interface IMemento
      Returns:
      the data of the Text node of the memento, or null if the memento has no Text node.
      Throws:
      DOMException - if the text node is too big
      Since:
      2.0
    • getAttributeKeys

      public String[] getAttributeKeys()
      Description copied from interface: IMemento
      Returns an array of all the attribute keys of the memento. This will not be null. If there are no keys, an array of length zero will be returned.
      Specified by:
      getAttributeKeys in interface IMemento
      Returns:
      an array with all the attribute keys of the memento
      Since:
      3.4
    • putFloat

      public void putFloat(String key, float f) throws DOMException
      Sets the value of the given key to the given floating point number.
      Specified by:
      putFloat in interface IMemento
      Parameters:
      key - the key
      f - the value
      Throws:
      DOMException - if the attribute cannot be set
    • putInteger

      public void putInteger(String key, int n) throws DOMException
      Sets the value of the given key to the given integer.
      Specified by:
      putInteger in interface IMemento
      Parameters:
      key - the key
      n - the value
      Throws:
      DOMException - if the attribute cannot be set
    • putMemento

      public void putMemento(IMemento memento) throws DOMException
      Copy the attributes and children from memento to the receiver.
      Specified by:
      putMemento in interface IMemento
      Parameters:
      memento - the IMemento to be copied.
      Throws:
      DOMException - if the attributes or children cannot be copied to this node.
    • putString

      public void putString(String key, String value) throws DOMException
      Sets the value of the given key to the given string.
      Specified by:
      putString in interface IMemento
      Parameters:
      key - the key
      value - the value
      Throws:
      DOMException - if the attribute cannot be set
    • putBoolean

      public void putBoolean(String key, boolean value) throws DOMException
      Sets the value of the given key to the given boolean value.
      Specified by:
      putBoolean in interface IMemento
      Parameters:
      key - the key
      value - the value
      Throws:
      DOMException - if the attribute cannot be set
      Since:
      3.4
    • putTextData

      public void putTextData(String data) throws DOMException
      Sets the memento's Text node to contain the given data. Creates the Text node if none exists. If a Text node does exist, it's current contents are replaced. Each memento is allowed only one text node.
      Specified by:
      putTextData in interface IMemento
      Parameters:
      data - the data to be placed on the Text node
      Throws:
      DOMException - if the text node cannot be created under this node.
      Since:
      2.0
    • save

      public void save(Writer writer) throws IOException
      Saves this memento's document current values to the specified writer.
      Parameters:
      writer - the writer used to save the memento's document
      Throws:
      IOException - if there is a problem serializing the document to the stream.
    • toString

      public String toString()
      Overrides:
      toString in class Object