annotate 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
rev   line source
5307
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.model.map;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import org.geotools.feature.simple.SimpleFeatureBuilder;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 import org.opengis.feature.simple.SimpleFeature;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 import org.opengis.feature.simple.SimpleFeatureType;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 import com.vividsolutions.jts.geom.Geometry;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 import de.intevation.flys.artifacts.model.NamedObjectImpl;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import de.intevation.flys.utils.GeometryUtils;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13 public class HWS
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 extends NamedObjectImpl
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 public enum TYPE {LINE, POINT};
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 private Geometry geom;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 private String id;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 private int kind;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 private int official;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 private String fedState;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 private String description;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 private TYPE type;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 public HWS() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 this.geom = null;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 // TODO Auto-generated constructor stub
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 public HWS(String name) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 super(name);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 this.geom = null;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 public HWS(
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 String name,
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39 Geometry geom,
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 String id,
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 int kind,
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 int official,
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 String fedState,
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 String description,
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 TYPE type
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 ) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 super(name);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 this.geom = geom;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 this.id = id;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 this.kind = kind;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 this.official = official;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 this.fedState = fedState;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 this.description = description;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 this.type = type;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 public Geometry getGeom() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 return geom;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 public void setGeom(Geometry geom) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 this.geom = geom;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 public String getId() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 return id;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 public void setId(String id) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 this.id = id;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 public int getKind() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 return kind;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 public void setKind(int kind) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 this.kind = kind;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 public boolean isOfficial() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 return official == 1;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 public void setOfficial(boolean o) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 this.official = o ? 1 : 0;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 public String getFedState() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 return fedState;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
91 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 public void setFedState(String fedState) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
94 this.fedState = fedState;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
96
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
97 public String getDescription() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
98 return description;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
99 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
100
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
101 public void setDescription(String description) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
102 this.description = description;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
103 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
104
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
105 public TYPE getType() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
106 return type;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
107 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
108
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
109 public void setType(TYPE type) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
110 this.type = type;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
111 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
112
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
113 public SimpleFeatureType getFeatureType() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
114 int srid = this.geom.getSRID();
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
115 String srs = "EPSG:" + srid;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
116
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
117 Object[][] attrs = new Object[5][];
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
118 attrs[0] = new Object[] { "name", String.class };
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
119 attrs[1] = new Object[] { "description", String.class };
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 attrs[2] = new Object[] { "TYP", String.class };
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
121 attrs[3] = new Object[] { "fed_state", String.class };
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
122 attrs[4] = new Object[] { "official", Integer.class };
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
123 SimpleFeatureType ft =
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
124 GeometryUtils.buildFeatureType(
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
125 "hws", srs, this.geom.getClass(), attrs);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
126 return ft;
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
127 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
128
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
129 public SimpleFeature getFeature() {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
130 SimpleFeatureType ft = getFeatureType();
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
132 SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(ft);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
133 featureBuilder.add(this.geom);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 featureBuilder.add(this.name);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 featureBuilder.add(this.description);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
136 if (this.kind == 1) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
137 featureBuilder.add("Rohr 1");
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
138 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
139 else if (this.kind == 2) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
140 featureBuilder.add("Damm");
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
141 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
142 else if (this.kind == 3) {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
143 featureBuilder.add("Graben");
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
144 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
145 else {
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
146 featureBuilder.add("");
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
147 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
148 featureBuilder.add(this.fedState);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
149 featureBuilder.add(this.official);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
150
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
151 return featureBuilder.buildFeature(null);
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
152 }
6131b352e5e4 Data structure and factory for hws.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
153 }

http://dive4elements.wald.intevation.org