comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/access/Access.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/access/Access.java@cbd0fafcb26b
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.artifacts.access;
2
3 import org.dive4elements.artifactdatabase.data.StateData;
4
5 import org.dive4elements.river.artifacts.FLYSArtifact;
6
7 import org.dive4elements.river.artifacts.model.DateRange;
8
9 import org.dive4elements.river.utils.FLYSUtils;
10
11 import gnu.trove.TDoubleArrayList;
12 import gnu.trove.TLongArrayList;
13
14 import java.util.ArrayList;
15 import java.util.Date;
16
17 import org.apache.log4j.Logger;
18
19 public class Access
20 {
21 private static Logger log = Logger.getLogger(Access.class);
22
23 protected FLYSArtifact artifact;
24
25 public Access() {
26 }
27
28 public Access(FLYSArtifact artifact) {
29 this.artifact = artifact;
30 }
31
32 public FLYSArtifact getArtifact() {
33 return artifact;
34 }
35
36 public void setArtifact(FLYSArtifact artifact) {
37 this.artifact = artifact;
38 }
39
40
41 /** Get a data entry as string. */
42 protected String getString(String key) {
43 StateData sd = artifact.getData(key);
44 if (sd == null) {
45 log.warn("missing '" + key + "' value");
46 return null;
47 }
48 return (String)sd.getValue();
49 }
50
51 /** Get a data entry as double, returns null if string not double valueoffable. */
52 protected Double getDouble(String key) {
53 StateData sd = artifact.getData(key);
54 if (sd == null) {
55 log.warn("missing '" + key + "' value");
56 return null;
57 }
58 try {
59 return Double.valueOf((String)sd.getValue());
60 }
61 catch (NumberFormatException nfe) {
62 log.warn(key + " '" + sd.getValue() + "' is not numeric.");
63 }
64 return null;
65 }
66
67 protected Long getLong(String key) {
68 StateData sd = artifact.getData(key);
69 if (sd == null) {
70 log.warn("missing '" + key + "' value");
71 return null;
72 }
73 try {
74 return Long.valueOf((String)sd.getValue());
75 }
76 catch (NumberFormatException nfe) {
77 log.warn(key + " '" + sd.getValue() + "' is not a long integer.");
78 }
79 return null;
80 }
81
82 protected Integer getInteger(String key) {
83 StateData sd = artifact.getData(key);
84 if (sd == null) {
85 log.warn("missing '" + key + "' value");
86 return null;
87 }
88 try {
89 return Integer.valueOf((String)sd.getValue());
90 }
91 catch (NumberFormatException nfe) {
92 log.warn(key + " '" + sd.getValue() + "' is not a integer.");
93 }
94 return null;
95 }
96
97 protected int [] getIntArray(String key) {
98 StateData sd = artifact.getData(key);
99 if (sd == null) {
100 log.warn("missing '" + key +"' value");
101 return null;
102 }
103 return FLYSUtils.intArrayFromString((String)sd.getValue());
104 }
105
106 protected DateRange [] getDateRange(String key) {
107
108 StateData sd = artifact.getData(key);
109
110 if (sd == null) {
111 log.warn("missing '" + key + "'");
112 return null;
113 }
114
115 String data = (String)sd.getValue();
116 String[] pairs = data.split("\\s*;\\s*");
117
118 ArrayList<DateRange> aPs = new ArrayList<DateRange>(pairs.length);
119
120 for (int i = 0; i < pairs.length; i++) {
121 String[] fromTo = pairs[i].split("\\s*,\\s*");
122 if (fromTo.length >= 2) {
123 try {
124 Date from = new Date(Long.parseLong(fromTo[0]));
125 Date to = new Date(Long.parseLong(fromTo[1]));
126 DateRange aP = new DateRange(from, to);
127 if (!aPs.contains(aP)) {
128 aPs.add(aP);
129 }
130 }
131 catch (NumberFormatException nfe) {
132 log.warn(key + " contains no long values.", nfe);
133 }
134 }
135 }
136
137 DateRange [] result = aPs.toArray(new DateRange[aPs.size()]);
138
139 if (log.isDebugEnabled()) {
140 for (int i = 0; i < result.length; ++i) {
141 DateRange ap = result[i];
142 log.debug("period " +
143 ap.getFrom() + " - " + ap.getTo());
144 }
145 }
146
147 return result;
148 }
149
150 protected Boolean getBoolean(String key) {
151 StateData sd = artifact.getData(key);
152 if (sd == null) {
153 log.warn("missing '" + key + "' value");
154 return null;
155 }
156 return Boolean.valueOf((String)sd.getValue());
157 }
158
159 protected double [] getDoubleArray(String key) {
160 StateData sd = artifact.getData(key);
161 if (sd == null) {
162 log.warn("missing '" + key + "'");
163 return null;
164 }
165 String [] parts = ((String)sd.getValue()).split("[\\s;]+");
166 TDoubleArrayList list = new TDoubleArrayList(parts.length);
167 for (String part: parts) {
168 try {
169 list.add(Double.parseDouble(part));
170 }
171 catch (NumberFormatException nfe) {
172 log.warn("'" + part + "' is not numeric.");
173 }
174 }
175 return list.toNativeArray();
176 }
177
178 protected long [] getLongArray(String key) {
179 StateData sd = artifact.getData(key);
180 if (sd == null) {
181 log.warn("missing '" + key + "'");
182 return null;
183 }
184 String [] parts = ((String)sd.getValue()).split("[\\s;]+");
185 TLongArrayList list = new TLongArrayList(parts.length);
186 for (String part: parts) {
187 try {
188 list.add(Long.parseLong(part));
189 }
190 catch (NumberFormatException nfe) {
191 log.warn("'" + part + "' is not numeric.");
192 }
193 }
194 return list.toNativeArray();
195 }
196 }
197 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org