Mercurial > dive4elements > river
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>. |