uk.ac.starlink.util

## Class PrimitiveXMLEncodeDecode

- java.lang.Object
- - uk.ac.starlink.util.PrimitiveXMLEncodeDecode

- All Implemented Interfaces:
    XMLEncodeDecode

      public abstract class PrimitiveXMLEncodeDecode
      extends java.lang.Object
      implements XMLEncodeDecode

  An abstract base-class for objects that want to encode and decode themselves from an XML stream.

  It contains the `XMLEncodeDecode` interface (with an unimplemented encode() method) and a number of support methods for encoding and decoding primitive values.

  This implementation also provides default implementations of `ChangeListener` methods that allow an extending class to provide services for registering, responding and issuing `ChangeEvent`s.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected javax.swing.event.EventListenerList` | `listeners`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrimitiveXMLEncodeDecode()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static org.w3c.dom.CDATASection` | `addCDATASection(org.w3c.dom.Element rootElement, java.lang.String value)` Create a new CDATA section with the given content and add it as a child of a given element.
    `void` | `addChangeListener(javax.swing.event.ChangeListener l)` Registers a listener who wants to be informed about changes.
    `static org.w3c.dom.Element` | `addChildElement(org.w3c.dom.Element rootElement, java.lang.String name)` Create a child element with no content and add it to the given element.
    `static org.w3c.dom.Element` | `addChildElement(org.w3c.dom.Element rootElement, java.lang.String name, boolean value)` Add an element with boolean value as a child of another element.
    `static org.w3c.dom.Element` | `addChildElement(org.w3c.dom.Element rootElement, java.lang.String name, double value)` Add an element with double value as a child of another element.
    `static org.w3c.dom.Element` | `addChildElement(org.w3c.dom.Element rootElement, java.lang.String name, int value)` Add an element with integer value as a child of another element.
    `static org.w3c.dom.Element` | `addChildElement(org.w3c.dom.Element rootElement, java.lang.String name, java.lang.String value)` Add an element with String value as a child of another element.
    `static boolean` | `booleanFromString(java.lang.String value)` Convert a String back to a boolean.
    `static java.lang.String` | `booleanToString(boolean value)` Convert a boolean to a String.
    `void` | `decode(org.w3c.dom.Element rootElement)` Decode (ie, restore) the internal state of this object from an Element.
    `static double` | `doubleFromString(java.lang.String value)` Convert a String back to a double.
    `static java.lang.String` | `doubleToString(double value)` Convert a double to a String.
    `abstract void` | `encode(org.w3c.dom.Element rootElement)` Encode the internal state of this object so that it is rooted in the given Element.
    `protected void` | `fireChanged()` Send ChangeEvent event to all listeners.
    `static java.util.List<org.w3c.dom.Element>` | `getChildElements(org.w3c.dom.Element element)` Return all the Elements that are children of another Element.
    `static org.w3c.dom.NodeList` | `getChildren(org.w3c.dom.Element rootElement)` Return a List of all children.
    `static java.lang.String` | `getElementName(org.w3c.dom.Element element)` Get the name of an element.
    `static java.lang.String` | `getElementValue(org.w3c.dom.Element element)` Get the "value" of an element (really the content).
    `static int` | `intFromString(java.lang.String value)` Convert a String back to an integer.
    `static java.lang.String` | `intToString(int value)` Convert an integer to a String.
    `static long` | `longFromString(java.lang.String value)` Convert a String back to a long.
    `static java.lang.String` | `longToString(long value)` Convert a long to a String.
    `void` | `removeChangeListener(javax.swing.event.ChangeListener l)` De-registers a listener for changes.
    `abstract void` | `setFromString(java.lang.String name, java.lang.String value)` Set the value of a object field using string representation of the field name and its value.

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

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

    - ### Methods inherited from interface uk.ac.starlink.util.XMLEncodeDecode

      `getTagName`

- - ### Field Detail

    - #### listeners

          protected javax.swing.event.EventListenerList listeners

  - ### Constructor Detail

    - #### PrimitiveXMLEncodeDecode

          public PrimitiveXMLEncodeDecode()

  - ### Method Detail

    - #### addChangeListener

          public void addChangeListener(javax.swing.event.ChangeListener l)

      Registers a listener who wants to be informed about changes.
      Parameters:
        `l` - the ChangeListener listener.

    - #### removeChangeListener

          public void removeChangeListener(javax.swing.event.ChangeListener l)

      De-registers a listener for changes.
      Parameters:
        `l` - the ChangeListener listener.

    - #### fireChanged

          protected void fireChanged()

      Send ChangeEvent event to all listeners.

    - #### encode

          public abstract void encode(org.w3c.dom.Element rootElement)

      Description copied from interface: `XMLEncodeDecode`
      Encode the internal state of this object so that it is rooted in the given Element.
      Specified by:
        `encode` in interface `XMLEncodeDecode`
      Parameters:
        `rootElement` - the Element within which the object should store its configuration.

    - #### decode

          public void decode(org.w3c.dom.Element rootElement)

      Description copied from interface: `XMLEncodeDecode`
      Decode (ie, restore) the internal state of this object from an Element.
      Specified by:
        `decode` in interface `XMLEncodeDecode`
      Parameters:
        `rootElement` - the element to which a previous object this this type has attached its configuration.

    - #### getChildElements

          public static java.util.List<org.w3c.dom.Element> getChildElements(org.w3c.dom.Element element)

      Return all the Elements that are children of another Element.

    - #### setFromString

          public abstract void setFromString(java.lang.String name,
                                             java.lang.String value)

      Set the value of a object field using string representation of the field name and its value. Users of the default decode implementation must re-implement this method.

    - #### addChildElement

          public static org.w3c.dom.Element addChildElement(org.w3c.dom.Element rootElement,
                                                            java.lang.String name)

      Create a child element with no content and add it to the given element.

    - #### addCDATASection

          public static org.w3c.dom.CDATASection addCDATASection(org.w3c.dom.Element rootElement,
                                                                 java.lang.String value)

      Create a new CDATA section with the given content and add it as a child of a given element.

    - #### addChildElement

          public static org.w3c.dom.Element addChildElement(org.w3c.dom.Element rootElement,
                                                            java.lang.String name,
                                                            java.lang.String value)

      Add an element with String value as a child of another element. The String is stored as CDATA.

    - #### addChildElement

          public static org.w3c.dom.Element addChildElement(org.w3c.dom.Element rootElement,
                                                            java.lang.String name,
                                                            boolean value)

      Add an element with boolean value as a child of another element.

    - #### addChildElement

          public static org.w3c.dom.Element addChildElement(org.w3c.dom.Element rootElement,
                                                            java.lang.String name,
                                                            int value)

      Add an element with integer value as a child of another element.

    - #### addChildElement

          public static org.w3c.dom.Element addChildElement(org.w3c.dom.Element rootElement,
                                                            java.lang.String name,
                                                            double value)

      Add an element with double value as a child of another element.

    - #### getChildren

          public static org.w3c.dom.NodeList getChildren(org.w3c.dom.Element rootElement)

      Return a List of all children. Use the NodeList interface to step through these.

    - #### getElementName

          public static java.lang.String getElementName(org.w3c.dom.Element element)

      Get the name of an element.

    - #### getElementValue

          public static java.lang.String getElementValue(org.w3c.dom.Element element)

      Get the "value" of an element (really the content).

    - #### doubleToString

          public static java.lang.String doubleToString(double value)

      Convert a double to a String.

    - #### doubleFromString

          public static double doubleFromString(java.lang.String value)

      Convert a String back to a double.

    - #### booleanToString

          public static java.lang.String booleanToString(boolean value)

      Convert a boolean to a String.

    - #### booleanFromString

          public static boolean booleanFromString(java.lang.String value)

      Convert a String back to a boolean.

    - #### intToString

          public static java.lang.String intToString(int value)

      Convert an integer to a String.

    - #### intFromString

          public static int intFromString(java.lang.String value)

      Convert a String back to an integer.

    - #### longToString

          public static java.lang.String longToString(long value)

      Convert a long to a String.

    - #### longFromString

          public static long longFromString(java.lang.String value)

      Convert a String back to a long.