annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/HWSBarriersState.java @ 7261:a56fe3bc6700

Refactoring: Let RiverAccess.getRiver return an River. Renamed getRiver in getRiverName. Update Callers.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 08 Oct 2013 14:50:58 +0200
parents ffc9cb39cea7
children e4606eae8ea5
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 /** The logger that is used in this class.*/
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 private static Logger logger = Logger.getLogger(HWSBarriersState.class);
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) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 logger.error("Could not create directory for HWS shapefile!");
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
112 FeatureCollection collectionPoints = FeatureCollections.newCollection();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
113 SimpleFeatureType pointType = null;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
114 for (HWS h : selectedPoints) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
115 pointType = h.getFeatureType();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
116 collectionPoints.add(h.getFeature());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
117 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
118 boolean successPoints = false;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
119 if (pointType != null && collectionPoints.size() > 0) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 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
121 successPoints =GeometryUtils.writeShapefile(
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
122 shapePoints, pointType, collectionPoints);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
123 }
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 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
126 FloodMapState.createMapfile(
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
127 artifact,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
128 artifactDir,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
129 MapfileGenerator.MS_LAYER_PREFIX + "hws-lines",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
130 HWS_SHAPEFILE_LINES,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131 "LINE",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
132 "31467",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
133 "hws");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 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
136 FloodMapState.createMapfile(
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
137 artifact,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
138 artifactDir,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
139 MapfileGenerator.MS_LAYER_PREFIX + "hws-points",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
140 HWS_SHAPEFILE_POINTS,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
141 "POINT",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
142 "31467",
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
143 "hws");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
144 }
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 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
147 if (!userRgd.equals("none")) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
148 if (extractUserShp(artifactDir)) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
149 try {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
150 ShapefileDataStore store = new ShapefileDataStore(
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
151 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
152 "/" + FloodMapState.WSPLGEN_USER_RGD_SHAPE)
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
153 .toURI().toURL());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
154 GeometryDescriptor desc =
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
155 store.getSchema().getGeometryDescriptor();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
156 String type = desc.getType().getName().toString();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
157 String proj =
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
158 desc.getCoordinateReferenceSystem().
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
159 getCoordinateSystem().toString();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
160 int pos1 = proj.indexOf("EPSG\",\"");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
161 int pos2 = proj.indexOf("\"]]");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
162 String epsg = "";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
163 if (pos1 >= 0 && pos2 >= 0) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
164 epsg =
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
165 proj.substring(proj.indexOf("EPSG\",\"") + 7,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
166 proj.indexOf("\"]]"));
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
167 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
168 else {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
169 logger.warn("Could not read EPSG code from shapefile.");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
170 return null;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
171 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
172 if (type.contains("Line")) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
173 type = "LINE";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
174 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
175 else if (type.contains("Poly")) {
5394
9207142726b3 Fix typo in HWSBarriersState that caused mapfile corruption
Andre Heinecke <aheinecke@intevation.de>
parents: 5313
diff changeset
176 type = "POLYGON";
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
177 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
178 else {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
179 type = "POINT";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
180 }
6710
ffc9cb39cea7 Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents: 6105
diff changeset
181 FloodMapState.createMapfile(
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
182 artifact,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
183 artifactDir,
6710
ffc9cb39cea7 Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents: 6105
diff changeset
184 MapfileGenerator.MS_LAYER_PREFIX + FloodMapState.WSPLGEN_USER_RGD,
ffc9cb39cea7 Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents: 6105
diff changeset
185 FloodMapState.WSPLGEN_USER_RGD_SHAPE,
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
186 type,
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
187 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
188 FloodMapState.WSPLGEN_USER_RGD);
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
189 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
190 catch (IOException e) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
191 logger.warn("No mapfile for user-rgd created!");
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 }
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 return null;
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 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
199 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
200 boolean exists = archive.exists();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
201 logger.debug("Zip file exists: " + exists);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
202 if (exists) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
203 try {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
204 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
205 FileTools.extractArchive(archive, tmpDir);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
206 moveFiles(tmpDir, dir);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
207 return true;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
208 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
209 catch (IOException ioe) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
210 logger.warn("Zip archive " + 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
211 + FloodMapState.WSPLGEN_USER_RGD_ZIP + " could not be extracted.");
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
212 return false;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
213 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
214 }
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 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
219 throws IOException
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 if (!source.exists()) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
222 return;
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 (!target.exists()) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
225 target.mkdir();
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 FileTools.walkTree(source, new FileTools.FileVisitor() {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
228 @Override
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
229 public boolean visit(File file) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
230 if (!file.isDirectory()) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
231 String name = file.getName();
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
232 String suffix = "";
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
233 int pos = name.lastIndexOf('.');
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
234 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
235 suffix = name.substring(pos + 1);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
236 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
237 else {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
238 return true;
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 try {
6710
ffc9cb39cea7 Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
Christian Lins <christian.lins@intevation.de>
parents: 6105
diff changeset
241 FileTools.copyFile(file, new File(target, FloodMapState.WSPLGEN_USER_RGD + "." + suffix));
5310
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 catch (IOException ioe) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
244 logger.warn ("Error while copying file " + file.getName());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
245 return true;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
246 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
247 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
248 return true;
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 });
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
251
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
252 FileTools.deleteRecursive(source);
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
256 @Override
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
257 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
258 super.endOfLife(artifact, callContext);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
259 logger.info("ScenarioSelect.endOfLife: " + artifact.identifier());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
260
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
261 D4EArtifact flys = (D4EArtifact) artifact;
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
262 removeDirectory(flys);
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
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
265
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
266 /**
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
267 * Removes the directory and all its content where the required data and the
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
268 * 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
269 */
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
270 // 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
271 protected void removeDirectory(D4EArtifact artifact) {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
272 String shapePath = RiverUtils.getXPathString(
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
273 RiverUtils.XPATH_FLOODMAP_SHAPEFILE_DIR);
5310
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
274
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
275 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
276
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
277 if (artifactDir.exists()) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
278 logger.debug("Delete directory: " + artifactDir.getAbsolutePath());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
279 boolean success = FileTools.deleteRecursive(artifactDir);
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
280 if (!success) {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
281 logger.warn("could not remove dir '" + artifactDir + "'");
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 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
284 else {
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
285 logger.debug("There is no directory to remove.");
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
286 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
287 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
288
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 * 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
291 * data for the owner artifact.
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
292 *
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
293 * @param artifact The owner Artifact.
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 * @return the directory for WSPLEN data.
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
296 */
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
297 protected File getDirectory(D4EArtifact artifact) {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
298 String shapePath = RiverUtils.getXPathString(
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
299 RiverUtils.XPATH_FLOODMAP_SHAPEFILE_DIR);
5310
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 File artifactDir = FileTools.getDirectory(
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
302 shapePath, artifact.identifier());
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
303
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
304 return artifactDir;
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
305 }
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
306
11c853b0854a Added new states for HWS, user shapefile and barriers.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
307 }
5313
a1cb9a734cc5 Cleaned up imports.#
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5310
diff changeset
308 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org