comparison gnv-artifacts/src/main/java/de/intevation/gnv/state/layer/LayerOutputState.java @ 616:93978859fa9e

Added the Configuration and the Classes for the new Product Layer. The Product does not generate any output at this Time. gnv-artifacts/trunk@686 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 12 Feb 2010 18:04:58 +0000
parents
children 4fc97074eb90
comparison
equal deleted inserted replaced
615:01054ddccb0f 616:93978859fa9e
1 /**
2 *
3 */
4 package de.intevation.gnv.state.layer;
5
6 import java.io.OutputStream;
7 import java.util.Collection;
8 import java.util.Iterator;
9
10 import org.apache.log4j.Logger;
11 import org.w3c.dom.Document;
12 import org.w3c.dom.Node;
13
14 import de.intevation.artifactdatabase.Config;
15 import de.intevation.artifactdatabase.XMLUtils;
16 import de.intevation.artifacts.ArtifactNamespaceContext;
17 import de.intevation.artifacts.CallContext;
18 import de.intevation.gnv.geobackend.base.Result;
19 import de.intevation.gnv.state.InputData;
20 import de.intevation.gnv.state.OutputStateBase;
21 import de.intevation.gnv.state.exception.StateException;
22
23 /**
24 * @author Tim Englich <tim.englich@intevation.de>
25 *
26 */
27 public class LayerOutputState extends OutputStateBase {
28
29 /**
30 * the logger, used to log exceptions and additonaly information
31 */
32 private static Logger log = Logger.getLogger(LayerOutputState.class);
33
34 /**
35 * The UID of this Class.
36 */
37 private static final long serialVersionUID = 9180957321704424049L;
38
39 /**
40 * The ID for the Query fetching the Layer from the DB
41 */
42 private String dataQueryID = null;
43 /**
44 * Constructor
45 */
46 public LayerOutputState() {
47 super();
48 }
49
50 /**
51 * @see de.intevation.gnv.state.OutputState#out(org.w3c.dom.Document,
52 * java.util.Collection, java.io.OutputStream,
53 * java.lang.String, de.intevation.artifacts.CallContext)
54 */
55 public void out(Document format, Collection<InputData> inputData,
56 OutputStream outputStream, String uuid,
57 CallContext callContext) throws StateException {
58
59 log.debug("LayerOutputState.out");
60 String outputMode = XMLUtils.xpathString(
61 format, XPATH_OUTPUT_MODE, ArtifactNamespaceContext.INSTANCE);
62 if (outputMode.equalsIgnoreCase("wms")) {
63 Collection<Result> data = this.fetchData();
64 // TODO USE ME
65 }else if (outputMode.equalsIgnoreCase("zip")){
66 Collection<Result> data = this.fetchData();
67 // TODO USE ME
68 }
69 }
70
71
72 protected Collection<Result> fetchData(){
73 log.debug("LayerOutputState.fetchData");
74 // TODO PUT ALL in CACHE
75 Collection<Result> result = this.getData(this.queryID);
76 Collection<Result> data = null;
77 if (result != null){
78 Iterator<Result> it = result.iterator();
79 String table = null;
80 String where = null;
81 if (it.hasNext()){
82 Result resultValue = it.next();
83 table = resultValue.getString(0);
84 where = resultValue.getString(1);
85 // TODO ADD SpatialFilter if Geometry is available
86 }
87
88 data = null; // TODO Fetch the Data for the Layer and Trim the Geometries
89 // using the Geometry if on is available.
90 }
91 return data;
92 }
93
94 @Override
95 public void setup(Node configuration) {
96 log.debug("LayerOutputState.setup");
97 super.setup(configuration);
98 this.dataQueryID = Config.getStringXPath(configuration,"queryID-layerdata");
99 }
100
101 }

http://dive4elements.wald.intevation.org