comparison flys-artifacts/src/main/java/de/intevation/flys/utils/RiverMapfileGenerator.java @ 4656:442fbb290fa8

Introduce river mapfile generation (WARNING: Changes in config xml files required!). On startup the RiverMapfileGeneratorStarter is called by the server app. The starter invokes a call to RiverMapfileGenerator.generate() which reads all available rivers from the database and generates layers for each river (in theory...uncompleted) in a river.map file. The old MapfileGenerator which generates layers that have artifact dependencies is now in ArtifactMapfileGenerator.
author Christian Lins <christian.lins@intevation.de>
date Tue, 11 Dec 2012 15:24:24 +0100
parents 861c47e0a8a0
children 13abfb1bcb75
comparison
equal deleted inserted replaced
4655:cd44d28d0fbc 4656:442fbb290fa8
2 2
3 import de.intevation.flys.artifacts.model.LayerInfo; 3 import de.intevation.flys.artifacts.model.LayerInfo;
4 import de.intevation.flys.artifacts.model.RiverFactory; 4 import de.intevation.flys.artifacts.model.RiverFactory;
5 import de.intevation.flys.model.River; 5 import de.intevation.flys.model.River;
6 6
7 import java.io.File;
8 import java.io.FileNotFoundException;
7 import java.util.List; 9 import java.util.List;
8 10
11 import org.apache.log4j.Logger;
12 import org.apache.velocity.Template;
13
9 public class RiverMapfileGenerator extends MapfileGenerator { 14 public class RiverMapfileGenerator extends MapfileGenerator {
15
16 private static Logger logger = Logger.getLogger(RiverMapfileGenerator.class);
10 17
11 /** 18 /**
12 * Generate river axis mapfile. 19 * Generate river axis mapfile.
13 */ 20 */
14 @Override 21 @Override
15 protected void generate() { 22 public void generate() {
16 List<River> rivers = RiverFactory.getRivers(); 23 List<River> rivers = RiverFactory.getRivers();
17 24
18 for (River river : rivers) { 25 for (River river : rivers) {
19 createRiverAxisLayer( 26 createRiverAxisLayer(
20 river.getName(), 27 river.getName(),
27 protected void createRiverAxisLayer(String riverName, int riverID, String srid, String extend) { 34 protected void createRiverAxisLayer(String riverName, int riverID, String srid, String extend) {
28 LayerInfo layerInfo = new LayerInfo(); 35 LayerInfo layerInfo = new LayerInfo();
29 layerInfo.setName(riverName); 36 layerInfo.setName(riverName);
30 layerInfo.setSrid(srid); 37 layerInfo.setSrid(srid);
31 layerInfo.setExtent(extend); 38 layerInfo.setExtent(extend);
39
40 File layerFile = new File(getMapfilePath());
41 Template template = getTemplateByName(DB_LAYER_TEMPLATE);
42 if (template == null) {
43 logger.warn("Template '" + DB_LAYER_TEMPLATE + "' found.");
44 return;
45 }
46
47 try {
48 writeLayer(layerInfo, layerFile, template);
49 }
50 catch (FileNotFoundException e) {
51 logger.warn(e.getLocalizedMessage(), e);
52 }
32 } 53 }
33 54
55 @Override
56 protected String getVelocityLogfile() {
57 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_VELOCITY_LOGFILE);
58 }
59
60 @Override
61 protected String getMapserverTemplatePath() {
62 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH);
63 }
64
65 @Override
66 protected String getMapserverUrl() {
67 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPSERVER_URL);
68 }
69
70 @Override
71 protected String getMapfilePath() {
72 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPFILE_PATH);
73 }
74
75 @Override
76 protected String getMapfileTemplate() {
77 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPFILE_TEMPLATE);
78 }
34 } 79 }

http://dive4elements.wald.intevation.org