diff artifacts/src/main/java/org/dive4elements/river/artifacts/states/FloodMapState.java @ 7055:1f38656b68c4

DGM SRIds are now fetched from database instead of configuration.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 19 Sep 2013 16:27:33 +0200
parents 93e7f947f6fa
children a56fe3bc6700
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/FloodMapState.java	Thu Sep 19 12:51:30 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/FloodMapState.java	Thu Sep 19 16:27:33 2013 +0200
@@ -30,6 +30,7 @@
 import org.dive4elements.artifacts.GlobalContext;
 import org.dive4elements.artifacts.common.utils.FileTools;
 import org.dive4elements.river.artifacts.D4EArtifact;
+import org.dive4elements.river.artifacts.access.DGMAccess;
 import org.dive4elements.river.artifacts.access.RangeAccess;
 import org.dive4elements.river.artifacts.context.RiverContext;
 import org.dive4elements.river.artifacts.model.CalculationMessage;
@@ -412,7 +413,7 @@
                 MapfileGenerator.MS_LAYER_PREFIX + HWS_LINES,
                 HWS_LINES_SHAPE,
                 "LINE",
-                "31467",
+                "31467", // XXX: This should be dynamically fetched from database.
                 "hws");
             job.addLin(artifactDir + "/" + HWS_LINES_SHAPE);
             facetCreator.createShapeFacet(I18N_HWS_LINES_OFFICIAL,
@@ -536,16 +537,18 @@
         File         dir,
         WSPLGENJob   job
     ) {
-        String river   = artifact.getDataAsString("river");
-        String geoJSON = artifact.getDataAsString("uesk.barriers");
-        String srid    = RiverUtils.getRiverDGMSrid(river);
-        String srs     = "EPSG:" + srid;
+        DGMAccess access = new DGMAccess(artifact);
+        String geoJSON   = access.getGeoJSON();
 
         if (geoJSON == null || geoJSON.length() == 0) {
             logger.debug("No barrier features in parameterization existing.");
             return;
         }
 
+        String srid = String.valueOf(access.getDGM().getSrid());
+
+        String srs = "EPSG:" + srid;
+
         SimpleFeatureType ft = getBarriersFeatureType(
             "barriers", srs, Geometry.class);
 
@@ -748,9 +751,10 @@
 
 
     protected void setAxis(D4EArtifact artifact, File dir, WSPLGENJob job) {
-        String river = artifact.getDataAsString("river");
-        String srid    = RiverUtils.getRiverDGMSrid(river);
-        String srs     = "EPSG:" + srid;
+        DGMAccess access = new DGMAccess(artifact);
+        String river = access.getRiver();
+        String srid  = String.valueOf(access.getDGM().getSrid());
+        String srs   = "EPSG:" + srid;
 
         List<RiverAxis> axes = null;
         try {
@@ -794,9 +798,10 @@
 
 
     protected void setPro(D4EArtifact artifact, File dir, WSPLGENJob job) {
-        String river = artifact.getDataAsString("river");
-        String srid    = RiverUtils.getRiverDGMSrid(river);
-        String srs     = "EPSG:" + srid;
+        DGMAccess access = new DGMAccess(artifact);
+        String river = access.getRiver();
+        String srid  = String.valueOf(access.getDGM().getSrid());
+        String srs   = "EPSG:" + srid;
 
         List<CrossSectionTrack> cst =
             CrossSectionTrack.getCrossSectionTrack(river, WSPLGEN_QPS_NAME);
@@ -838,33 +843,25 @@
 
     protected void setDgm(
         D4EArtifact artifact,
-        WSPLGENJob job,
+        WSPLGENJob  job,
         CallContext context
     ) {
-        String dgm_id = artifact.getDataAsString("dgm");
-
-        int id = -1;
-        try {
-            id = Integer.parseInt(dgm_id);
-        }
-        catch (NumberFormatException nfe) { /* do nothing */ }
-
-        DGM dgm = DGM.getDGM(id);
+        DGMAccess access = new DGMAccess(artifact);
+        DGM dgm = access.getDGM();
 
         if (dgm == null) {
             logger.warn("Could not find specified DGM.");
-
             return;
         }
 
-        File dgmPath = new File (dgm.getPath());
+        File dgmPath = new File(dgm.getPath());
         if (dgmPath.isAbsolute()) {
             job.setDgm(dgm.getPath());
         }
         else {
             RiverContext fc = (RiverContext)context.globalContext();
-            String prefix = (String) fc.get("dgm-path");
-            job.setDgm(prefix.trim() + dgm.getPath().trim());
+            File prefix = new File((String)fc.get("dgm-path"));
+            job.setDgm(new File(prefix, dgm.getPath()).getAbsolutePath());
         }
     }
 
@@ -876,8 +873,9 @@
             return;
         }
 
-        String river = artifact.getDataAsString("river");
-        String srid  = RiverUtils.getRiverDGMSrid(river);
+        DGMAccess access = new DGMAccess(artifact);
+        String river = access.getRiver();
+        String srid  = String.valueOf(access.getDGM().getSrid());
         String srs   = "EPSG:" + srid;
 
         Floodplain plain = Floodplain.getFloodplain(river);
@@ -1013,8 +1011,5 @@
             }
         }
     }
-
-
-
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org