comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/ManualPointsArtifact.java @ 2172:3ecc76ef25a9

New, basic infrastructure for user-provided data ('manual points'). flys-artifacts/trunk@3767 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 26 Jan 2012 12:52:44 +0000
parents
children 9317863e867b
comparison
equal deleted inserted replaced
2171:9083e1b47b66 2172:3ecc76ef25a9
1 package de.intevation.flys.artifacts;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.apache.log4j.Logger;
7
8 import org.w3c.dom.Document;
9
10 import de.intevation.artifactdatabase.data.DefaultStateData;
11 import de.intevation.artifactdatabase.state.Facet;
12 import de.intevation.artifactdatabase.state.DefaultOutput;
13 import de.intevation.artifactdatabase.state.State;
14
15 import de.intevation.artifacts.Artifact;
16 import de.intevation.artifacts.ArtifactFactory;
17 import de.intevation.artifacts.CallMeta;
18
19 import de.intevation.flys.model.Gauge;
20 import de.intevation.flys.model.MainValue;
21 import de.intevation.flys.model.River;
22
23 import de.intevation.flys.artifacts.model.Calculation;
24 import de.intevation.flys.artifacts.model.FacetTypes;
25 import de.intevation.flys.artifacts.model.MainValuesQFacet;
26 import de.intevation.flys.artifacts.model.MainValuesWFacet;
27 import de.intevation.flys.artifacts.model.NamedDouble;
28 import de.intevation.flys.artifacts.model.WstValueTable;
29 import de.intevation.flys.artifacts.model.WstValueTableFactory;
30
31 import de.intevation.flys.artifacts.states.StaticState;
32 import de.intevation.flys.artifacts.states.DefaultState;
33
34 import de.intevation.flys.artifacts.resources.Resources;
35
36 import de.intevation.flys.utils.FLYSUtils;
37
38
39 /**
40 * Artifact to store user-added points.
41 */
42 public class ManualPointsArtifact
43 extends StaticFLYSArtifact
44 implements FacetTypes
45 {
46 /** The logger for this class. */
47 private static Logger logger = Logger.getLogger(ManualPointsArtifact.class);
48
49 /** The name of the artifact. */
50 public static final String ARTIFACT_NAME = "manualpoints";
51
52 /** Name of data item where points are stored (jsonized). */
53 public static final String POINT_DATA = "manualpoints.data";
54
55 /**
56 * Trivial Constructor.
57 */
58 public ManualPointsArtifact() {
59 logger.debug("ManualPointsArtifact.ManualPointsartifact()");
60 }
61
62
63 /**
64 * Gets called from factory, to set things up.
65 */
66 @Override
67 public void setup(
68 String identifier,
69 ArtifactFactory factory,
70 Object context,
71 CallMeta callMeta,
72 Document data)
73 {
74 logger.debug("ManualPointsArtifact.setup");
75 super.setup(identifier, factory, context, callMeta, data);
76 initialize(null, context, callMeta);
77 }
78
79
80 /** Return the name of this artifact. */
81 public String getName() {
82 return ARTIFACT_NAME;
83 }
84
85
86 /** Access state data storing the jsonstring with points. */
87 public String getPointsData() {
88 return getDataAsString(POINT_DATA);
89 }
90
91
92 /** Setup state and facet. */
93 @Override
94 protected void initialize(Artifact artifact, Object context, CallMeta meta) {
95 logger.debug("ManualPointsArtifact.initialize");
96 List<Facet> fs = new ArrayList<Facet>();
97 addStringData(POINT_DATA, "[]");
98
99 DefaultState state = (DefaultState) getCurrentState(context);
100 state.computeInit(this, hash(), context, meta, fs);
101 if (!fs.isEmpty()) {
102 logger.debug("Facets to add in ManualPointsArtifact.initialize .");
103 facets.put(getCurrentStateId(), fs);
104 }
105 else {
106 logger.debug("No facets to add in ManualPointsArtifact.initialize ("
107 + state.getID() + ").");
108 }
109 }
110
111
112 /**
113 * Determines Facets initial disposition regarding activity (think of
114 * selection in Client ThemeList GUI). This will be checked one time
115 * when the facet enters a collections describe document.
116 *
117 * @param facetName name of the facet.
118 * @param index index of the facet.
119 * @return 0 if not active
120 */
121 @Override
122 public int getInitialFacetActivity(
123 String outputName,
124 String facetName,
125 int index)
126 {
127 return 1;
128 }
129 }
130 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org