view artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSettings.java @ 359:f93edbfcf2bc

Improved the Settings and Section interfaces and added default implementations for both. artifacts/trunk@3416 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 14 Dec 2011 12:20:06 +0000
parents
children ab3900303f25
line wrap: on
line source
package de.intevation.artifactdatabase.state;

import java.util.ArrayList;
import java.util.List;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

import de.intevation.artifactdatabase.state.Section;
import de.intevation.artifactdatabase.state.Settings;


/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class DefaultSettings implements Settings {

    protected List<Section> sections;

    public DefaultSettings() {
        sections = new ArrayList<Section>();
    }

    @Override
    public void addSection(Section section) {
        if (section != null) {
            sections.add(section);
        }
    }

    @Override
    public int getSectionCount() {
        return sections.size();
    }

    @Override
    public Section getSection(int pos) {
        if (pos >= 0 && pos < getSectionCount()) {
            return sections.get(pos);
        }

        return null;
    }

    @Override
    public void removeSection(Section section) {
        if (section != null) {
            sections.remove(section);
        }
    }

    @Override
    public void toXML(Node parent) {
        Document owner    = parent.getOwnerDocument();
        Element  settings = owner.createElement("settings");

        parent.appendChild(settings);

        for (Section section: sections) {
            section.toXML(settings);
        }
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org