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