Mercurial > dive4elements > river
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 : |