view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java @ 4241:49cb65d5932d

Improved the historical discharge calculation. The calculation now creates new HistoricalWQKms (new subclass of WQKms). Those WQKms are used to create new facets from (new) type 'HistoricalDischargeCurveFacet'. The chart generator is improved to support those facets.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 24 Oct 2012 14:34:35 +0200
parents 58bdf95df5e4
children
line wrap: on
line source
package de.intevation.flys.artifacts.model;

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

import de.intevation.artifacts.ArtifactNamespaceContext;


/**
 * Use an Element (DOM) to store the information about a facet.
 * The intent of this facet type is to represent a facet
 * stored in an Collection attribute. Different facets can have different
 * attributes that we need to parse, but the only thing ManagedFacets need
 * to do, is to adjust the attributes "active" and "position". So, those
 * values are set directly on the Element, the other attributes aren't
 * touched.
 */
public class ManagedDomFacet extends ManagedFacet {

    protected Element facet;

    public ManagedDomFacet(Element facet) {
        super(null, -1, null, null, -1, -1, -1);

        this.facet = facet;
    }


    @Override
    public int getIndex() {
        if (this.index < 0) {
            String index = facet.getAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI, "index");

            if (index != null && index.length() > 0) {
                this.index = Integer.parseInt(index);
            }
        }

        return this.index;
    }


    @Override
    public String getName() {
        if (this.name == null || this.name.length() == 0) {
            String name = facet.getAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI, "facet");

            this.name = name;
        }

        return this.name;
    }


    @Override
    public String getDescription() {
        if (this.description == null || this.description.length() == 0) {
            String description = facet.getAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI, "description");

            this.description = description;
        }

        return this.description;
    }


    @Override
    public int getPosition() {
        if (this.position < 0) {
            String position = facet.getAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI,
                "pos");

            if (position != null && position.length() > 0) {
                this.position = Integer.parseInt(position);
            }
        }

        return this.position;
    }


    @Override
    public void setPosition(int position) {
        this.position = position;

        // TODO Evaluate whether other set/getAttributes also need
        // to use the NAMESPACE_PREFIX.
        facet.setAttributeNS(
            ArtifactNamespaceContext.NAMESPACE_URI,
            ArtifactNamespaceContext.NAMESPACE_PREFIX + ":" + "pos",
            String.valueOf(position));
    }


    @Override
    public int getActive() {
        if (this.active < 0) {
            String active = facet.getAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI, "active");

            if (active != null && active.length() > 0) {
                this.active = Integer.parseInt(active);
            }
        }

        return this.active;
    }


    @Override
    public void setActive(int active) {
        this.active = active;

        facet.setAttributeNS(
            ArtifactNamespaceContext.NAMESPACE_URI,
            "art:active",
            String.valueOf(active));
    }


    @Override
    public int getVisible() {
        if (this.visible < 0) {
            String visible = facet.getAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI, "visible");

            if (visible != null && visible.length() > 0) {
                this.visible = Integer.parseInt(visible);
            }
        }

        return this.visible;
    }


    @Override
    public void setVisible(int visible) {
        this.visible = visible;

        facet.setAttributeNS(
            ArtifactNamespaceContext.NAMESPACE_URI,
            "visible",
            String.valueOf(getVisible()));
    }


    @Override
    public String getArtifact() {
        if (this.uuid == null || this.uuid.length() == 0) {
            String uuid = facet.getAttributeNS(
                ArtifactNamespaceContext.NAMESPACE_URI, "artifact");

            this.uuid = uuid;
        }

        return this.uuid;
    }


    /**
     * Import into document.
     * @param doc Document to be imported to.
     */
    @Override
    public Node toXML(Document doc) {
        return doc.importNode(facet, true);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org