ingo@358: package de.intevation.artifactdatabase.state;
ingo@358:
ingo@358: import java.io.Serializable;
ingo@358:
ingo@358: import org.w3c.dom.Node;
ingo@358:
ingo@358:
ingo@358: /**
ingo@358: * @author Ingo Weinzierl
ingo@358: */
ingo@358: public interface Settings extends Serializable {
ingo@358:
ingo@358: /**
ingo@358: * Adds a new Section to this Settings object.
ingo@358: *
ingo@358: * @param section the new Section.
ingo@358: */
ingo@358: void addSection(Section section);
ingo@358:
ingo@358: /**
ingo@358: * Returns the number of Sections in this Settings object.
ingo@358: *
ingo@358: * @return the number of sections.
ingo@358: */
ingo@358: int getSectionCount();
ingo@358:
ingo@358: /**
ingo@358: * Returns the section at position pos.
ingo@358: *
ingo@358: * @param pos the position of the target Section.
ingo@358: *
ingo@358: * @return the Section at position pos or null if no Section is
ingo@358: * existing at pos.
ingo@358: */
ingo@358: Section getSection(int pos);
ingo@358:
ingo@358: /**
ingo@359: * Removes a Section if it is existing in this Settings.
ingo@359: *
ingo@359: * @param section The section that should be removed.
ingo@359: */
ingo@359: void removeSection(Section section);
ingo@359:
ingo@359: /**
ingo@358: * Transforms this Settings object into a XML representation. Therefore,
ingo@358: * each Section object's toXML method is called to append its XML
ingo@358: * representation to the final document.
ingo@358: *
ingo@358: * @param parent The parent node.
ingo@358: */
ingo@358: void toXML(Node parent);
ingo@358: }
ingo@358: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :