comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/states/ManualPointsSingleState.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ManualPointsSingleState.java@fbaba8e1a3a2
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.artifacts.states;
2
3 import java.util.List;
4
5 import org.apache.log4j.Logger;
6 import org.json.JSONArray;
7 import org.json.JSONException;
8
9 import org.dive4elements.artifactdatabase.state.Facet;
10 import org.dive4elements.artifacts.CallContext;
11 import org.dive4elements.artifacts.CallMeta;
12 import org.dive4elements.river.artifacts.FLYSArtifact;
13 import org.dive4elements.river.artifacts.ManualPointsArtifact;
14 import org.dive4elements.river.artifacts.model.CrossSectionWaterLineFacet;
15 import org.dive4elements.river.artifacts.model.FacetTypes;
16 import org.dive4elements.river.artifacts.model.ManualPointsFacet;
17 import org.dive4elements.river.artifacts.resources.Resources;
18
19 /**
20 * The only state for an ManualPointArtifact.
21 */
22 public class ManualPointsSingleState
23 extends DefaultState
24 implements FacetTypes
25 {
26 /** Developer-centric description of facet. */
27 public static final String I18N_DESCRIPTION
28 = "facet.longitudinal_section.manualpoint";
29
30 /** Part of data key. */
31 protected static final String DOT_DATA
32 = ".data";
33
34 /** Part of data key. */
35 protected static final String DOT_LINES
36 = ".lines";
37
38 /** The logger that is used in this state. */
39 private static final Logger logger =
40 Logger.getLogger(ManualPointsSingleState.class);
41
42
43 /**
44 * Add ManualPointsFacets to list of Facets.
45 *
46 * @param artifact Ignored.
47 * @param hash Ignored.
48 * @param meta CallMeta to be used for internationalization.
49 * @param facets List to add ManualPointsFacet to.
50 *
51 * @return null.
52 */
53 public Object compute(
54 FLYSArtifact artifact,
55 String hash,
56 CallMeta meta,
57 List<Facet> facets
58 ) {
59 logger.debug("ManualPointsSingleState.compute()");
60 ManualPointsArtifact points = (ManualPointsArtifact) artifact;
61
62 // Add Facet per Diagram type if data given.
63 for (ChartType ct: ChartType.values()) {
64 // Handle points.
65 String pointData = points.getDataAsString(ct + "." + MANUALPOINTS +
66 DOT_DATA);
67 if (pointData != null && pointData.length() != 0
68 && !pointData.equals("[]")) {
69 String fName = ct + "." + MANUALPOINTS;
70 ManualPointsFacet facet = new ManualPointsFacet(
71 0,
72 fName,
73 Resources.getMsg(meta, MANUALPOINTS, "Manual Points"));
74 facets.add(facet);
75 logger.debug("compute(): ManualPointsFacet for " + ct + " created");
76 }
77 else {
78 logger.debug("compute(): No points for " + ct);
79 }
80
81 // Handle lines.
82 String linesData = points.getDataAsString(ct + "." + MANUALPOINTS +
83 DOT_LINES);
84 if (linesData != null && linesData.length() != 0
85 && !linesData.equals("[]")) {
86 try {
87 JSONArray lines = new JSONArray(linesData);
88 for (int i = 0, P = lines.length(); i < P; i++) {
89 JSONArray array = lines.getJSONArray(i);
90 double y = array.getDouble(0);
91 String name = array.getString(1);
92 String fName = ct + "." + MANUALLINE;
93 logger.debug("have facet: " + y + " / " + name + " -> " + fName);
94 CrossSectionWaterLineFacet facet = new CrossSectionWaterLineFacet(
95 i,
96 fName,
97 name);
98
99 facets.add(facet);
100 }
101 }
102 catch(JSONException e){
103 logger.error("Could not decode json.");
104 }
105
106 }
107 else {
108 //logger.debug("No points for " + ct);
109 }
110 }
111
112 return null;
113 }
114
115
116 /** Call compute. */
117 @Override
118 public Object computeInit(
119 FLYSArtifact artifact,
120 String hash,
121 Object context,
122 CallMeta meta,
123 List<Facet> facets
124 ) {
125 return compute(artifact, hash, meta, facets);
126 }
127
128
129 /** Call compute. */
130 @Override
131 public Object computeFeed(
132 FLYSArtifact artifact,
133 String hash,
134 CallContext context,
135 List<Facet> facets,
136 Object old
137 ) {
138 return compute(artifact, hash, context.getMeta(), facets);
139 }
140 }
141 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org