comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/RiverAxisArtifact.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/RiverAxisArtifact.java@ae60bb7b8085
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.artifacts;
2
3 import com.vividsolutions.jts.geom.Envelope;
4 import com.vividsolutions.jts.geom.Geometry;
5
6 import org.dive4elements.artifactdatabase.state.DefaultOutput;
7 import org.dive4elements.artifactdatabase.state.Facet;
8 import org.dive4elements.artifactdatabase.state.State;
9 import org.dive4elements.artifacts.ArtifactFactory;
10 import org.dive4elements.artifacts.CallMeta;
11 import org.dive4elements.river.artifacts.model.FacetTypes;
12 import org.dive4elements.river.artifacts.model.RiverFactory;
13 import org.dive4elements.river.model.River;
14 import org.dive4elements.river.model.RiverAxis;
15 import org.dive4elements.river.utils.FLYSUtils;
16 import org.dive4elements.river.utils.GeometryUtils;
17
18 import java.util.List;
19
20 import org.apache.log4j.Logger;
21 import org.w3c.dom.Document;
22
23 @Deprecated
24 public class RiverAxisArtifact extends WMSDBArtifact {
25
26 public static final String NAME = "riveraxis";
27
28
29 private static final Logger logger =
30 Logger.getLogger(RiverAxisArtifact.class);
31
32
33 @Override
34 public void setup(
35 String identifier,
36 ArtifactFactory factory,
37 Object context,
38 CallMeta callMeta,
39 Document data)
40 {
41 logger.debug("RiverAxisArtifact.setup");
42
43 super.setup(identifier, factory, context, callMeta, data);
44 }
45
46
47 @Override
48 public String getName() {
49 return NAME;
50 }
51
52
53 @Override
54 public State getCurrentState(Object cc) {
55 State s = new RiverAxisState(this);
56
57 List<Facet> fs = getFacets(getCurrentStateId());
58
59 DefaultOutput o = new DefaultOutput(
60 "floodmap",
61 "floodmap",
62 "image/png",
63 fs,
64 "map");
65
66 s.getOutputs().add(o);
67
68 return s;
69 }
70
71
72 public static class RiverAxisState extends WMSDBState implements FacetTypes
73 {
74 private static final Logger logger =
75 Logger.getLogger(RiverAxisState.class);
76
77 protected Geometry geom;
78 protected int riverId;
79
80 public RiverAxisState(){}
81
82 public RiverAxisState(FLYSArtifact artifact) {
83 super(artifact);
84 }
85
86 @Override
87 protected String getFacetType() {
88 return FLOODMAP_RIVERAXIS;
89 }
90
91 @Override
92 protected String getLayer() {
93 return RiverFactory.getRiver(getRiverId()).getName();
94 }
95
96 @Override
97 protected String getUrl() {
98 return FLYSUtils.getRiverWMSUrl();
99 }
100
101 @Override
102 protected String getSrid() {
103 River river = RiverFactory.getRiver(getRiverId());
104 return FLYSUtils.getRiverSrid(river.getName());
105 }
106
107 @Override
108 protected Envelope getExtent(boolean reproject) {
109 River river = RiverFactory.getRiver(getRiverId());
110 List<RiverAxis> axes;
111
112 String kind = getIdPart(2);
113
114 if (kind != null && kind.equals("1")) {
115 axes = RiverAxis.getRiverAxis(river.getName(),
116 Integer.parseInt(kind));
117 } else if (kind != null) {
118 axes = RiverAxis.getRiverAxis(river.getName(),
119 getName(), Integer.parseInt(kind));
120 } else {
121 if (reproject) {
122 logger.debug("Query extent for RiverAxis with Srid: " + getSrid());
123 return GeometryUtils.transform(
124 GeometryUtils.getRiverBoundary(river.getName()),
125 getSrid());
126 } else {
127 return GeometryUtils.transform(
128 GeometryUtils.getRiverBoundary(river.getName()),
129 "31467");
130 }
131 }
132
133 Envelope max = null;
134
135 for (RiverAxis ax: axes) {
136 Envelope env = ax.getGeom().getEnvelopeInternal();
137
138 if (max == null) {
139 max = env;
140 continue;
141 }
142
143 max.expandToInclude(env);
144 }
145
146 return max != null && reproject
147 ? GeometryUtils.transform(max, getSrid())
148 : max;
149 }
150
151 @Override
152 protected String getFilter() {
153 String kind = getIdPart(2);
154 if (kind != null && kind.equals("1")) {
155 return "river_id=" + String.valueOf(getRiverId()) +
156 " AND kind_id=" + kind;
157 } else if (kind != null) {
158 return "river_id=" + String.valueOf(getRiverId()) +
159 " AND kind_id=" + kind +
160 " AND name='" + getName() + "'";
161 } else if (getIdPart(1) != null) {
162 return "river_id=" + String.valueOf(getRiverId()) +
163 " AND name='" + getName() + "'";
164 }
165 return "river_id=" + String.valueOf(getRiverId()) +
166 " AND kind_id=" + kind;
167 }
168
169 @Override
170 protected String getDataString() {
171 if (FLYSUtils.isUsingOracle()) {
172 return "geom FROM river_axes USING SRID " + getSrid();
173 }
174 else {
175 return "geom FROM river_axes USING UNIQUE id";
176 }
177 }
178
179 @Override
180 protected String getGeometryType() {
181 return "LINE";
182 }
183 } // end of WMSKmState
184 }
185 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org