Mercurial > dive4elements > gnv-client
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 } |