annotate artifacts/src/main/java/org/dive4elements/river/utils/ArtifactMapfileGenerator.java @ 5867:59ff03ff48f1

River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 28 Apr 2013 15:23:01 +0200
parents 73da40528cf2
children af13ceeba52a
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
6 * documentation coming with Dive4Elements River for details.
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
9 package org.dive4elements.river.utils;
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
11 import org.dive4elements.artifacts.CallContext;
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
12 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
13 import org.dive4elements.river.artifacts.access.RiverAccess;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
14 import org.dive4elements.river.artifacts.model.LayerInfo;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
15 import org.dive4elements.river.artifacts.model.map.WMSDBLayerFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
16 import org.dive4elements.river.artifacts.model.map.WMSLayerFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
17 import org.dive4elements.river.artifacts.model.map.WSPLGENLayerFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5309
diff changeset
18 import org.dive4elements.river.artifacts.resources.Resources;
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
19
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
20 import java.io.File;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
21 import java.io.FileNotFoundException;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
22 import java.io.IOException;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
23 import java.util.List;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
24
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
25 import org.apache.log4j.Logger;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
26 import org.apache.velocity.Template;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27 import org.geotools.data.shapefile.ShpFiles;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
28 import org.geotools.data.shapefile.shp.ShapefileHeader;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
29 import org.geotools.data.shapefile.shp.ShapefileReader;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
30
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
31 public class ArtifactMapfileGenerator extends MapfileGenerator {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
32
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
33 private static Logger logger = Logger.getLogger(ArtifactMapfileGenerator.class);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
34
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
35 @Override
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
36 protected String getVelocityLogfile() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
37 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_VELOCITY_LOGFILE);
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
38 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
39
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
40 @Override
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
41 protected String getMapserverTemplatePath() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
42 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPSERVER_TEMPLATE_PATH);
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
43 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
44
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
45 @Override
5309
b55975761708 Changed visiblitiy of some methods. TODO: A lot of refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents: 4994
diff changeset
46 public String getMapserverUrl() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
47 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPSERVER_URL);
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
48 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
49
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
50 /**
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
51 * Method which starts searching for meta information file and mapfile
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
52 * generation.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
53 */
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
54 @Override
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
55 public void generate() throws IOException
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
56 {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
57 File[] userDirs = getUserDirs();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
58 List<String> layers = parseLayers(userDirs);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
59 logger.info("Found " + layers.size() + " layers for user mapfile.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
60
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
61 writeMapfile(layers);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
62 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
63
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
64 /**
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
65 * Creates a layer file used for Mapserver's mapfile which represents the
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
66 * floodmap.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
67 *
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
68 * @param flys The D4EArtifact that owns <i>wms</i>.
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
69 * @param wms The WMSLayerFacet that contains information for the layer.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
70 */
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
71 public void createUeskLayer(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
72 D4EArtifact flys,
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
73 WSPLGENLayerFacet wms,
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
74 String style,
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
75 CallContext context
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
76 ) throws FileNotFoundException, IOException
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
77 {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
78 logger.debug("createUeskLayer");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
79
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
80 LayerInfo layerinfo = new LayerInfo();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
81 layerinfo.setName(MS_WSPLGEN_PREFIX + flys.identifier());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
82 layerinfo.setType("POLYGON");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
83 layerinfo.setDirectory(flys.identifier());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
84 layerinfo.setData(WSPLGEN_RESULT_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
85 layerinfo.setTitle(Resources.getMsg(Resources.getLocale(context.getMeta()),
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
86 "floodmap.uesk",
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
87 "Floodmap"));
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
88 layerinfo.setStyle(style);
4994
63617e142dfe Quick-fix for floodmaps. Use the correct projection for DGM.
Raimund Renkert <rrenkert@intevation.de>
parents: 4702
diff changeset
89 RiverAccess access = new RiverAccess(flys);
63617e142dfe Quick-fix for floodmaps. Use the correct projection for DGM.
Raimund Renkert <rrenkert@intevation.de>
parents: 4702
diff changeset
90 String river = access.getRiver();
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
91 layerinfo.setSrid(RiverUtils.getRiverDGMSrid(river));
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
92
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93 String name = MS_LAYER_PREFIX + wms.getName();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
94
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95 Template template = getTemplateByName(WSPLGEN_LAYER_TEMPLATE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
96 if (template == null) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
97 logger.warn("Template '" + WSPLGEN_LAYER_TEMPLATE + "' found.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
98 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 try {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
102 File dir = new File(getShapefileBaseDir(), flys.identifier());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
103 writeLayer(layerinfo, new File(dir, name), template);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105 catch (FileNotFoundException fnfe) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
106 logger.error(fnfe, fnfe);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
107 logger.warn("Unable to write layer: " + name);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
108 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
110
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
111
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
112 /**
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 * Creates a layer file used for Mapserver's mapfile which represents the
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
114 * user defined barriers.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
115 *
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
116 * @param flys The D4EArtifact that owns <i>wms</i>.
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
117 * @param wms The WMSLayerFacet that contains information for the layer.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
118 */
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
119 public void createBarriersLayer(D4EArtifact flys, WMSLayerFacet wms)
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
120 throws FileNotFoundException, IOException
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
121 {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
122 logger.debug("createBarriersLayer");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
123
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
124 //String uuid = flys.identifier();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
125 //File dir = new File(getShapefileBaseDir(), uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
126
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
127 createBarriersLineLayer(flys, wms);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
128 createBarriersPolygonLayer(flys, wms);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
129 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
130
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
131
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
132 protected void createBarriersLineLayer(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
133 D4EArtifact flys,
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
134 WMSLayerFacet wms
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
135 )
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
136 throws FileNotFoundException, IOException
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
137 {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
138 String uuid = flys.identifier();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
139 String group = MS_BARRIERS_PREFIX + uuid;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
140 String groupTitle = "I18N_BARRIERS_TITLE";
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
141
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
142 File dir = new File(getShapefileBaseDir(), uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
143 File test = new File(dir, WSPLGEN_LINES_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
144
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
145 if (!test.exists() || !test.canRead()) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
146 logger.debug("No barrier line layer existing.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
147 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
148 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
149
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
150 LayerInfo lineInfo = new LayerInfo();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
151 lineInfo.setName(MS_LINE_PREFIX + uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
152 lineInfo.setType("LINE");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
153 lineInfo.setDirectory(uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
154 lineInfo.setData(WSPLGEN_LINES_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
155 lineInfo.setTitle("I18N_LINE_SHAPE");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
156 lineInfo.setGroup(group);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
157 lineInfo.setGroupTitle(groupTitle);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
158 lineInfo.setSrid(wms.getSrid());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
159
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
160 String nameLines = MS_LAYER_PREFIX + wms.getName() + "-lines";
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
161
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
162 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
163 if (tpl == null) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
164 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
165 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
166 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
167
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
168 try {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
169 writeLayer(lineInfo, new File(dir, nameLines), tpl);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
170 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
171 catch (FileNotFoundException fnfe) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
172 logger.error(fnfe, fnfe);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
173 logger.warn("Unable to write layer: " + nameLines);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
174 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
175 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
176
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
177 protected void createBarriersPolygonLayer(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
178 D4EArtifact flys,
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
179 WMSLayerFacet wms
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
180 )
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
181 throws FileNotFoundException, IOException
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
182 {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
183 String uuid = flys.identifier();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
184 String group = uuid + MS_BARRIERS_PREFIX;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
185 String groupTitle = "I18N_BARRIERS_TITLE";
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
186
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
187 File dir = new File(getShapefileBaseDir(), uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
188 File test = new File(dir, WSPLGEN_POLYGONS_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
189
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
190 if (!test.exists() || !test.canRead()) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
191 logger.debug("No barrier line layer existing.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
192 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
193 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
194
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
195 LayerInfo polygonInfo = new LayerInfo();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
196 polygonInfo.setName(MS_POLYGONS_PREFIX + uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
197 polygonInfo.setType("POLYGON");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
198 polygonInfo.setDirectory(uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
199 polygonInfo.setData(WSPLGEN_POLYGONS_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
200 polygonInfo.setTitle("I18N_POLYGON_SHAPE");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
201 polygonInfo.setGroup(group);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
202 polygonInfo.setGroupTitle(groupTitle);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
203 polygonInfo.setSrid(wms.getSrid());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
204
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
205 String namePolygons = MS_LAYER_PREFIX + wms.getName() + "-polygons";
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
206
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
207 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
208 if (tpl == null) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
209 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
210 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
211 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
212
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
213 try {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
214 writeLayer(polygonInfo, new File(dir, namePolygons), tpl);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
215 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
216 catch (FileNotFoundException fnfe) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
217 logger.error(fnfe, fnfe);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
218 logger.warn("Unable to write layer: " + namePolygons);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
219 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
220 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
221
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
222
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
223 /**
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
224 * Creates a layer file used for Mapserver's mapfile which represents the
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
225 * shape files uploaded by the user.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
226 *
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
227 * @param flys The D4EArtifact that owns <i>wms</i>.
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
228 * @param wms The WMSLayerFacet that contains information for the layer.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
229 */
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
230 public void createUserShapeLayer(D4EArtifact flys, WMSLayerFacet wms)
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
231 throws FileNotFoundException, IOException
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
232 {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
233 logger.debug("createUserShapeLayer");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
234
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
235 String uuid = flys.identifier();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
236 File dir = new File(getShapefileBaseDir(), uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
237 File test = new File(dir, WSPLGEN_USER_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
238
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
239 if (!test.exists() || !test.canRead()) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
240 logger.debug("No user layer existing.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
241 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
242 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
243
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
244 File userShape = new File(dir, WSPLGEN_USER_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
245 ShpFiles sf = new ShpFiles(userShape);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
246 ShapefileReader sfr = new ShapefileReader(sf, true, false, null);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
247 ShapefileHeader sfh = sfr.getHeader();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
248
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
249 String group = uuid + MS_USERSHAPE_PREFIX;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
250 String groupTitle = "I18N_USER_SHAPE_TITLE";
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
251
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
252 LayerInfo info = new LayerInfo();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
253 info.setName(MS_USERSHAPE_PREFIX + uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
254 if (sfh.getShapeType().isLineType()) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
255 info.setType("LINE");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
256 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
257 else if (sfh.getShapeType().isPolygonType()) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
258 info.setType("POLYGON");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
259 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
260 else {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
261 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
262 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
263 info.setDirectory(uuid);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
264 info.setData(WSPLGEN_USER_SHAPE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
265 info.setTitle("I18N_USER_SHAPE");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
266 info.setGroup(group);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
267 info.setGroupTitle(groupTitle);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
268 info.setSrid(wms.getSrid());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
269
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
270 String nameUser = MS_LAYER_PREFIX + wms.getName();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
271
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
272 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
273 if (tpl == null) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
274 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
275 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
276 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
277
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
278 try {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
279 writeLayer(info, new File(dir, nameUser), tpl);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
280 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
281 catch (FileNotFoundException fnfe) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
282 logger.error(fnfe, fnfe);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
283 logger.warn("Unable to write layer: " + nameUser);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
284 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
285
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
286 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
287
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
288
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
289 /**
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
290 * Creates a layer file used for Mapserver's mapfile which represents
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
291 * geometries from database.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
292 *
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
293 * @param flys The D4EArtifact that owns <i>wms</i>.
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
294 * @param wms The WMSLayerFacet that contains information for the layer.
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
295 */
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
296 public void createDatabaseLayer(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
297 D4EArtifact flys,
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
298 WMSDBLayerFacet wms,
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
299 String style
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
300 )
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
301 throws FileNotFoundException, IOException
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
302 {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
303 logger.debug("createDatabaseLayer");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
304
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
305 LayerInfo layerinfo = new LayerInfo();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
306 layerinfo.setName(wms.getName() + "-" + flys.identifier());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
307 layerinfo.setType(wms.getGeometryType());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
308 layerinfo.setFilter(wms.getFilter());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
309 layerinfo.setData(wms.getData());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
310 layerinfo.setTitle(wms.getDescription());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
311 layerinfo.setStyle(style);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
312 if(wms.getExtent() != null) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
313 layerinfo.setExtent(GeometryUtils.jtsBoundsToOLBounds(wms.getExtent()));
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
314 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
315 layerinfo.setConnection(wms.getConnection());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
316 layerinfo.setConnectionType(wms.getConnectionType());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
317 layerinfo.setLabelItem(wms.getLabelItem());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
318 layerinfo.setSrid(wms.getSrid());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
319
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
320 String name = MS_LAYER_PREFIX + wms.getName();
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
321
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
322 Template template = getTemplateByName(DB_LAYER_TEMPLATE);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
323 if (template == null) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
324 logger.warn("Template '" + DB_LAYER_TEMPLATE + "' found.");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
325 return;
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
326 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
327
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
328 try {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
329 File dir = new File(getShapefileBaseDir(), flys.identifier());
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
330 writeLayer(layerinfo, new File(dir, name), template);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
331 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
332 catch (FileNotFoundException fnfe) {
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
333 logger.error(fnfe, fnfe);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
334 logger.warn("Unable to write layer: " + name);
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
335 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
336 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
337
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
338 @Override
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
339 protected String getMapfilePath() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
340 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPFILE_PATH);
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
341 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
342
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
343 @Override
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
344 protected String getMapfileTemplate() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
345 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPFILE_TEMPLATE);
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
346 }
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
347
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
348 }

http://dive4elements.wald.intevation.org