annotate flys-artifacts/src/main/java/de/intevation/flys/mapserver/ArtifactMapfileGenerator.java @ 5087:cbfdd7376009 mapgenfix

ArtifactMapfileGenerator can now generate user shape mapfiles again.
author Christian Lins <christian.lins@intevation.de>
date Mon, 25 Feb 2013 11:51:17 +0100
parents cc50e1b9fc60
children cfc5540a4eec
rev   line source
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.mapserver;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
2
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
3 import de.intevation.artifacts.CallContext;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
4 import de.intevation.flys.artifacts.FLYSArtifact;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
5 import de.intevation.flys.artifacts.access.RiverAccess;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
6 import de.intevation.flys.artifacts.model.LayerInfo;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
7 import de.intevation.flys.artifacts.model.map.WMSDBLayerFacet;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
8 import de.intevation.flys.artifacts.model.map.WMSLayerFacet;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
9 import de.intevation.flys.artifacts.model.map.WSPLGENLayerFacet;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
10 import de.intevation.flys.artifacts.resources.Resources;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
11 import de.intevation.flys.utils.FLYSUtils;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
12 import de.intevation.flys.utils.GeometryUtils;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
13
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
14 import java.io.File;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
15 import java.io.FileNotFoundException;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
16 import java.io.IOException;
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
17 import java.util.ArrayList;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
18 import java.util.List;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
19
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
20 import org.apache.log4j.Logger;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
21 import org.apache.velocity.Template;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
22 import org.geotools.data.shapefile.ShpFiles;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
23 import org.geotools.data.shapefile.shp.ShapefileHeader;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
24 import org.geotools.data.shapefile.shp.ShapefileReader;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
25
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
26 public class ArtifactMapfileGenerator extends MapfileGenerator {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
28 private static Logger logger = Logger.getLogger(ArtifactMapfileGenerator.class);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
29
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
30 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
31 protected String getVelocityLogfile() {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
32 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_VELOCITY_LOGFILE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
33 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
34
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
35 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
36 protected String getMapserverTemplatePath() {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
37 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPSERVER_TEMPLATE_PATH);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
38 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
39
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
40 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
41 protected String getMapserverUrl() {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
42 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPSERVER_URL);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
43 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
44
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
45 /**
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
46 * Generates flys.map file that contains layers of all
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
47 * projects and types (floodmap, user defined, barriers).
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
48 */
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
49 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
50 public void generate() throws IOException
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
51 {
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
52 // Get all directories below "shapefiles/"
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
53 File[] prjDirs = getProjectDirs();
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
54
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
55 // Look for appropriate shapefiles that we can use as layers
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
56 List<File> layerShapes = searchForLayerShapes(prjDirs);
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
57
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
58 List<String> layerSnippets = new ArrayList<String>();
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
59
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
60 // Generate layer snippet for each shapefile
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
61 for (File layerShape : layerShapes) {
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
62 String fileName = layerShape.getName();
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
63 if (fileName.startsWith(MS_PREFIX_BARRIERS)) {
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
64
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
65 }
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
66 else if (fileName.startsWith(MS_PREFIX_USER)) {
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
67 File userLayer = createUserShapeLayer(layerShape);
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
68 if (userLayer != null) {
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
69 layerSnippets.add(userLayer.getCanonicalPath());
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
70 }
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
71 }
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
72 else if (fileName.startsWith(MS_PREFIX_WSPLGEN)) {
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
73
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
74 }
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
75 }
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
76
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
77 writeMapfile(layerSnippets);
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
78 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
79
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
80 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
81 * Creates a layer file used for Mapserver's mapfile which represents the
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
82 * floodmap.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
83 *
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
84 * @param flys The FLYSArtifact that owns <i>wms</i>.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
85 * @param wms The WMSLayerFacet that contains information for the layer.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
86 */
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
87 protected void createUeskLayer(
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
88 FLYSArtifact flys,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
89 WSPLGENLayerFacet wms,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
90 String style,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
91 CallContext context
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
92 ) throws FileNotFoundException, IOException
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
94 logger.debug("createUeskLayer");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
96 LayerInfo layerinfo = new LayerInfo();
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
97 layerinfo.setName(MS_PREFIX_WSPLGEN + flys.identifier());
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
98 layerinfo.setType("POLYGON");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99 layerinfo.setDirectory(flys.identifier());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100 layerinfo.setData(WSPLGEN_RESULT_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 layerinfo.setTitle(Resources.getMsg(Resources.getLocale(context.getMeta()),
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
102 "floodmap.uesk",
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
103 "Floodmap"));
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104 layerinfo.setStyle(style);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105 RiverAccess access = new RiverAccess(flys);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
106 String river = access.getRiver();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
107 layerinfo.setSrid(FLYSUtils.getRiverDGMSrid(river));
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
108
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109 String name = MS_LAYER_PREFIX + wms.getName();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
110
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
111 Template template = getTemplateByName(WSPLGEN_LAYER_TEMPLATE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
112 if (template == null) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 logger.warn("Template '" + WSPLGEN_LAYER_TEMPLATE + "' found.");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
114 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
115 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
116
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
117 try {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
118 File dir = new File(getShapefileBaseDir(), flys.identifier());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
119 writeLayer(layerinfo, new File(dir, name), template);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
120 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
121 catch (FileNotFoundException fnfe) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
122 logger.error(fnfe, fnfe);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
123 logger.warn("Unable to write layer: " + name);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
124 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
125 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
126
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
127
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
128 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
129 * Creates a layer file used for Mapserver's mapfile which represents the
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
130 * user defined barriers.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
131 *
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
132 * @param flys The FLYSArtifact that owns <i>wms</i>.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
133 * @param wms The WMSLayerFacet that contains information for the layer.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
134 */
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
135 protected void createBarriersLayer(FLYSArtifact flys, WMSLayerFacet wms)
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
136 throws FileNotFoundException, IOException
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
137 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
138 logger.debug("createBarriersLayer");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
139
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
140 //String uuid = flys.identifier();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
141 //File dir = new File(getShapefileBaseDir(), uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
142
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
143 createBarriersLineLayer(flys, wms);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
144 createBarriersPolygonLayer(flys, wms);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
145 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
146
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
147
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
148 protected void createBarriersLineLayer(
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
149 FLYSArtifact flys,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
150 WMSLayerFacet wms
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
151 )
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
152 throws FileNotFoundException, IOException
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
153 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
154 String uuid = flys.identifier();
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
155 String group = MS_PREFIX_BARRIERS + uuid;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
156 String groupTitle = "I18N_BARRIERS_TITLE";
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
157
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
158 File dir = new File(getShapefileBaseDir(), uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
159 File test = new File(dir, WSPLGEN_LINES_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
160
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
161 if (!test.exists() || !test.canRead()) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
162 logger.debug("No barrier line layer existing.");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
163 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
164 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
165
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
166 LayerInfo lineInfo = new LayerInfo();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
167 lineInfo.setName(MS_LINE_PREFIX + uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
168 lineInfo.setType("LINE");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
169 lineInfo.setDirectory(uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
170 lineInfo.setData(WSPLGEN_LINES_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
171 lineInfo.setTitle("I18N_LINE_SHAPE");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
172 lineInfo.setGroup(group);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
173 lineInfo.setGroupTitle(groupTitle);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
174 lineInfo.setSrid(wms.getSrid());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
175
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
176 String nameLines = MS_LAYER_PREFIX + wms.getName() + "-lines";
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
177
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
178 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
179 if (tpl == null) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
180 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found.");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
181 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
182 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
183
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
184 try {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
185 writeLayer(lineInfo, new File(dir, nameLines), tpl);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
186 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
187 catch (FileNotFoundException fnfe) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
188 logger.error(fnfe, fnfe);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
189 logger.warn("Unable to write layer: " + nameLines);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
190 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
191 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
192
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
193 protected void createBarriersPolygonLayer(
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
194 FLYSArtifact flys,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
195 WMSLayerFacet wms
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
196 )
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
197 throws FileNotFoundException, IOException
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
198 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
199 String uuid = flys.identifier();
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
200 String group = uuid + MS_PREFIX_BARRIERS;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
201 String groupTitle = "I18N_BARRIERS_TITLE";
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
202
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
203 File dir = new File(getShapefileBaseDir(), uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
204 File test = new File(dir, WSPLGEN_POLYGONS_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
205
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
206 if (!test.exists() || !test.canRead()) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
207 logger.debug("No barrier line layer existing.");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
208 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
209 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
210
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
211 LayerInfo polygonInfo = new LayerInfo();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
212 polygonInfo.setName(MS_POLYGONS_PREFIX + uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
213 polygonInfo.setType("POLYGON");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
214 polygonInfo.setDirectory(uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
215 polygonInfo.setData(WSPLGEN_POLYGONS_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
216 polygonInfo.setTitle("I18N_POLYGON_SHAPE");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
217 polygonInfo.setGroup(group);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
218 polygonInfo.setGroupTitle(groupTitle);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
219 polygonInfo.setSrid(wms.getSrid());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
220
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
221 String namePolygons = MS_LAYER_PREFIX + wms.getName() + "-polygons";
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
222
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
223 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
224 if (tpl == null) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
225 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found.");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
226 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
227 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
228
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
229 try {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
230 writeLayer(polygonInfo, new File(dir, namePolygons), tpl);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
231 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
232 catch (FileNotFoundException fnfe) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
233 logger.error(fnfe, fnfe);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
234 logger.warn("Unable to write layer: " + namePolygons);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
235 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
236 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
237
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
238 protected String uuidFromPath(String path) {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
239 logger.debug("uuidFromPath(" + path + ")");
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
240 int i1 = 0;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
241 int i2 = 0;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
242
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
243 for(;;) {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
244 int i = path.indexOf('/', i2 + 1);
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
245 if (i == -1) {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
246 return path.substring(i1 + 1, i2);
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
247 }
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
248 else {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
249 i1 = i2;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
250 i2 = i;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
251 }
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
252 }
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
253 }
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
254
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
255 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
256 * Creates a layer file used for Mapserver's mapfile which represents the
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
257 * shape files uploaded by the user.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
258 */
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
259 protected File createUserShapeLayer(File file)
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
260 throws FileNotFoundException, IOException
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
261 {
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
262 String uuid = uuidFromPath(file.getAbsolutePath());
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
263 logger.debug("createUserShapeLayer(): uuid=" + uuid);
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
264
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
265 File dir = new File(getShapefileBaseDir(), uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
266 File test = new File(dir, WSPLGEN_USER_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
267
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
268 if (!test.exists() || !test.canRead()) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
269 logger.debug("No user layer existing.");
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
270 return null;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
271 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
272
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
273 File userShape = new File(dir, WSPLGEN_USER_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
274 ShpFiles sf = new ShpFiles(userShape);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
275 ShapefileReader sfr = new ShapefileReader(sf, true, false, null);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
276 ShapefileHeader sfh = sfr.getHeader();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
277
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
278 String group = uuid + MS_PREFIX_USER;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
279 String groupTitle = "I18N_USER_SHAPE_TITLE";
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
280
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
281 LayerInfo info = new LayerInfo();
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
282 info.setName(MS_PREFIX_USER + uuid);
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
283 if (sfh.getShapeType().isLineType()) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
284 info.setType("LINE");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
285 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
286 else if (sfh.getShapeType().isPolygonType()) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
287 info.setType("POLYGON");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
288 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
289 else {
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
290 logger.debug("createUserShapeLayer(): unexpected geometry type");
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
291 return null;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
292 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
293 info.setDirectory(uuid);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
294 info.setData(WSPLGEN_USER_SHAPE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
295 info.setTitle("I18N_USER_SHAPE");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
296 info.setGroup(group);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
297 info.setGroupTitle(groupTitle);
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
298 //info.setSrid(wms.getSrid()); // FIXME: Required?
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
299
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
300 String nameUser = "user.layer"; //MS_LAYER_PREFIX + wms.getName();
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
301
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
302 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
303 if (tpl == null) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
304 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found.");
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
305 return null;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
306 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
307
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
308 File layerFile = new File(dir, nameUser);
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
309
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
310 try {
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
311 writeLayer(info, layerFile, tpl);
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
312 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
313 catch (FileNotFoundException fnfe) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
314 logger.error(fnfe, fnfe);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
315 logger.warn("Unable to write layer: " + nameUser);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
316 }
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
317 return layerFile;
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
318 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
319
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
320
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
321 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
322 * Creates a layer file used for Mapserver's mapfile which represents
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
323 * geometries from database.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
324 *
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
325 * @param flys The FLYSArtifact that owns <i>wms</i>.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
326 * @param wms The WMSLayerFacet that contains information for the layer.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
327 */
5023
1da61095040c Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents: 5022
diff changeset
328 protected void createDatabaseLayer(
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
329 FLYSArtifact flys,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
330 WMSDBLayerFacet wms,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
331 String style
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
332 )
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
333 throws FileNotFoundException, IOException
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
334 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
335 logger.debug("createDatabaseLayer");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
336
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
337 LayerInfo layerinfo = new LayerInfo();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
338 layerinfo.setName(wms.getName() + "-" + flys.identifier());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
339 layerinfo.setType(wms.getGeometryType());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
340 layerinfo.setFilter(wms.getFilter());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
341 layerinfo.setData(wms.getData());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
342 layerinfo.setTitle(wms.getDescription());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
343 layerinfo.setStyle(style);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
344 if(wms.getExtent() != null) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
345 layerinfo.setExtent(GeometryUtils.jtsBoundsToOLBounds(wms.getExtent()));
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
346 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
347 layerinfo.setConnection(wms.getConnection());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
348 layerinfo.setConnectionType(wms.getConnectionType());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
349 layerinfo.setLabelItem(wms.getLabelItem());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
350 layerinfo.setSrid(wms.getSrid());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
351
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
352 String name = MS_LAYER_PREFIX + wms.getName();
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
353
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
354 Template template = getTemplateByName(DB_LAYER_TEMPLATE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
355 if (template == null) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
356 logger.warn("Template '" + DB_LAYER_TEMPLATE + "' found.");
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
357 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
358 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
359
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
360 try {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
361 File dir = new File(getShapefileBaseDir(), flys.identifier());
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
362 writeLayer(layerinfo, new File(dir, name), template);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
363 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
364 catch (FileNotFoundException fnfe) {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
365 logger.error(fnfe, fnfe);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
366 logger.warn("Unable to write layer: " + name);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
367 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
368 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
369
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
370 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
371 protected String getMapfilePath() {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
372 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPFILE_PATH);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
373 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
374
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
375 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
376 protected String getMapfileTemplate() {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
377 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPFILE_TEMPLATE);
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
378 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
379
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
380 }

http://dive4elements.wald.intevation.org