comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java @ 1151:08048bd090e6

Added very stubby WDifferences State/OutGenerator for WINFOArtifact. flys-artifacts/trunk@2682 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 09 Sep 2011 10:07:14 +0000
parents
children 62ad0a753b68
comparison
equal deleted inserted replaced
1150:5f53b443d67c 1151:08048bd090e6
1 package de.intevation.flys.artifacts.states;
2
3 import java.util.List;
4
5 import org.apache.log4j.Logger;
6
7 import de.intevation.artifacts.CallContext;
8
9 import de.intevation.artifactdatabase.state.Facet;
10
11 import de.intevation.flys.artifacts.FLYSArtifact;
12 import de.intevation.flys.artifacts.WINFOArtifact;
13
14 import de.intevation.flys.artifacts.math.WKmsOperation;
15
16 import de.intevation.flys.artifacts.model.DurationCurveFacet;
17 import de.intevation.flys.artifacts.model.FacetTypes;
18 import de.intevation.flys.artifacts.model.WKms;
19 import de.intevation.flys.artifacts.model.WQKms;
20 import de.intevation.flys.artifacts.model.WQDay;
21
22 import de.intevation.flys.artifacts.model.DataFacet;
23 import de.intevation.flys.artifacts.model.ReportFacet;
24 import de.intevation.flys.artifacts.model.CalculationResult;
25
26 import de.intevation.flys.artifacts.resources.Resources;
27
28 import de.intevation.flys.utils.FLYSUtils;
29
30 public class WDifferencesState
31 extends DefaultState
32 implements FacetTypes
33 {
34 /** The logger that is used in this state. */
35 private static Logger logger = Logger.getLogger(WDifferencesState.class);
36
37 public WDifferencesState() {
38 }
39
40
41 /** Specify to display a datacage_twin_panel. */
42 @Override
43 protected String getUIProvider() {
44 return "datacage_twin_panel";
45 }
46
47
48 @Override
49 public Object computeAdvance(
50 FLYSArtifact artifact,
51 String hash,
52 CallContext context,
53 List<Facet> facets,
54 Object old
55 ) {
56 WINFOArtifact winfo = (WINFOArtifact)artifact;
57
58 // Get a data item (uuids) or parameterization of the respective
59 // artifacts.
60 // TODO Fix, choose artifacts/parameterization dynamically.
61 WINFOArtifact flys1 = (WINFOArtifact) FLYSUtils.getArtifact(
62 //"a110a16d-d155-4115-ab0d-c4c61101c9cb", //Collection
63 "a0ec533f-b05b-4dcd-9db3-7850686f90a2",
64 context);
65 WINFOArtifact flys2 = (WINFOArtifact) FLYSUtils.getArtifact(
66 //"8ebb696d-771a-4540-bd18-15e19744a6e2", //Collection
67 "ce5a2c4e-3f9c-4c4d-a35c-109dd8670992",
68 context);
69
70 if (flys1 == null) {
71 logger.warn("One of the artifacts (1) for diff calculation could not be loaded");
72 }
73 if (flys2 == null) {
74 logger.warn("One of the artifacts (2) for diff calculation could not be loaded");
75 }
76 WKms wkms = null;
77
78 if (flys1 != null && flys2 != null) {
79 WQKms[] minuend = (WQKms[]) flys1.getWaterlevelData().getData();
80 WQKms[] subtrahend = (WQKms[]) flys2.getWaterlevelData().getData();
81 wkms = WKmsOperation.SUBTRACTION.operate(minuend[0], subtrahend[0]);
82 logger.warn("Did a WKMSSubtraction");
83 }
84
85 if (facets != null) {
86 // TODO: pass computetype and state id.
87 //, ComputeType.ADVANCE, getID(), hash));
88 facets.add(new DataFacet(W_DIFFERENCES, "wdiff data"));
89 }
90 else {
91 logger.debug("Not adding facets in WDifferencesState.");
92 }
93
94 return wkms;
95 }
96 }
97 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org