Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/HWSBarriersState.java @ 9425:3f49835a00c3
Extended CrossSectionFacet so it may fetch different data from within the artifact result.
Also allows to have acces to the potentially already computed artifact result via its normal computation cache.
author | gernotbelger |
---|---|
date | Fri, 17 Aug 2018 15:31:02 +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 : |