Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/ReferenceCurveState.java @ 6693:88bb0c794833
issue1391: Enable GaugeDischarge artifact to directly load a table by its ID
This allows us to use the GaugeDischargeArtifact for any discharge
tables that we have in our database. The name of the created facet
is taken from the ids string as is also usual in the WMS artifacts.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Mon, 29 Jul 2013 12:19:57 +0200 |
parents | af13ceeba52a |
children | e4606eae8ea5 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5867
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
9 package org.dive4elements.river.artifacts.states; |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
10 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
11 import org.dive4elements.artifactdatabase.state.Facet; |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
12 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
13 import org.dive4elements.artifacts.CallContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
14 |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
15 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
16 import org.dive4elements.river.artifacts.WINFOArtifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
17 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.CalculationResult; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
19 import org.dive4elements.river.artifacts.model.DataFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
20 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
21 import org.dive4elements.river.artifacts.model.ReferenceCurveFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
22 import org.dive4elements.river.artifacts.model.ReportFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
2760
diff
changeset
|
23 import org.dive4elements.river.artifacts.model.WWQQ; |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
24 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
25 import java.util.List; |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
26 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
27 import org.apache.log4j.Logger; |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
28 |
2251
c9c788eea200
Improved reference curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2222
diff
changeset
|
29 |
2760
23b4ff116015
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2326
diff
changeset
|
30 /** State of WINFO in which reference curves can be produced. */ |
2170
90dfc25007f1
Added transition/state stubs for "Bezugslinienverfahren".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 public class ReferenceCurveState |
90dfc25007f1
Added transition/state stubs for "Bezugslinienverfahren".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 extends DefaultState |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
33 implements FacetTypes |
2170
90dfc25007f1
Added transition/state stubs for "Bezugslinienverfahren".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 { |
2259
0dcb8326be08
Add a not-yet-looked-at CSV facet for Reference Curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2251
diff
changeset
|
35 private static Logger logger = Logger.getLogger(ReferenceCurveState.class); |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
36 |
2760
23b4ff116015
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2326
diff
changeset
|
37 |
2170
90dfc25007f1
Added transition/state stubs for "Bezugslinienverfahren".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 public ReferenceCurveState() { |
90dfc25007f1
Added transition/state stubs for "Bezugslinienverfahren".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 } |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
40 |
2760
23b4ff116015
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2326
diff
changeset
|
41 |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
42 @Override |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
43 public Object computeAdvance( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
44 D4EArtifact artifact, |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
45 String hash, |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
46 CallContext context, |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
47 List<Facet> facets, |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
48 Object old |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
49 ) { |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
50 if (!(artifact instanceof WINFOArtifact)) { |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
51 return null; |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
52 } |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
53 |
2259
0dcb8326be08
Add a not-yet-looked-at CSV facet for Reference Curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2251
diff
changeset
|
54 String id = getID(); |
0dcb8326be08
Add a not-yet-looked-at CSV facet for Reference Curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2251
diff
changeset
|
55 |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
56 WINFOArtifact winfo = (WINFOArtifact)artifact; |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
57 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
58 CalculationResult res = old instanceof CalculationResult |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
59 ? (CalculationResult)old |
2326
c321b39b39ab
'Bezugslinienverfahren': Generate valid i18n names for datasets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2323
diff
changeset
|
60 : winfo.getReferenceCurveData(context); |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
61 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
62 if (facets == null) { |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
63 return res; |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
64 } |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
65 |
2283
d4330439be3a
Let reference curve calculation result in wwqq.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2277
diff
changeset
|
66 WWQQ [] wws = (WWQQ [])res.getData(); |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
67 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
68 for (int i = 0; i < wws.length; ++i) { |
2307
51f530476e36
Better description for reference curve facets (seen in client).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2283
diff
changeset
|
69 String wwsName = wws[i].getName(); |
2251
c9c788eea200
Improved reference curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2222
diff
changeset
|
70 facets.add(new ReferenceCurveFacet(i, |
c9c788eea200
Improved reference curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2222
diff
changeset
|
71 REFERENCE_CURVE, |
2307
51f530476e36
Better description for reference curve facets (seen in client).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2283
diff
changeset
|
72 wwsName |
51f530476e36
Better description for reference curve facets (seen in client).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2283
diff
changeset
|
73 )); |
2277
3f3e4f94171b
Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2259
diff
changeset
|
74 facets.add(new ReferenceCurveFacet(i, |
3f3e4f94171b
Added generator for "Reduzierte Bezugslinie".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2259
diff
changeset
|
75 REFERENCE_CURVE_NORMALIZED, |
2307
51f530476e36
Better description for reference curve facets (seen in client).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2283
diff
changeset
|
76 wwsName |
51f530476e36
Better description for reference curve facets (seen in client).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2283
diff
changeset
|
77 )); |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
78 } |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
79 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
80 if (wws.length > 0) { |
2310
ecb76933362f
Added PDF export to reference curve calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2307
diff
changeset
|
81 logger.debug("Adding CSV and PDF data facet."); |
2259
0dcb8326be08
Add a not-yet-looked-at CSV facet for Reference Curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2251
diff
changeset
|
82 Facet csv = new DataFacet (CSV, "CSV data", ComputeType.ADVANCE, hash, id); |
2310
ecb76933362f
Added PDF export to reference curve calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2307
diff
changeset
|
83 Facet pdf = new DataFacet (PDF, "PDF data", ComputeType.ADVANCE, hash, id); |
2259
0dcb8326be08
Add a not-yet-looked-at CSV facet for Reference Curve.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2251
diff
changeset
|
84 facets.add(csv); |
2310
ecb76933362f
Added PDF export to reference curve calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2307
diff
changeset
|
85 facets.add(pdf); |
2195
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
86 } |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
87 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
88 if (res.getReport().hasProblems()) { |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
89 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
90 } |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
91 |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
92 return res; |
e14beb93a854
"Bezugslinenverfahren": Added stub loop for creating facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2170
diff
changeset
|
93 } |
2170
90dfc25007f1
Added transition/state stubs for "Bezugslinienverfahren".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 } |
90dfc25007f1
Added transition/state stubs for "Bezugslinienverfahren".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |