view flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/map/WMSLayerFacet.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/map/WMSLayerFacet.java@9fac337192c9
children
line wrap: on
line source
package org.dive4elements.river.artifacts.model.map;

import com.vividsolutions.jts.geom.Envelope;

import org.dive4elements.artifactdatabase.state.DefaultFacet;
import org.dive4elements.artifactdatabase.state.Facet;
import org.dive4elements.artifacts.Artifact;
import org.dive4elements.artifacts.ArtifactNamespaceContext;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
import org.dive4elements.river.utils.GeometryUtils;

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

import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;


public class WMSLayerFacet
extends      DefaultFacet
{
    protected ComputeType  type;
    protected List<String> layers;
    protected String       stateId;
    protected String       hash;
    protected String       url;
    protected Envelope     extent;
    protected Envelope     originalExtent;
    protected String       srid;


    private static final Logger logger = Logger.getLogger(WMSLayerFacet.class);

    public WMSLayerFacet() {
    }


    public WMSLayerFacet(int index, String name, String description) {
        this(index, name, description, ComputeType.FEED, null, null);
    }


    public WMSLayerFacet(
        int         index,
        String      name,
        String      description,
        ComputeType type,
        String      stateId,
        String      hash

    ) {
        super(index, name, description);
        this.layers  = new ArrayList<String>();
        this.type    = type;
        this.stateId = stateId;
        this.hash    = hash;
    }


    public WMSLayerFacet(
        int         index,
        String      name,
        String      description,
        ComputeType type,
        String      stateId,
        String      hash,
        String      url
    ) {
        this(index, name, description, type, stateId, hash);
        this.url = url;
    }


    public void addLayer(String name) {
        if (name != null && name.length() > 0) {
            layers.add(name);
        }
    }


    public List<String> getLayers() {
        return layers;
    }


    public void removeLayer(String layer) {
        if (layers != null) {
            layers.remove(layer);
        }
    }


    public void setExtent(Envelope extent) {
        if (extent != null) {
            this.extent = extent;
        }
        else {
            logger.debug("setExtent(): extent is null");
        }
    }


    public Envelope getExtent() {
        return extent;
    }


    public void setOriginalExtent(Envelope originalExtent) {
        this.originalExtent = originalExtent;
    }


    public Envelope getOriginalExtent() {
        return originalExtent;
    }


    public void setSrid(String srid) {
        if (srid != null) {
            this.srid = srid;
        }
    }


    public String getSrid() {
        return srid;
    }


    @Override
    public Object getData(Artifact artifact, CallContext context) {
        return null;
    }


    @Override
    public Node toXML(Document doc) {
        ElementCreator ec = new ElementCreator(
            doc,
            ArtifactNamespaceContext.NAMESPACE_URI,
            ArtifactNamespaceContext.NAMESPACE_PREFIX);

        Element facet = ec.create("facet");
        ec.addAttr(facet, "description", description, true);
        ec.addAttr(facet, "index", String.valueOf(index), true);
        ec.addAttr(facet, "name", name, true);
        ec.addAttr(facet, "url", url, true);
        ec.addAttr(facet, "layers", layers.get(0), true);
        ec.addAttr(facet, "srid", srid != null ? srid : "", true);
        ec.addAttr(facet, "extent", originalExtent != null
            ? GeometryUtils.jtsBoundsToOLBounds(originalExtent)
            : "", true);
        ec.addAttr(facet, "queryable", String.valueOf(isQueryable()), true);

        return facet;
    }


    public boolean isQueryable() {
        return false;
    }


    @Override
    public Facet deepCopy() {
        WMSLayerFacet copy = new WMSLayerFacet();
        copy.set(this);

        copy.type    = type;
        copy.layers  = new ArrayList<String>(layers);
        copy.stateId = stateId;
        copy.hash    = hash;
        copy.url     = url;
        copy.extent  = extent;
        copy.srid    = srid;

        return copy;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org