Mercurial > dive4elements > river
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); |