comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java @ 1149:64b465699a24

Added an Output target for WSPLGEN reports that will be available when an WSPLGEN calculation is finished. flys-artifacts/trunk@2680 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 08 Sep 2011 14:42:36 +0000
parents c07e9e9c7482
children efe1b8545f5c
comparison
equal deleted inserted replaced
1148:302461d5d071 1149:64b465699a24
5 import java.io.FileOutputStream; 5 import java.io.FileOutputStream;
6 import java.io.IOException; 6 import java.io.IOException;
7 import java.util.ArrayList; 7 import java.util.ArrayList;
8 import java.util.List; 8 import java.util.List;
9 9
10 import javax.xml.xpath.XPathConstants;
11
12 import com.vividsolutions.jts.geom.Coordinate; 10 import com.vividsolutions.jts.geom.Coordinate;
13 import com.vividsolutions.jts.geom.Geometry; 11 import com.vividsolutions.jts.geom.Geometry;
14 import com.vividsolutions.jts.geom.LineString; 12 import com.vividsolutions.jts.geom.LineString;
15 import com.vividsolutions.jts.geom.MultiPolygon; 13 import com.vividsolutions.jts.geom.MultiPolygon;
16 import com.vividsolutions.jts.geom.Polygon; 14 import com.vividsolutions.jts.geom.Polygon;
25 import org.geotools.feature.simple.SimpleFeatureBuilder; 23 import org.geotools.feature.simple.SimpleFeatureBuilder;
26 24
27 import de.intevation.artifacts.Artifact; 25 import de.intevation.artifacts.Artifact;
28 import de.intevation.artifacts.CallContext; 26 import de.intevation.artifacts.CallContext;
29 27
30 import de.intevation.artifacts.common.utils.Config;
31 import de.intevation.artifacts.common.utils.FileTools; 28 import de.intevation.artifacts.common.utils.FileTools;
32 29
33 import de.intevation.artifactdatabase.state.Facet; 30 import de.intevation.artifactdatabase.state.Facet;
34 31
35 import de.intevation.flys.model.CrossSectionTrack; 32 import de.intevation.flys.model.CrossSectionTrack;
40 import de.intevation.flys.artifacts.FLYSArtifact; 37 import de.intevation.flys.artifacts.FLYSArtifact;
41 import de.intevation.flys.artifacts.model.CalculationResult; 38 import de.intevation.flys.artifacts.model.CalculationResult;
42 import de.intevation.flys.artifacts.model.FacetTypes; 39 import de.intevation.flys.artifacts.model.FacetTypes;
43 import de.intevation.flys.artifacts.model.WQKms; 40 import de.intevation.flys.artifacts.model.WQKms;
44 import de.intevation.flys.artifacts.model.WMSLayerFacet; 41 import de.intevation.flys.artifacts.model.WMSLayerFacet;
42 import de.intevation.flys.artifacts.model.WSPLGENCalculation;
45 import de.intevation.flys.artifacts.model.WSPLGENJob; 43 import de.intevation.flys.artifacts.model.WSPLGENJob;
44 import de.intevation.flys.artifacts.model.WSPLGENReportFacet;
46 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; 45 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
47 import de.intevation.flys.exports.WstWriter; 46 import de.intevation.flys.exports.WstWriter;
48 import de.intevation.flys.utils.FLYSUtils; 47 import de.intevation.flys.utils.FLYSUtils;
49 import de.intevation.flys.utils.GeometryUtils; 48 import de.intevation.flys.utils.GeometryUtils;
50 import de.intevation.flys.utils.MapfileGenerator; 49 import de.intevation.flys.utils.MapfileGenerator;
95 if (artifactDir == null) { 94 if (artifactDir == null) {
96 logger.error("Could not create directory for WSPLGEN results!"); 95 logger.error("Could not create directory for WSPLGEN results!");
97 return null; 96 return null;
98 } 97 }
99 98
100 WSPLGENJob job = prepareWSPLGENJob(artifact, artifactDir, context); 99 WSPLGENCalculation calculation = new WSPLGENCalculation();
100
101 WSPLGENJob job = prepareWSPLGENJob(
102 artifact,
103 artifactDir,
104 context,
105 calculation);
101 106
102 if (job == null) { 107 if (job == null) {
103 if (KEEP_ARTIFACT_DIR.equals("false")) { 108 if (KEEP_ARTIFACT_DIR.equals("false")) {
104 removeDirectory(artifact); 109 removeDirectory(artifact);
105 } 110 }
144 barriers.addLayer( 149 barriers.addLayer(
145 artifact.identifier() + MapfileGenerator.MS_BARRIERS_POSTFIX); 150 artifact.identifier() + MapfileGenerator.MS_BARRIERS_POSTFIX);
146 barriers.setSrid(srid); 151 barriers.setSrid(srid);
147 barriers.setExtent(GeometryUtils.getRiverBounds(river)); 152 barriers.setExtent(GeometryUtils.getRiverBounds(river));
148 153
154 CalculationResult res = new CalculationResult(null, calculation);
155 WSPLGENReportFacet report= new WSPLGENReportFacet(
156 ComputeType.ADVANCE, hash, getID(), res);
157
149 facets.add(wsplgen); 158 facets.add(wsplgen);
150 facets.add(barriers); 159 facets.add(barriers);
160 facets.add(report);
151 161
152 context.afterCall(CallContext.BACKGROUND); 162 context.afterCall(CallContext.BACKGROUND);
153 163
154 return null; 164 return null;
155 } 165 }
202 removeDirectory(flys); 212 removeDirectory(flys);
203 } 213 }
204 214
205 215
206 protected WSPLGENJob prepareWSPLGENJob( 216 protected WSPLGENJob prepareWSPLGENJob(
207 FLYSArtifact artifact, 217 FLYSArtifact artifact,
208 File artifactDir, 218 File artifactDir,
209 CallContext context 219 CallContext context,
220 WSPLGENCalculation calculation
210 ) { 221 ) {
211 logger.debug("FloodMapState.prepareWSPLGENJob"); 222 logger.debug("FloodMapState.prepareWSPLGENJob");
212 223
213 WSPLGENJob job = new WSPLGENJob(artifact, artifactDir, context); 224 WSPLGENJob job = new WSPLGENJob(
214 File paraFile = new File(artifactDir, WSPLGEN_PARAMETER_FILE); 225 artifact,
226 artifactDir,
227 context,
228 calculation);
229
230 File paraFile = new File(artifactDir, WSPLGEN_PARAMETER_FILE);
215 231
216 setOut(artifact, job); 232 setOut(artifact, job);
217 setRange(artifact, job); 233 setRange(artifact, job);
218 setDelta(artifact, job); 234 setDelta(artifact, job);
219 setGel(artifact, job); 235 setGel(artifact, job);

http://dive4elements.wald.intevation.org