comparison 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
comparison
equal deleted inserted replaced
1133:e011f8c6e5e8 1134:bcf70a452646
27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
28 */ 28 */
29 public class MapfileGenerator 29 public class MapfileGenerator
30 extends Thread 30 extends Thread
31 { 31 {
32 public static final String WSPLGEN_RESULT_SHAPE = "wsplgen.shp"; 32 public static final String WSPLGEN_RESULT_SHAPE = "wsplgen.shp";
33 public static final String WSPLGEN_LINES_SHAPE = "barrier_lines.shp";
34 public static final String WSPLGEN_POLYGONS_SHAPE = "barrier_polygons.shp";
35
36 public static final String MS_WSPLGEN_POSTFIX = "-wsplgen";
37 public static final String MS_BARRIERS_POSTFIX = "-barriers";
38 public static final String MS_LINE_POSTFIX = "-lines";
39 public static final String MS_POLYGONS_POSTFIX = "-polygons";
33 40
34 protected static final long SLEEPTIME = 10 * 1000L; // 10 seconds 41 protected static final long SLEEPTIME = 10 * 1000L; // 10 seconds
35 42
36 private static Logger logger = Logger.getLogger(MapfileGenerator.class); 43 private static Logger logger = Logger.getLogger(MapfileGenerator.class);
37 44
289 protected List<LayerInfo> parseLayers(File[] dirs) { 296 protected List<LayerInfo> parseLayers(File[] dirs) {
290 List<LayerInfo> layers = new ArrayList<LayerInfo>(); 297 List<LayerInfo> layers = new ArrayList<LayerInfo>();
291 298
292 for (File dir: dirs) { 299 for (File dir: dirs) {
293 LayerInfo layer = parseUeskLayer(dir); 300 LayerInfo layer = parseUeskLayer(dir);
294
295 if (layer != null && layer.getData() != null) { 301 if (layer != null && layer.getData() != null) {
302 logger.debug(" Add WSPLGEN layer.");
296 layers.add(layer); 303 layers.add(layer);
304 }
305
306 List<LayerInfo> barriers = parseBarriersLayers(dir);
307 int num = barriers != null ? barriers.size() : 0;
308 if (num > 0) {
309 if (barriers.get(0).getData() != null) {
310 logger.debug(" Add " + num + " BARRIERS layers.");
311 layers.addAll(barriers);
312 }
297 } 313 }
298 } 314 }
299 315
300 return layers; 316 return layers;
301 } 317 }
306 322
307 if (!uesk.exists() || !uesk.isFile()) { 323 if (!uesk.exists() || !uesk.isFile()) {
308 return null; 324 return null;
309 } 325 }
310 326
311 return new LayerInfo(uesk, "POLYGON", dir.getName(), dir.getName()); 327 return new LayerInfo(
312 } 328 dir.getName() + MS_WSPLGEN_POSTFIX,
313 329 "POLYGON",
314 330 dir.getName(),
315 protected LayerInfo parseBarriersLayers(File dir) { 331 WSPLGEN_RESULT_SHAPE,
316 // TODO IMPLEMENT ME 332 "I18N_WSPLGEN_RESULT");
317 333 }
318 return null; 334
335
336 protected List<LayerInfo> parseBarriersLayers(File dir) {
337 List<LayerInfo> barriers = new ArrayList<LayerInfo>(2);
338
339 String group = dir.getName() + MS_BARRIERS_POSTFIX;
340 String groupTitle = "I18N_BARRIERS_TITLE";
341
342 File lines = new File(dir, WSPLGEN_LINES_SHAPE);
343 File polygons = new File(dir, WSPLGEN_POLYGONS_SHAPE);
344
345 if (lines.exists() || lines.isFile()) {
346 barriers.add(
347 new LayerInfo(
348 dir.getName() + MS_LINE_POSTFIX,
349 "LINE",
350 dir.getName(),
351 WSPLGEN_LINES_SHAPE,
352 "I18N_LINE_SHAPE",
353 group,
354 groupTitle));
355 }
356
357 if (polygons.exists() || polygons.isFile()) {
358 barriers.add(
359 new LayerInfo(
360 dir.getName() + MS_POLYGONS_POSTFIX,
361 "POLYGON",
362 dir.getName(),
363 WSPLGEN_POLYGONS_SHAPE,
364 "I18N_POLYGON_SHAPE",
365 group,
366 groupTitle));
367 }
368
369 return barriers;
319 } 370 }
320 371
321 372
322 /** 373 /**
323 * Creates a mapfile with the layer information stored in <i>layers</i>. 374 * Creates a mapfile with the layer information stored in <i>layers</i>.

http://dive4elements.wald.intevation.org