Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/SedimentYieldArtifact.java @ 7524:25d890e3eb69
issue1664: Let DC instruct StaticWKmsArtifact to spawn facets
for cm and cm/a axis for delta ws from fix analysis.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 06 Nov 2013 12:07:48 +0100 |
parents | b8faaac71507 |
children | 8d5ca5175038 |
rev | line source |
---|---|
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
3 * |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
7 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
8 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.artifacts; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
11 import java.util.ArrayList; |
7306
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
12 import java.util.Calendar; |
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
13 import java.util.Date; |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 import java.util.List; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
15 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 import org.apache.log4j.Logger; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
17 import org.w3c.dom.Document; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
18 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
19 import org.dive4elements.artifactdatabase.state.DefaultOutput; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
20 import org.dive4elements.artifactdatabase.state.Facet; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
21 import org.dive4elements.artifactdatabase.state.FacetActivity; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
22 import org.dive4elements.artifactdatabase.state.State; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
23 import org.dive4elements.artifacts.Artifact; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
24 import org.dive4elements.artifacts.ArtifactFactory; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
25 import org.dive4elements.artifacts.CallMeta; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
26 import org.dive4elements.artifacts.common.utils.XMLUtils; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
27 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
28 import org.dive4elements.river.artifacts.model.Calculation; |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
29 import org.dive4elements.river.artifacts.model.CalculationResult; |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
30 import org.dive4elements.river.artifacts.model.minfo.SedimentLoad; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFacet; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
32 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFactory; |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
33 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadResult; |
7306
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
34 import org.dive4elements.river.artifacts.resources.Resources; |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
35 import org.dive4elements.river.artifacts.states.StaticState; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
36 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 import org.dive4elements.river.artifacts.model.FacetTypes; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
38 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
39 |
7196
e6f9c831a75f
SedimentYieldArtifact: Removed unneeded documentation, removed but added one TODO.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7186
diff
changeset
|
40 /** Artifact to access sediment yield measurements. */ |
7202
63fd11f57379
Cleaned imports, added todo about naming.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7196
diff
changeset
|
41 // TODO Naming: would SedimentLoadArtifact be more precise? |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 public class SedimentYieldArtifact |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 extends StaticD4EArtifact |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 implements FacetTypes |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
46 /** The logger for this class. */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
47 private static Logger logger = |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
48 Logger.getLogger(SedimentYieldArtifact.class); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
50 /** Artifact key name. */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
51 private static final String NAME = "sedimentyield"; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
52 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 /** Spawn only inactive facets. */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
54 static { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
55 // TODO: Move to configuration. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
56 FacetActivity.Registry.getInstance() |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
57 .register(NAME, FacetActivity.INACTIVE); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
58 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
59 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 /** Need to give the state an id. */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
61 public static final String STATIC_STATE_NAME = |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
62 "state.sedimentyield.static"; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
63 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
64 /** One and only state to be in. */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 protected transient State state = null; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
66 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
67 protected String DATA_NAME = "ID"; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
68 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
69 /** |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
70 * Trivial Constructor. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
71 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
72 public SedimentYieldArtifact() { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
73 logger.debug("SedimentYieldArtifact.SedimentYieldArtifact"); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
74 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
75 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
76 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
77 /** Get artifact key name. */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
78 @Override |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
79 public String getName() { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
80 return NAME; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
81 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
82 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
83 |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
84 private Object getSedimentLoad() { |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
85 logger.debug("SedimentYieldArtifact.getSedimentLoad"); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
86 String id = getDataAsString(DATA_NAME); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
87 String river = getDataAsString("river"); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
88 |
7196
e6f9c831a75f
SedimentYieldArtifact: Removed unneeded documentation, removed but added one TODO.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7186
diff
changeset
|
89 // TODO use cache if possible |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
90 SedimentLoad myLoad = SedimentLoadFactory.getSedimentLoadWithDataUncached(id, river); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
91 return new CalculationResult( |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
92 new SedimentLoadResult[] { |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
93 new SedimentLoadResult(1983,2042,myLoad) |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
94 }, new Calculation()); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
95 } |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
96 |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
97 |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
98 /** Create a new state with bogus output. */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
99 protected State spawnState() { |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
100 state = new StaticState(STATIC_STATE_NAME) { |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
101 |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
102 public Object staticCompute(List<Facet> facets) { |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
103 return getSedimentLoad(); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
104 } |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
105 }; |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
106 List<Facet> fs = getFacets(STATIC_STATE_NAME); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
107 DefaultOutput output = new DefaultOutput( |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
108 "general", |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
109 "general", |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
110 "image/png", |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
111 fs, |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
112 "chart"); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
113 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
114 state.getOutputs().add(output); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
115 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
116 return state; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
117 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
118 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
119 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
120 /** |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
121 * Gets called from factory, to set things up. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
122 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
123 @Override |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
124 public void setup( |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
125 String identifier, |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
126 ArtifactFactory factory, |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
127 Object context, |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
128 CallMeta callMeta, |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
129 Document data) |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
130 { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
131 logger.debug("SedimentYieldArtifact.setup"); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
132 |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
133 // Refactor? this happens at another place, too |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
134 // Store id, yield yields. |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
135 state = new StaticState(STATIC_STATE_NAME) { |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
136 |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
137 public Object staticCompute(List<Facet> facets) { |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
138 return getSedimentLoad(); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
139 } |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
140 }; |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
141 if (logger.isDebugEnabled()) { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
142 logger.debug(XMLUtils.toString(data)); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
143 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
144 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
145 List<Facet> fs = new ArrayList<Facet>(); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
146 String code = getDatacageIDValue(data); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
147 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
148 if (code != null) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
149 int id = Integer.valueOf(code); |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
150 String fraction = SedimentLoadFactory.getSedimentYieldFractionName(id); |
7306
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
151 String fractionName = Resources.getMsg(callMeta, fraction, "-"); |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
152 Date[] dates = SedimentLoadFactory.getSedimentYieldTimes(id); |
7306
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
153 Calendar date = Calendar.getInstance(); |
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
154 date.setTime(dates[0]); |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
155 String name = fractionName + " - " + date.get(Calendar.YEAR); |
7306
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
156 if (dates[1] != null) { |
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
157 date.setTime(dates[1]); |
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
158 name += " - " + date.get(Calendar.YEAR); |
d7b2c14a9693
issue1345: Adjust name of sediment yield/load facets to include fraction name and times.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7202
diff
changeset
|
159 } |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
160 |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
161 boolean unitIsTA = |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
162 SedimentLoadFactory.getSedimentYieldUnitName(id).startsWith("t"); |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
163 |
7520
b8faaac71507
issue1658: Adjuste facet descriptions to include unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7519
diff
changeset
|
164 name += " "; |
b8faaac71507
issue1658: Adjuste facet descriptions to include unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7519
diff
changeset
|
165 name += (unitIsTA) |
7519
0d45b1d6e432
issue1658: Add unit name to facet description.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7499
diff
changeset
|
166 ? Resources.getMsg(callMeta, "state.minfo.sediment.load.t_per_a", "(t/a)") |
0d45b1d6e432
issue1658: Add unit name to facet description.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7499
diff
changeset
|
167 : Resources.getMsg(callMeta, "state.minfo.sediment.load.m3_per_a", "(m^3/a)"); |
0d45b1d6e432
issue1658: Add unit name to facet description.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7499
diff
changeset
|
168 |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
169 String facetType = ""; |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
170 if (fraction.equals("coarse")) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
171 if (unitIsTA) { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
172 facetType = SEDIMENT_LOAD_TA_COARSE; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
173 } |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
174 else { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
175 facetType = SEDIMENT_LOAD_M3A_COARSE; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
176 } |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
177 } |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
178 else if (fraction.equals("sand")) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
179 if (unitIsTA) { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
180 facetType = SEDIMENT_LOAD_TA_SAND; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
181 } |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
182 else { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
183 facetType = SEDIMENT_LOAD_M3A_SAND; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
184 } |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
185 } |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
186 else if (fraction.equals("fine_middle")) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
187 if (unitIsTA) { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
188 facetType = SEDIMENT_LOAD_TA_FINEMIDDLE; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
189 } |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
190 else { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
191 facetType = SEDIMENT_LOAD_M3A_FINEMIDDLE; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
192 } |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
193 } |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
194 else if (fraction.equals("susp_sand")) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
195 if (unitIsTA) { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
196 facetType = SEDIMENT_LOAD_TA_SUSP_SAND; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
197 } |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
198 else { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
199 facetType = SEDIMENT_LOAD_M3A_SAND; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
200 } |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
201 } |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
202 else if (fraction.equals("susp_sand_bed")) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
203 if (unitIsTA) { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
204 facetType = SEDIMENT_LOAD_TA_SUSP_SAND_BED; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
205 } |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
206 else { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
207 facetType = SEDIMENT_LOAD_M3A_SUSP_SAND_BED; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
208 } |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
209 } |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
210 else if (fraction.equals("suspended_sediment")) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
211 if (unitIsTA) { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
212 facetType = SEDIMENT_LOAD_TA_SUSP_SEDIMENT; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
213 } |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
214 else { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
215 facetType = SEDIMENT_LOAD_M3A_SUSP_SEDIMENT; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
216 } |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
217 } |
7369
6bc884bab32e
SedimentYieldArtifact: Accept 'total' load, genreate facet for it.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7324
diff
changeset
|
218 else if (fraction.equals("total")) { |
7499
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
219 if (unitIsTA) { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
220 facetType = SEDIMENT_LOAD_TA_TOTAL_LOAD; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
221 } |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
222 else { |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
223 facetType = SEDIMENT_LOAD_M3A_TOTAL_LOAD; |
ab17c76611f9
issue1658: Let SedimentYieldArtifact create facet based on Sed.L. unit.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7369
diff
changeset
|
224 } |
7369
6bc884bab32e
SedimentYieldArtifact: Accept 'total' load, genreate facet for it.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7324
diff
changeset
|
225 } |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
226 else { |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
227 logger.error("Do not know fraction type " + fraction); |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
228 } |
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
229 |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
230 Facet facet = new SedimentLoadFacet( |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
231 0, |
7324
24023630f693
issue1345: Fix sediment load facet type, adjust theme name.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7306
diff
changeset
|
232 facetType, |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
233 name, |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
234 //???? |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
235 ComputeType.ADVANCE, state.getID(), "hash" |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
236 ); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
237 fs.add(facet); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
238 addFacets(state.getID(), fs); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
239 addStringData(DATA_NAME, code); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
240 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
241 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
242 spawnState(); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
243 super.setup(identifier, factory, context, callMeta, data); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
244 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
245 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
246 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
247 /** |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
248 * Get a list containing the one and only State. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
249 * @param context ignored. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
250 * @return list with one and only state. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
251 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
252 @Override |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
253 protected List<State> getStates(Object context) { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
254 ArrayList<State> states = new ArrayList<State>(); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
255 states.add(getState()); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
256 return states; |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
257 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
258 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
259 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
260 /** |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
261 * Get the "current" state (there is but one). |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
262 * @param cc ignored. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
263 * @return the "current" (only possible) state. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
264 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
265 @Override |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
266 public State getCurrentState(Object cc) { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
267 return getState(); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
268 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
269 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
270 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
271 /** |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
272 * Get the only possible state. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
273 * @return the state. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
274 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
275 protected State getState() { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
276 return getState(null, null); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
277 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
278 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
279 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
280 /** |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
281 * Get the state. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
282 * @param context ignored. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
283 * @param stateID ignored. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
284 * @return the state. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
285 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
286 @Override |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
287 protected State getState(Object context, String stateID) { |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
288 return (state != null) |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
289 ? state |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
290 : spawnState(); |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
291 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
292 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
293 |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
294 /** |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
295 * Called via setup. Overridden to avoid cloning all data. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
296 * |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
297 * @param artifact The master-artifact. |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
298 */ |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
299 @Override |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
300 protected void initialize( |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
301 Artifact artifact, |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
302 Object context, |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
303 CallMeta meta) |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
304 { |
7186
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
305 logger.debug("SedimentYieldArtifact.initialize"); |
644b2f461272
issue1435: SedimentYieldArtifact: Add functionality.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7182
diff
changeset
|
306 importData((D4EArtifact) artifact, "river"); |
7182
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
307 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
308 } |
87c32adb7088
Initial commit for untested standalone sediment yield artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
309 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |