Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java @ 625:40ead2d2a08d
Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
gnv-artifacts/trunk@697 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 22 Feb 2010 11:29:34 +0000 |
parents | 6a3a1da5e680 |
children | 9ba6bb85d6dd |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java Mon Feb 22 10:43:25 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java Mon Feb 22 11:29:34 2010 +0000 @@ -2,9 +2,7 @@ import de.intevation.artifactdatabase.Config; import de.intevation.artifactdatabase.XMLUtils; - import de.intevation.artifacts.ArtifactNamespaceContext; - import de.intevation.gnv.wms.LayerInfo; import java.io.File; @@ -13,11 +11,9 @@ import java.io.IOException; import java.io.StringWriter; import java.io.Writer; - import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Properties; import javax.xml.xpath.XPathConstants; @@ -25,13 +21,13 @@ import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; - import org.apache.velocity.app.VelocityEngine; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; + /** * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) */ @@ -39,19 +35,16 @@ extends Thread { public static final String TEMPLATE_PATH = - "/artifact-database/map-generator/templates/path/text()"; + "/artifact-database/gnv/map-generator/templates/path/text()"; public static final String TEMPLATE_MAPFILE = - "/artifact-database/map-generator/templates/maptemplate/text()"; + "/artifact-database/gnv/map-generator/templates/maptemplate/text()"; public static final String MAPFILE_PATH = - "/artifact-database/map-generator/mapfile/path/text()"; - - public static final String MAPFILE_NAME = - "/artifact-database/map-generator/mapfile/name/text()"; + "/artifact-database/gnv/map-generator/mapfile/@path"; public static final String SHAPEFILE_BASE_DIR = - "/artifact-database/map-generator/mapfile/shapefiles/text()"; + "/artifact-database/gnv/shapefile-directory/@path"; public static final String VELOCITY_LOGFILE = "/artifact-database/velocity/logfile/@path"; @@ -71,6 +64,11 @@ private static MapfileGenerator instance; + private File mapfile; + private String shapefileDirectory; + private String templatePath; + private String velocityLogfile; + private VelocityEngine velocityEngine; private boolean lock[]; @@ -185,15 +183,16 @@ protected String getTemplateBaseDir() { - if (templatePath == null) + if (templatePath == null) { templatePath = Config.getStringXPath(TEMPLATE_PATH); + templatePath = Config.replaceConfigDir(templatePath); + } return templatePath; } protected Template getTemplateByName(String model) { - String templatePath = getTemplateBaseDir(); if (model.indexOf(".vm") < 0) { model = model.concat(".vm"); } @@ -224,7 +223,23 @@ protected String getShapefileBaseDir() { - return Config.getStringXPath(SHAPEFILE_BASE_DIR); + if (shapefileDirectory == null) { + shapefileDirectory = Config.getStringXPath(SHAPEFILE_BASE_DIR); + shapefileDirectory = Config.replaceConfigDir(shapefileDirectory); + } + + return shapefileDirectory; + } + + + protected File getMapfile() { + if (mapfile == null) { + String tmp = Config.getStringXPath(MAPFILE_PATH); + tmp = Config.replaceConfigDir(tmp); + mapfile = new File(tmp); + } + + return mapfile; } @@ -320,8 +335,6 @@ protected void writeMapfile(List layers) { - String pathName = Config.getStringXPath(MAPFILE_PATH); - String mapName = Config.getStringXPath(MAPFILE_NAME); String tmpMapName = "mapfile" + new Date().getTime(); int layersize = layers.size(); @@ -347,13 +360,12 @@ } } + File map = getMapfile(); Writer writer = null; File tmp = null; - File map = null; try { - tmp = new File(pathName, tmpMapName); - map = new File(pathName, mapName); + tmp = new File(map.getParent(), tmpMapName); tmp.createNewFile(); writer = new FileWriter(tmp);