Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/map/HWS.java @ 5307:6131b352e5e4
Data structure and factory for hws.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 14 Mar 2013 17:13:49 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/map/HWS.java Thu Mar 14 17:13:49 2013 +0100 @@ -0,0 +1,153 @@ +package de.intevation.flys.artifacts.model.map; + +import org.geotools.feature.simple.SimpleFeatureBuilder; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; + +import com.vividsolutions.jts.geom.Geometry; + +import de.intevation.flys.artifacts.model.NamedObjectImpl; +import de.intevation.flys.utils.GeometryUtils; + + +public class HWS +extends NamedObjectImpl +{ + + public enum TYPE {LINE, POINT}; + + private Geometry geom; + private String id; + private int kind; + private int official; + private String fedState; + private String description; + private TYPE type; + + public HWS() { + this.geom = null; + // TODO Auto-generated constructor stub + } + + public HWS(String name) { + super(name); + this.geom = null; + } + + public HWS( + String name, + Geometry geom, + String id, + int kind, + int official, + String fedState, + String description, + TYPE type + ) { + super(name); + this.geom = geom; + this.id = id; + this.kind = kind; + this.official = official; + this.fedState = fedState; + this.description = description; + this.type = type; + } + + public Geometry getGeom() { + return geom; + } + + public void setGeom(Geometry geom) { + this.geom = geom; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getKind() { + return kind; + } + + public void setKind(int kind) { + this.kind = kind; + } + + public boolean isOfficial() { + return official == 1; + } + + public void setOfficial(boolean o) { + this.official = o ? 1 : 0; + } + + public String getFedState() { + return fedState; + } + + public void setFedState(String fedState) { + this.fedState = fedState; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public TYPE getType() { + return type; + } + + public void setType(TYPE type) { + this.type = type; + } + + public SimpleFeatureType getFeatureType() { + int srid = this.geom.getSRID(); + String srs = "EPSG:" + srid; + + Object[][] attrs = new Object[5][]; + attrs[0] = new Object[] { "name", String.class }; + attrs[1] = new Object[] { "description", String.class }; + attrs[2] = new Object[] { "TYP", String.class }; + attrs[3] = new Object[] { "fed_state", String.class }; + attrs[4] = new Object[] { "official", Integer.class }; + SimpleFeatureType ft = + GeometryUtils.buildFeatureType( + "hws", srs, this.geom.getClass(), attrs); + return ft; + } + + public SimpleFeature getFeature() { + SimpleFeatureType ft = getFeatureType(); + + SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(ft); + featureBuilder.add(this.geom); + featureBuilder.add(this.name); + featureBuilder.add(this.description); + if (this.kind == 1) { + featureBuilder.add("Rohr 1"); + } + else if (this.kind == 2) { + featureBuilder.add("Damm"); + } + else if (this.kind == 3) { + featureBuilder.add("Graben"); + } + else { + featureBuilder.add(""); + } + featureBuilder.add(this.fedState); + featureBuilder.add(this.official); + + return featureBuilder.buildFeature(null); + } +}