diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java @ 5152:b26465581abf

Add a configurable path prefix to relative DGM path to allways have an absolute path.
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 01 Mar 2013 10:35:38 +0100
parents 9c529b9de6b5
children c1b60f8c3390
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java	Fri Mar 01 10:04:57 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java	Fri Mar 01 10:35:38 2013 +0100
@@ -10,6 +10,7 @@
 import de.intevation.artifacts.CallContext;
 import de.intevation.artifacts.CallMeta;
 import de.intevation.artifacts.GlobalContext;
+import de.intevation.artifacts.common.utils.Config;
 import de.intevation.artifacts.common.utils.FileTools;
 import de.intevation.flys.artifacts.access.RangeAccess;
 import de.intevation.flys.artifacts.FLYSArtifact;
@@ -43,6 +44,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.naming.Context;
+
 import org.apache.log4j.Logger;
 import org.geotools.feature.FeatureCollection;
 import org.geotools.feature.FeatureCollections;
@@ -307,7 +310,7 @@
         setUserShape(artifact, facetCreator, artifactDir, job);
         setAxis(artifact, artifactDir, job);
         setPro(artifact, artifactDir, job);
-        setDgm(artifact, job);
+        setDgm(artifact, job, context);
         setArea(artifact, artifactDir, job);
         setOutFile(artifact, job);
         setWsp(artifact, context, artifactDir, job);    // WSP
@@ -691,7 +694,11 @@
     }
 
 
-    protected void setDgm(FLYSArtifact artifact, WSPLGENJob job) {
+    protected void setDgm(
+        FLYSArtifact artifact,
+        WSPLGENJob job,
+        CallContext context
+    ) {
         String dgm_id = artifact.getDataAsString("dgm");
 
         int id = -1;
@@ -708,7 +715,15 @@
             return;
         }
 
-        job.setDgm(dgm.getPath());
+        File dgmPath = new File (dgm.getPath());
+        if (dgmPath.isAbsolute()) {
+            job.setDgm(dgm.getPath());
+        }
+        else {
+            FLYSContext fc = (FLYSContext)context.globalContext();
+            String prefix = (String) fc.get("dgm-path");
+            job.setDgm(prefix.trim() + dgm.getPath().trim());
+        }
     }
 
 

http://dive4elements.wald.intevation.org