annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/QSectorSingleState.java @ 4241:49cb65d5932d

Improved the historical discharge calculation. The calculation now creates new HistoricalWQKms (new subclass of WQKms). Those WQKms are used to create new facets from (new) type 'HistoricalDischargeCurveFacet'. The chart generator is improved to support those facets.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 24 Oct 2012 14:34:35 +0200
parents 6442f317a0c7
children e8a4d2fd25cc
rev   line source
3575
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.states;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 import java.util.List;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
4
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
5 import org.apache.log4j.Logger;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
6
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 import de.intevation.artifacts.CallMeta;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8 import de.intevation.artifacts.CallContext;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10 import de.intevation.artifactdatabase.state.Facet;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import de.intevation.flys.artifacts.FLYSArtifact;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import de.intevation.flys.artifacts.QSectorArtifact;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import de.intevation.flys.artifacts.model.FacetTypes;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import de.intevation.flys.artifacts.model.QSectorFacet;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.artifacts.resources.Resources;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 /**
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 * The only state for an QSectorArtifact.
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 */
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23 public class QSectorSingleState
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24 extends DefaultState
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 implements FacetTypes
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 {
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
27 /** Developer-centric description of facet. */
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28 public static final String I18N_DESCRIPTION
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 = "facet.qsector";
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 /** The logger that is used in this state. */
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 private static final Logger logger =
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 Logger.getLogger(QSectorSingleState.class);
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 /**
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 * Add QSectorFacets to list of Facets.
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38 *
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 * @param artifact Ignored.
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 * @param hash Ignored.
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41 * @param meta CallMeta to be used for internationalization.
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 * @param facets List to add QSectorFacet to.
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
43 *
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
44 * @return null.
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
45 */
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46 public Object compute(
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
47 FLYSArtifact artifact,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 String hash,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 CallMeta meta,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 List<Facet> facets
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 ) {
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
52 logger.debug("QSectorSingleState.compute()");
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
53 QSectorArtifact points = (QSectorArtifact) artifact;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
55 QSectorFacet qfacet = new QSectorFacet(
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
56 0,
3576
6442f317a0c7 i18n and renderering of qsectors in w/q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3575
diff changeset
57 QSECTOR,
6442f317a0c7 i18n and renderering of qsectors in w/q diag.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3575
diff changeset
58 Resources.getMsg(meta, "qsectors", "Q Sectors"));
3575
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
59
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60 facets.add(qfacet);
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 return null;
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 }
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
64
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
65
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
66 /** Call compute. */
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
67 @Override
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 public Object computeInit(
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 FLYSArtifact artifact,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 String hash,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
71 Object context,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 CallMeta meta,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73 List<Facet> facets
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74 ) {
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 return compute(artifact, hash, meta, facets);
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 }
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
78
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79 /** Call compute. */
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80 @Override
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 public Object computeFeed(
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 FLYSArtifact artifact,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 String hash,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 CallContext context,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85 List<Facet> facets,
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 Object old
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 ) {
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 return compute(artifact, hash, context.getMeta(), facets);
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
89 }
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
90 }
e9c3285f2ee2 Added State for QSector artifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org