comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java @ 2095:8cb679d4ec49

Implemented initialize() in FloodMapState to enable cloning floodmaps. flys-artifacts/trunk@3642 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 10 Jan 2012 11:50:01 +0000
parents ebc2aa64c1be
children a78dafdd8590
comparison
equal deleted inserted replaced
2094:22732713c54d 2095:8cb679d4ec49
38 import de.intevation.flys.artifacts.FLYSArtifact; 38 import de.intevation.flys.artifacts.FLYSArtifact;
39 import de.intevation.flys.artifacts.context.FLYSContext; 39 import de.intevation.flys.artifacts.context.FLYSContext;
40 import de.intevation.flys.artifacts.model.CalculationMessage; 40 import de.intevation.flys.artifacts.model.CalculationMessage;
41 import de.intevation.flys.artifacts.model.CalculationResult; 41 import de.intevation.flys.artifacts.model.CalculationResult;
42 import de.intevation.flys.artifacts.model.FacetTypes; 42 import de.intevation.flys.artifacts.model.FacetTypes;
43 import de.intevation.flys.artifacts.model.WMSLayerFacet;
43 import de.intevation.flys.artifacts.model.WQKms; 44 import de.intevation.flys.artifacts.model.WQKms;
44 import de.intevation.flys.artifacts.model.WSPLGENCalculation; 45 import de.intevation.flys.artifacts.model.WSPLGENCalculation;
45 import de.intevation.flys.artifacts.model.WSPLGENJob; 46 import de.intevation.flys.artifacts.model.WSPLGENJob;
46 import de.intevation.flys.artifacts.model.WSPLGENReportFacet; 47 import de.intevation.flys.artifacts.model.WSPLGENReportFacet;
47 import de.intevation.flys.artifacts.resources.Resources; 48 import de.intevation.flys.artifacts.resources.Resources;
65 66
66 public static final String KEEP_ARTIFACT_DIR = 67 public static final String KEEP_ARTIFACT_DIR =
67 System.getProperty("flys.uesk.keep.artifactsdir", "false"); 68 System.getProperty("flys.uesk.keep.artifactsdir", "false");
68 69
69 70
71 public static final String OUTPUT_NAME = "floodmap";
72
70 public static final String WSP_ARTIFACT = "wsp"; 73 public static final String WSP_ARTIFACT = "wsp";
71 74
72 public static final String WINFO_WSP_STATE_ID = "state.winfo.waterlevel"; 75 public static final String WINFO_WSP_STATE_ID = "state.winfo.waterlevel";
73 76
74 public static final String WSPLGEN_PARAMETER_FILE = "wsplgen.par"; 77 public static final String WSPLGEN_PARAMETER_FILE = "wsplgen.par";
81 public static final String WSPLGEN_OUTPUT_FILE = "wsplgen.shp"; 84 public static final String WSPLGEN_OUTPUT_FILE = "wsplgen.shp";
82 85
83 public static final int WSPLGEN_DEFAULT_OUTPUT = 0; 86 public static final int WSPLGEN_DEFAULT_OUTPUT = 0;
84 87
85 88
89 /**
90 * @param orig
91 * @param owner
92 * @param context
93 * @param callMeta
94 */
86 @Override 95 @Override
87 public void initialize(Artifact orig, Object context, CallMeta callMeta) { 96 public void initialize(
97 Artifact orig,
98 Artifact owner,
99 Object context,
100 CallMeta callMeta
101 ) {
88 logger.info("Initialize State with Artifact: " + orig.identifier()); 102 logger.info("Initialize State with Artifact: " + orig.identifier());
89 } 103
90 104 copyShapeDir(orig, owner);
105 modifyFacets(orig, owner, context, callMeta);
106
107 MapfileGenerator.getInstance().update();
108 }
109
110
111 protected void copyShapeDir(Artifact orig, Artifact owner) {
112 File origDir = getDirectory((FLYSArtifact) orig);
113 File thisDir = getDirectory((FLYSArtifact) owner);
114
115 FileTools.copyDirectory(origDir, thisDir);
116 }
117
118
119 protected void modifyFacets(
120 Artifact orig,
121 Artifact owner,
122 Object context,
123 CallMeta callMeta
124 ) {
125 FLYSArtifact flys = (FLYSArtifact) owner;
126 List<Facet> facets = flys.getFacets();
127 if (facets == null || facets.size() == 0) {
128 logger.warn("No facets for '" + OUTPUT_NAME + "' given!");
129 return;
130 }
131
132 for (Facet facet: facets) {
133 if (facet instanceof WMSLayerFacet) {
134 WMSLayerFacet wms = (WMSLayerFacet) facet;
135
136 List<String> layers = wms.getLayers();
137
138 for (String layer: layers) {
139 if (layer.startsWith(MapfileGenerator.MS_WSPLGEN_PREFIX)) {
140 wms.removeLayer(layer);
141
142 String newLayer = MapfileGenerator.MS_WSPLGEN_PREFIX +
143 owner.identifier();
144
145 wms.addLayer(newLayer);
146
147 logger.debug(
148 "Replaced layer: " + layer + " with " + newLayer);
149 }
150 }
151 }
152 }
153 }
91 154
92 155
93 @Override 156 @Override
94 public Object computeAdvance( 157 public Object computeAdvance(
95 FLYSArtifact artifact, 158 FLYSArtifact artifact,

http://dive4elements.wald.intevation.org