Package uk.ac.starlink.util

# Interface XMLEncodeDecode

All Known Implementing Classes:
  `PrimitiveXMLEncodeDecode`

public interface XMLEncodeDecode
Interface for objects that can encode and decode their internal configuration within the content of an `Element`.

Once encoded into an Element such objects can be represented as simple XML and either transmitted and re-created in some other process, or stored permanently in a file.

For an abstract base class that implements lots of useful functions that support this interface see `PrimitiveXMLEncodeDecode` and for one that also supports awt primitives (Fonts and Colors) see `uk.ac.starlink.ast.gui.AbstractPlotControlsModel`.

Since:
  $Date$, 26-JUL-2001
Version:
  $Id$
Author:
  Peter W. Draper

## Method Summary

Modifier and Type
Method
Description
`void`
`decode(Element rootElement)`
Decode (ie, restore) the internal state of this object from an Element.
`void`
`encode(Element rootElement)`
Encode the internal state of this object so that it is rooted in the given Element.
`String`
`getTagName()`
Return a name for the Element that will be the parent of any contents that can be encoded and decoded (ie, name of rootElement);

## Method Details

### encode

void encode(Element rootElement)
Encode the internal state of this object so that it is rooted in the given Element.

Parameters:
  `rootElement` - the Element within which the object should store its configuration.

### decode

void decode(Element rootElement)
Decode (ie, restore) the internal state of this object from an Element.

Parameters:
  `rootElement` - the element to which a previous object this this type has attached its configuration.

### getTagName

String getTagName()
Return a name for the Element that will be the parent of any contents that can be encoded and decoded (ie, name of rootElement);

Returns:
  the name of the root element.