view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java @ 5645:696d710470f5

flys/issue1077: Show loads as step line, therefore transform data in SedimentLoadFacet to stretch as in the measurement stations bounds. Deal with this new kind of data in the Generator.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 10 Apr 2013 09:35:07 +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