Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/HWSBarriersState.java @ 9178:2f5052835b76
uinfo inundationduration langjähr. Mittel, Uedauern.properties, Meldung
author | gernotbelger |
---|---|
date | Tue, 26 Jun 2018 19:48:35 +0200 |
parents | 5e38e2924c07 |
children | 0a5239a1e46e |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
9 package org.dive4elements.river.artifacts.states; |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.io.File; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.io.IOException; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import java.util.List; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
16 import org.dive4elements.artifactdatabase.state.Facet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
17 import org.dive4elements.artifacts.Artifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
18 import org.dive4elements.artifacts.CallContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
19 import org.dive4elements.artifacts.common.utils.FileTools; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
20 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
21 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
22 import org.dive4elements.river.artifacts.access.MapAccess; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
23 import org.dive4elements.river.artifacts.model.map.HWS; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
24 import org.dive4elements.river.artifacts.model.map.HWSContainer; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
25 import org.dive4elements.river.artifacts.model.map.HWSFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
26 import org.dive4elements.river.utils.GeometryUtils; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5394
diff
changeset
|
27 import org.dive4elements.river.utils.MapfileGenerator; |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
28 import org.dive4elements.river.utils.RiverUtils; |
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
29 import org.geotools.data.shapefile.ShapefileDataStore; |
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
30 import org.geotools.feature.FeatureCollection; |
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
31 import org.geotools.feature.FeatureCollections; |
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
32 import org.opengis.feature.simple.SimpleFeatureType; |
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
33 import org.opengis.feature.type.GeometryDescriptor; |
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
34 import org.w3c.dom.Element; |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 public class HWSBarriersState |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 extends DefaultState |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
40 /** The log that is used in this class.*/ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
41 private static Logger log = Logger.getLogger(HWSBarriersState.class); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 private static final String HWS_SHAPEFILE_LINES = "hws-lines.shp"; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 private static final String HWS_SHAPEFILE_POINTS = "hws-points.shp"; |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
44 |
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
45 |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 @Override |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 protected String getUIProvider() { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 return "map_digitize"; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 @Override |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 protected Element createStaticData( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
54 D4EArtifact flys, |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 ElementCreator creator, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 CallContext cc, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 String name, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 String value, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 String type |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 ) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 Element dataElement = creator.create("data"); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 creator.addAttr(dataElement, "name", name, true); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 creator.addAttr(dataElement, "type", type, true); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 Element itemElement = creator.create("item"); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 creator.addAttr(itemElement, "value", value, true); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 creator.addAttr(itemElement, "label", "", true); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 dataElement.appendChild(itemElement); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 return dataElement; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 @Override |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 public Object computeAdvance( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
77 D4EArtifact artifact, |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 String hash, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 CallContext context, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 List<Facet> facets, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 Object old |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 ) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 File artifactDir = getDirectory(artifact); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 if (artifactDir == null) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
86 log.error("Could not create directory for HWS shapefile!"); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 return null; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 |
6101
a0078e5e3b39
Removed unused context from RangeAccess and subclasses leading to some dead code removal.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
90 MapAccess access = new MapAccess(artifact); |
7261
a56fe3bc6700
Refactoring: Let RiverAccess.getRiver return an River.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6710
diff
changeset
|
91 String river = access.getRiverName(); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 HWSContainer hwsLines = HWSFactory.getHWSLines(river); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 HWSContainer hwsPoints = HWSFactory.getHWSPoints(river); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 List<String> selected = access.getHWS(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 List<HWS> selectedLines = hwsLines.getHws(selected); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 List<HWS> selectedPoints = hwsPoints.getHws(selected); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 FeatureCollection collectionLines = FeatureCollections.newCollection(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 SimpleFeatureType lineType = null; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 for (HWS h : selectedLines) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 lineType = h.getFeatureType(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 collectionLines.add(h.getFeature()); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 boolean successLines = false; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 if (lineType != null && collectionLines.size() > 0) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 File shapeLines = new File(artifactDir, HWS_SHAPEFILE_LINES); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 successLines = GeometryUtils.writeShapefile( |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 shapeLines, lineType, collectionLines); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 |
8856 | 112 FeatureCollection collectionPoints = |
113 FeatureCollections.newCollection(); | |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 SimpleFeatureType pointType = null; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 for (HWS h : selectedPoints) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 pointType = h.getFeatureType(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 collectionPoints.add(h.getFeature()); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
119 boolean successPoints = false; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 if (pointType != null && collectionPoints.size() > 0) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 File shapePoints = new File(artifactDir, HWS_SHAPEFILE_POINTS); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 successPoints =GeometryUtils.writeShapefile( |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 shapePoints, pointType, collectionPoints); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 if (successLines) { |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
127 FloodMapState.createMapfile( |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 artifact, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 artifactDir, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 MapfileGenerator.MS_LAYER_PREFIX + "hws-lines", |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 HWS_SHAPEFILE_LINES, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 "LINE", |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 "31467", |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 "hws"); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 if (successPoints) { |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
137 FloodMapState.createMapfile( |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 artifact, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 artifactDir, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 MapfileGenerator.MS_LAYER_PREFIX + "hws-points", |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 HWS_SHAPEFILE_POINTS, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 "POINT", |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 "31467", |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 "hws"); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 String userRgd = artifact.getDataAsString("uesk.user-rgd"); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 if (!userRgd.equals("none")) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 if (extractUserShp(artifactDir)) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 try { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 ShapefileDataStore store = new ShapefileDataStore( |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 new File(artifactDir.getCanonicalPath() + |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
153 "/" + FloodMapState.WSPLGEN_USER_RGD_SHAPE) |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 .toURI().toURL()); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 GeometryDescriptor desc = |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 store.getSchema().getGeometryDescriptor(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 String type = desc.getType().getName().toString(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 String proj = |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 desc.getCoordinateReferenceSystem(). |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 getCoordinateSystem().toString(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 int pos1 = proj.indexOf("EPSG\",\""); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 int pos2 = proj.indexOf("\"]]"); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 String epsg = ""; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 if (pos1 >= 0 && pos2 >= 0) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 epsg = |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 proj.substring(proj.indexOf("EPSG\",\"") + 7, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 proj.indexOf("\"]]")); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
170 log.warn("Could not read EPSG code from shapefile."); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 return null; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 if (type.contains("Line")) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 type = "LINE"; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 else if (type.contains("Poly")) { |
5394
9207142726b3
Fix typo in HWSBarriersState that caused mapfile corruption
Andre Heinecke <aheinecke@intevation.de>
parents:
5313
diff
changeset
|
177 type = "POLYGON"; |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 else { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 type = "POINT"; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 } |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
182 FloodMapState.createMapfile( |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
183 artifact, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 artifactDir, |
8856 | 185 MapfileGenerator.MS_LAYER_PREFIX |
186 + FloodMapState.WSPLGEN_USER_RGD, | |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
187 FloodMapState.WSPLGEN_USER_RGD_SHAPE, |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 type, |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 epsg, |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
190 FloodMapState.WSPLGEN_USER_RGD); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 catch (IOException e) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
193 log.warn("No mapfile for user-rgd created!"); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
194 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
195 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
196 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
197 return null; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
198 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
199 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
200 private boolean extractUserShp(File dir) { |
6710
ffc9cb39cea7
Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents:
6105
diff
changeset
|
201 File archive = new File(dir, FloodMapState.WSPLGEN_USER_RGD_ZIP); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
202 boolean exists = archive.exists(); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
203 log.debug("Zip file exists: " + exists); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
204 if (exists) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
205 try { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
206 File tmpDir = new File(dir, "usr_tmp"); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
207 FileTools.extractArchive(archive, tmpDir); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
208 moveFiles(tmpDir, dir); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
209 return true; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
210 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
211 catch (IOException ioe) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
212 log.warn("Zip archive " + dir + "/" |
8856 | 213 + FloodMapState.WSPLGEN_USER_RGD_ZIP |
214 + " could not be extracted."); | |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
215 return false; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
216 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
217 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
218 return false; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
219 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
220 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
221 private void moveFiles(File source, final File target) |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
222 throws IOException |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
223 { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
224 if (!source.exists()) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
225 return; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
226 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
227 if (!target.exists()) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
228 target.mkdir(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
229 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
230 FileTools.walkTree(source, new FileTools.FileVisitor() { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
231 @Override |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
232 public boolean visit(File file) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
233 if (!file.isDirectory()) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
234 String name = file.getName(); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
235 String suffix = ""; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
236 int pos = name.lastIndexOf('.'); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
237 if (pos > 0 && pos < name.length() - 1) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
238 suffix = name.substring(pos + 1); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
239 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
240 else { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
241 return true; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
242 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
243 try { |
8856 | 244 FileTools.copyFile( |
245 file, | |
246 new File(target, | |
247 FloodMapState.WSPLGEN_USER_RGD | |
248 + "." + suffix)); | |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
249 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
250 catch (IOException ioe) { |
8856 | 251 log.warn("Error while copying file " + file.getName()); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
252 return true; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
253 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
254 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
255 return true; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
256 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
257 }); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
258 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
259 FileTools.deleteRecursive(source); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
260 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
261 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
262 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
263 @Override |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
264 public void endOfLife(Artifact artifact, Object callContext) { |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
265 super.endOfLife(artifact, callContext); |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
266 log.info("ScenarioSelect.endOfLife: " + artifact.identifier()); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
267 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
268 D4EArtifact flys = (D4EArtifact) artifact; |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
269 removeDirectory(flys); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
270 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
271 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
272 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
273 /** |
8856 | 274 * Removes directory and all its content where the required data and the |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
275 * results of WSPLGEN are stored. Should be called in endOfLife(). |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
276 */ |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
277 // FIXME: I've seen this code somewhere else... |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
278 protected void removeDirectory(D4EArtifact artifact) { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
279 String shapePath = RiverUtils.getXPathString( |
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
280 RiverUtils.XPATH_FLOODMAP_SHAPEFILE_DIR); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
281 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
282 File artifactDir = new File(shapePath, artifact.identifier()); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
283 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
284 if (artifactDir.exists()) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
285 log.debug("Delete directory: " + artifactDir.getAbsolutePath()); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
286 boolean success = FileTools.deleteRecursive(artifactDir); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
287 if (!success) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
288 log.warn("could not remove dir '" + artifactDir + "'"); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
289 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
290 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
291 else { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7261
diff
changeset
|
292 log.debug("There is no directory to remove."); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
293 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
294 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
295 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
296 /** |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
297 * Returns (and creates if not existing) the directory for storing WSPLEN |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
298 * data for the owner artifact. |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
299 * |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
300 * @param artifact The owner Artifact. |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
301 * |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
302 * @return the directory for WSPLEN data. |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
303 */ |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
304 protected File getDirectory(D4EArtifact artifact) { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
305 String shapePath = RiverUtils.getXPathString( |
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
306 RiverUtils.XPATH_FLOODMAP_SHAPEFILE_DIR); |
5310
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
307 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
308 File artifactDir = FileTools.getDirectory( |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
309 shapePath, artifact.identifier()); |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
310 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
311 return artifactDir; |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
312 } |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
313 |
11c853b0854a
Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
314 } |
5313
a1cb9a734cc5
Cleaned up imports.#
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5310
diff
changeset
|
315 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |