annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/HWSBarriersState.java @ 9726:0a5239a1e46e 3.2.x

Upgrade to Log4j 2
author Tom Gottfried <tom@intevation.de>
date Wed, 02 Mar 2022 10:26:50 +0100
parents 5e38e2924c07
children 308a0d822d18
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
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
15 import org.apache.logging.log4j.Logger;
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
16 import org.apache.logging.log4j.LogManager;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
17 import org.dive4elements.artifactdatabase.state.Facet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
18 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
19 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
20 import org.dive4elements.artifacts.common.utils.FileTools;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
21 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
22 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
23 import org.dive4elements.river.artifacts.access.MapAccess;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
24 import org.dive4elements.river.artifacts.model.map.HWS;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
25 import org.dive4elements.river.artifacts.model.map.HWSContainer;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
26 import org.dive4elements.river.artifacts.model.map.HWSFactory;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
27 import org.dive4elements.river.utils.GeometryUtils;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5394
diff changeset
28 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
29 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
30 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
31 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
32 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
33 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
34 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
35 import org.w3c.dom.Element;
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 public class HWSBarriersState
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 extends DefaultState
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39 {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
41 /** The log that is used in this class.*/
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
42 private static Logger log = LogManager.getLogger(HWSBarriersState.class);
5310
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_LINES = "hws-lines.shp";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 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
45
ffc9cb39cea7 Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents: 6105
diff changeset
46
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 @Override
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 protected String getUIProvider() {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 return "map_digitize";
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 @Override
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 protected Element createStaticData(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
55 D4EArtifact flys,
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 ElementCreator creator,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 CallContext cc,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 String name,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 String value,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 String type
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 ) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 Element dataElement = creator.create("data");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 creator.addAttr(dataElement, "name", name, true);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 creator.addAttr(dataElement, "type", type, true);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 Element itemElement = creator.create("item");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 creator.addAttr(itemElement, "value", value, true);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 creator.addAttr(itemElement, "label", "", true);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 dataElement.appendChild(itemElement);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72 return dataElement;
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 @Override
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 public Object computeAdvance(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
78 D4EArtifact artifact,
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 String hash,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 CallContext context,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 List<Facet> facets,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 Object old
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 ) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 File artifactDir = getDirectory(artifact);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 if (artifactDir == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
87 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
88 return null;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90
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
91 MapAccess access = new MapAccess(artifact);
7261
a56fe3bc6700 Refactoring: Let RiverAccess.getRiver return an River.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6710
diff changeset
92 String river = access.getRiverName();
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 HWSContainer hwsLines = HWSFactory.getHWSLines(river);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
94 HWSContainer hwsPoints = HWSFactory.getHWSPoints(river);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 List<String> selected = access.getHWS();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
96
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
97 List<HWS> selectedLines = hwsLines.getHws(selected);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
98 List<HWS> selectedPoints = hwsPoints.getHws(selected);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
99
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
100 FeatureCollection collectionLines = FeatureCollections.newCollection();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
101 SimpleFeatureType lineType = null;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
102 for (HWS h : selectedLines) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
103 lineType = h.getFeatureType();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
104 collectionLines.add(h.getFeature());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
105 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
106 boolean successLines = false;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
107 if (lineType != null && collectionLines.size() > 0) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
108 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
109 successLines = GeometryUtils.writeShapefile(
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
110 shapeLines, lineType, collectionLines);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
111 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
112
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
113 FeatureCollection collectionPoints =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
114 FeatureCollections.newCollection();
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
115 SimpleFeatureType pointType = null;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
116 for (HWS h : selectedPoints) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
117 pointType = h.getFeatureType();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
118 collectionPoints.add(h.getFeature());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
119 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 boolean successPoints = false;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
121 if (pointType != null && collectionPoints.size() > 0) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
122 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
123 successPoints =GeometryUtils.writeShapefile(
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
124 shapePoints, pointType, collectionPoints);
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
127 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
128 FloodMapState.createMapfile(
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
129 artifact,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
130 artifactDir,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131 MapfileGenerator.MS_LAYER_PREFIX + "hws-lines",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
132 HWS_SHAPEFILE_LINES,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
133 "LINE",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 "31467",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 "hws");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
136 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
137 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
138 FloodMapState.createMapfile(
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
139 artifact,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
140 artifactDir,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
141 MapfileGenerator.MS_LAYER_PREFIX + "hws-points",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
142 HWS_SHAPEFILE_POINTS,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
143 "POINT",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
144 "31467",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
145 "hws");
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
148 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
149 if (!userRgd.equals("none")) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
150 if (extractUserShp(artifactDir)) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
151 try {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
152 ShapefileDataStore store = new ShapefileDataStore(
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
153 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
154 "/" + FloodMapState.WSPLGEN_USER_RGD_SHAPE)
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
155 .toURI().toURL());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
156 GeometryDescriptor desc =
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
157 store.getSchema().getGeometryDescriptor();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
158 String type = desc.getType().getName().toString();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
159 String proj =
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
160 desc.getCoordinateReferenceSystem().
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
161 getCoordinateSystem().toString();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
162 int pos1 = proj.indexOf("EPSG\",\"");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
163 int pos2 = proj.indexOf("\"]]");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
164 String epsg = "";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
165 if (pos1 >= 0 && pos2 >= 0) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
166 epsg =
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
167 proj.substring(proj.indexOf("EPSG\",\"") + 7,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
168 proj.indexOf("\"]]"));
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
169 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
170 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
171 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
172 return null;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
173 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
174 if (type.contains("Line")) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
175 type = "LINE";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
176 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
177 else if (type.contains("Poly")) {
5394
9207142726b3 Fix typo in HWSBarriersState that caused mapfile corruption
Andre Heinecke <aheinecke@intevation.de>
parents: 5313
diff changeset
178 type = "POLYGON";
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
179 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
180 else {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
181 type = "POINT";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
182 }
6710
ffc9cb39cea7 Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents: 6105
diff changeset
183 FloodMapState.createMapfile(
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
184 artifact,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
185 artifactDir,
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
186 MapfileGenerator.MS_LAYER_PREFIX
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
187 + 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
188 FloodMapState.WSPLGEN_USER_RGD_SHAPE,
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
189 type,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
190 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
191 FloodMapState.WSPLGEN_USER_RGD);
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
192 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
193 catch (IOException e) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
194 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
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 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
198 return null;
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
201 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
202 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
203 boolean exists = archive.exists();
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
204 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
205 if (exists) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
206 try {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
207 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
208 FileTools.extractArchive(archive, tmpDir);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
209 moveFiles(tmpDir, dir);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
210 return true;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
211 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
212 catch (IOException ioe) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
213 log.warn("Zip archive " + dir + "/"
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
214 + FloodMapState.WSPLGEN_USER_RGD_ZIP
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
215 + " could not be extracted.");
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
216 return false;
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 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
219 return false;
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
222 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
223 throws IOException
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
224 {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
225 if (!source.exists()) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
226 return;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
227 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
228 if (!target.exists()) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
229 target.mkdir();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
230 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
231 FileTools.walkTree(source, new FileTools.FileVisitor() {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
232 @Override
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
233 public boolean visit(File file) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
234 if (!file.isDirectory()) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
235 String name = file.getName();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
236 String suffix = "";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
237 int pos = name.lastIndexOf('.');
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
238 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
239 suffix = name.substring(pos + 1);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
240 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
241 else {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
242 return true;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
243 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
244 try {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
245 FileTools.copyFile(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
246 file,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
247 new File(target,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
248 FloodMapState.WSPLGEN_USER_RGD
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
249 + "." + suffix));
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
250 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
251 catch (IOException ioe) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
252 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
253 return true;
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 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
256 return true;
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
260 FileTools.deleteRecursive(source);
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
264 @Override
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
265 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
266 super.endOfLife(artifact, callContext);
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
267 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
268
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
269 D4EArtifact flys = (D4EArtifact) artifact;
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
270 removeDirectory(flys);
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
274 /**
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
275 * 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
276 * 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
277 */
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
278 // 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
279 protected void removeDirectory(D4EArtifact artifact) {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
280 String shapePath = RiverUtils.getXPathString(
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
281 RiverUtils.XPATH_FLOODMAP_SHAPEFILE_DIR);
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
282
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
283 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
284
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
285 if (artifactDir.exists()) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
286 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
287 boolean success = FileTools.deleteRecursive(artifactDir);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
288 if (!success) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
289 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
290 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
291 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
292 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7261
diff changeset
293 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
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 /**
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
298 * 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
299 * data for the owner artifact.
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
300 *
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
301 * @param artifact The owner Artifact.
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
302 *
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
303 * @return the directory for WSPLEN data.
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
304 */
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
305 protected File getDirectory(D4EArtifact artifact) {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
306 String shapePath = RiverUtils.getXPathString(
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
307 RiverUtils.XPATH_FLOODMAP_SHAPEFILE_DIR);
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
308
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
309 File artifactDir = FileTools.getDirectory(
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
310 shapePath, artifact.identifier());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
311
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
312 return artifactDir;
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
315 }
5313
a1cb9a734cc5 Cleaned up imports.#
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5310
diff changeset
316 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org