diff flys-artifacts/src/main/java/de/intevation/flys/utils/MapfileGenerator.java @ 1830:7bb5bfd3b51f

Create layers for barrier lines and polygons only if they are really existing. flys-artifacts/trunk@3161 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 04 Nov 2011 10:58:44 +0000
parents 5364b86a0880
children e372934f0c42
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/utils/MapfileGenerator.java	Fri Nov 04 10:57:47 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/MapfileGenerator.java	Fri Nov 04 10:58:44 2011 +0000
@@ -410,9 +410,29 @@
         String uuid = flys.identifier();
         File   dir  = new File(getShapefileBaseDir(), uuid);
 
+        createBarriersLineLayer(flys, wms);
+        createBarriersPolygonLayer(flys, wms);
+    }
+
+
+    protected void createBarriersLineLayer(
+        FLYSArtifact  flys,
+        WMSLayerFacet wms
+    )
+    throws FileNotFoundException, IOException
+    {
+        String uuid       = flys.identifier();
         String group      = uuid + MS_BARRIERS_POSTFIX;
         String groupTitle = "I18N_BARRIERS_TITLE";
 
+        File dir  = new File(getShapefileBaseDir(), uuid);
+        File test = new File(dir, WSPLGEN_LINES_SHAPE);
+
+        if (!test.exists() || !test.canRead()) {
+            logger.debug("No barrier line layer existing.");
+            return;
+        }
+
         LayerInfo lineInfo = new LayerInfo();
         lineInfo.setName(uuid + MS_LINE_POSTFIX);
         lineInfo.setType("LINE");
@@ -422,17 +442,7 @@
         lineInfo.setGroup(group);
         lineInfo.setGroupTitle(groupTitle);
 
-        LayerInfo polygonInfo = new LayerInfo();
-        polygonInfo.setName(uuid + MS_POLYGONS_POSTFIX);
-        polygonInfo.setType("POLYGON");
-        polygonInfo.setDirectory(uuid);
-        polygonInfo.setData(WSPLGEN_POLYGONS_SHAPE);
-        polygonInfo.setTitle("I18N_POLYGON_SHAPE");
-        polygonInfo.setGroup(group);
-        polygonInfo.setGroupTitle(groupTitle);
-
-        String nameLines    = MS_LAYER_PREFIX + wms.getName() + "-lines";
-        String namePolygons = MS_LAYER_PREFIX + wms.getName() + "-polygons";
+        String nameLines = MS_LAYER_PREFIX + wms.getName() + "-lines";
 
         Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
         if (tpl == null) {
@@ -447,13 +457,50 @@
             logger.error(fnfe, fnfe);
             logger.warn("Unable to write layer: " + nameLines);
         }
+    }
+
+
+    protected void createBarriersPolygonLayer(
+        FLYSArtifact  flys,
+        WMSLayerFacet wms
+    )
+    throws FileNotFoundException, IOException
+    {
+        String uuid       = flys.identifier();
+        String group      = uuid + MS_BARRIERS_POSTFIX;
+        String groupTitle = "I18N_BARRIERS_TITLE";
+
+        File dir  = new File(getShapefileBaseDir(), uuid);
+        File test = new File(dir, WSPLGEN_POLYGONS_SHAPE);
+
+        if (!test.exists() || !test.canRead()) {
+            logger.debug("No barrier line layer existing.");
+            return;
+        }
+
+        LayerInfo polygonInfo = new LayerInfo();
+        polygonInfo.setName(uuid + MS_POLYGONS_POSTFIX);
+        polygonInfo.setType("POLYGON");
+        polygonInfo.setDirectory(uuid);
+        polygonInfo.setData(WSPLGEN_POLYGONS_SHAPE);
+        polygonInfo.setTitle("I18N_POLYGON_SHAPE");
+        polygonInfo.setGroup(group);
+        polygonInfo.setGroupTitle(groupTitle);
+
+        String namePolygons = MS_LAYER_PREFIX + wms.getName() + "-polygons";
+
+        Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
+        if (tpl == null) {
+            logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found.");
+            return;
+        }
 
         try {
             writeLayer(polygonInfo, dir, namePolygons, tpl);
         }
         catch (FileNotFoundException fnfe) {
             logger.error(fnfe, fnfe);
-            logger.warn("Unable to write layer: " + nameLines);
+            logger.warn("Unable to write layer: " + namePolygons);
         }
     }
 

http://dive4elements.wald.intevation.org