diff flys-artifacts/src/main/java/de/intevation/flys/utils/MapfileGenerator.java @ 1134:bcf70a452646

Read barrier layers from filesystem while mapfile creation and build a facet for this layer in the artifact. flys-artifacts/trunk@2654 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 06 Sep 2011 15:25:54 +0000
parents da3c3e286c88
children 6c0b79efd2c9
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/utils/MapfileGenerator.java	Tue Sep 06 11:10:13 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/MapfileGenerator.java	Tue Sep 06 15:25:54 2011 +0000
@@ -29,7 +29,14 @@
 public class MapfileGenerator
 extends Thread
 {
-    public static final String WSPLGEN_RESULT_SHAPE = "wsplgen.shp";
+    public static final String WSPLGEN_RESULT_SHAPE   = "wsplgen.shp";
+    public static final String WSPLGEN_LINES_SHAPE    = "barrier_lines.shp";
+    public static final String WSPLGEN_POLYGONS_SHAPE = "barrier_polygons.shp";
+
+    public static final String MS_WSPLGEN_POSTFIX  = "-wsplgen";
+    public static final String MS_BARRIERS_POSTFIX = "-barriers";
+    public static final String MS_LINE_POSTFIX     = "-lines";
+    public static final String MS_POLYGONS_POSTFIX = "-polygons";
 
     protected static final long SLEEPTIME = 10 * 1000L; // 10 seconds
 
@@ -291,9 +298,18 @@
 
         for (File dir: dirs) {
             LayerInfo layer = parseUeskLayer(dir);
+            if (layer != null && layer.getData() != null) {
+                logger.debug("   Add WSPLGEN layer.");
+                layers.add(layer);
+            }
 
-            if (layer != null && layer.getData() != null) {
-                layers.add(layer);
+            List<LayerInfo> barriers = parseBarriersLayers(dir);
+            int num = barriers != null ? barriers.size() : 0;
+            if (num > 0) {
+                if (barriers.get(0).getData() != null) {
+                    logger.debug("   Add " + num + " BARRIERS layers.");
+                    layers.addAll(barriers);
+                }
             }
         }
 
@@ -308,14 +324,49 @@
             return null;
         }
 
-        return new LayerInfo(uesk, "POLYGON", dir.getName(), dir.getName());
+        return new LayerInfo(
+            dir.getName() + MS_WSPLGEN_POSTFIX,
+            "POLYGON",
+            dir.getName(),
+            WSPLGEN_RESULT_SHAPE,
+            "I18N_WSPLGEN_RESULT");
     }
 
 
-    protected LayerInfo parseBarriersLayers(File dir) {
-        // TODO IMPLEMENT ME
+    protected List<LayerInfo> parseBarriersLayers(File dir) {
+        List<LayerInfo> barriers = new ArrayList<LayerInfo>(2);
 
-        return null;
+        String group      = dir.getName() + MS_BARRIERS_POSTFIX;
+        String groupTitle = "I18N_BARRIERS_TITLE";
+
+        File lines    = new File(dir, WSPLGEN_LINES_SHAPE);
+        File polygons = new File(dir, WSPLGEN_POLYGONS_SHAPE);
+
+        if (lines.exists() || lines.isFile()) {
+            barriers.add(
+                new LayerInfo(
+                    dir.getName() + MS_LINE_POSTFIX,
+                    "LINE",
+                    dir.getName(),
+                    WSPLGEN_LINES_SHAPE,
+                    "I18N_LINE_SHAPE",
+                    group,
+                    groupTitle));
+        }
+
+        if (polygons.exists() || polygons.isFile()) {
+            barriers.add(
+                new LayerInfo(
+                    dir.getName() + MS_POLYGONS_POSTFIX,
+                    "POLYGON",
+                    dir.getName(),
+                    WSPLGEN_POLYGONS_SHAPE,
+                    "I18N_POLYGON_SHAPE",
+                    group,
+                    groupTitle));
+        }
+
+        return barriers;
     }
 
 

http://dive4elements.wald.intevation.org