comparison src/main/java/de/intevation/lada/data/exporter/LAFCreator.java @ 366:567ce7697fc7 0.5

Code documentation.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 10 Sep 2013 15:55:54 +0200
parents c0357bd00666
children f3d0894d9bfc
comparison
equal deleted inserted replaced
365:fab80595ed55 366:567ce7697fc7
25 import de.intevation.lada.model.SMessgroesse; 25 import de.intevation.lada.model.SMessgroesse;
26 import de.intevation.lada.model.SProbenZusatz; 26 import de.intevation.lada.model.SProbenZusatz;
27 import de.intevation.lada.model.SProbenart; 27 import de.intevation.lada.model.SProbenart;
28 import de.intevation.lada.rest.Response; 28 import de.intevation.lada.rest.Response;
29 29
30 /**
31 * This creator produces a LAF conform String containing all information about
32 * a single {@link LProbe} object including subobjects like
33 * {@link LMessung}, {@link LMesswert}, {@link LKommentarP}...
34 *
35 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
36 */
30 @Named("lafcreator") 37 @Named("lafcreator")
31 public class LAFCreator 38 public class LAFCreator
32 implements Creator 39 implements Creator
33 { 40 {
34 41
62 69
63 @Inject 70 @Inject
64 @Named("readonlyrepository") 71 @Named("readonlyrepository")
65 private Repository readonlyRepo; 72 private Repository readonlyRepo;
66 73
74 /**
75 * Create the LAF conform String.
76 *
77 * @param probeId The {@link LProbe} id.
78 */
67 @Override 79 @Override
68 public String create(String probeId) { 80 public String create(String probeId) {
69 String lafProbe = "%PROBE%\n"; 81 String lafProbe = "%PROBE%\n";
70 lafProbe += probeToLAF(probeId); 82 lafProbe += probeToLAF(probeId);
71 return lafProbe; 83 return lafProbe;
72 } 84 }
73 85
86 /**
87 * Find the {@link LProbe} object and produce the LAF conform string.
88 * @param probeId The {@link LProbe} id.
89 * @return LAF conform string.
90 */
74 private String probeToLAF(String probeId) { 91 private String probeToLAF(String probeId) {
75 Response found = this.proben.findById(LProbe.class, probeId); 92 Response found = this.proben.findById(LProbe.class, probeId);
76 if (found.getData() == null) { 93 if (found.getData() == null) {
77 return null; 94 return null;
78 } 95 }
80 LProbeInfo probe = aProbe.get(0); 97 LProbeInfo probe = aProbe.get(0);
81 String lafProbe = writeAttributes(probe); 98 String lafProbe = writeAttributes(probe);
82 return lafProbe; 99 return lafProbe;
83 } 100 }
84 101
102 /**
103 * Write the attributes and subobjects.
104 *
105 * @param probe The {@link LProbeInfo} object.
106 * @return LAF conform string.
107 */
85 private String writeAttributes(LProbeInfo probe) { 108 private String writeAttributes(LProbeInfo probe) {
86 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); 109 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
87 QueryBuilder<LKommentarP> kommBuilder = 110 QueryBuilder<LKommentarP> kommBuilder =
88 new QueryBuilder<LKommentarP>( 111 new QueryBuilder<LKommentarP>(
89 pkommentarRepo.getEntityManager(), LKommentarP.class); 112 pkommentarRepo.getEntityManager(), LKommentarP.class);
148 laf += writeMessung(probe); 171 laf += writeMessung(probe);
149 laf += writeOrt(probe); 172 laf += writeOrt(probe);
150 return laf; 173 return laf;
151 } 174 }
152 175
176 /**
177 * Write {@link LZusatzWert} attributes.
178 *
179 * @param zw The {@link LZusatzWert}.
180 * @return Single LAF line.
181 */
153 private String writeZusatzwert(LZusatzWert zw) { 182 private String writeZusatzwert(LZusatzWert zw) {
154 QueryBuilder<SProbenZusatz> builder = 183 QueryBuilder<SProbenZusatz> builder =
155 new QueryBuilder<SProbenZusatz>( 184 new QueryBuilder<SProbenZusatz>(
156 readonlyRepo.getEntityManager(), SProbenZusatz.class); 185 readonlyRepo.getEntityManager(), SProbenZusatz.class);
157 builder.and("pzsId", zw.getPzsId()); 186 builder.and("pzsId", zw.getPzsId());
163 value += " " + zusaetze.get(0).getMehId(); 192 value += " " + zusaetze.get(0).getMehId();
164 value += " " + zw.getMessfehler(); 193 value += " " + zw.getMessfehler();
165 return lafLine("PZB_S", value); 194 return lafLine("PZB_S", value);
166 } 195 }
167 196
197 /**
198 * Write {@link LOrt} attributes.
199 *
200 * @param probe The {@link LProbeInfo} object.
201 * @return LAF conform string
202 */
168 private String writeOrt(LProbeInfo probe) { 203 private String writeOrt(LProbeInfo probe) {
169 QueryBuilder<LOrt> builder = 204 QueryBuilder<LOrt> builder =
170 new QueryBuilder<LOrt>( 205 new QueryBuilder<LOrt>(
171 ortRepo.getEntityManager(), 206 ortRepo.getEntityManager(),
172 LOrt.class); 207 LOrt.class);
201 laf += lafLine("ORT_GEMEINDESCHLUESSEL", ort.get(0).getGemId()); 236 laf += lafLine("ORT_GEMEINDESCHLUESSEL", ort.get(0).getGemId());
202 } 237 }
203 return laf; 238 return laf;
204 } 239 }
205 240
241 /**
242 * Write {@link LKommentarP} attributes.
243 *
244 * @param kp The {@link LKommentarP} object.
245 * @return Single LAF line.
246 */
206 private String writeKommentar(LKommentarP kp) { 247 private String writeKommentar(LKommentarP kp) {
207 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); 248 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
208 String value = "\"" + kp.getErzeuger() + "\" " + 249 String value = "\"" + kp.getErzeuger() + "\" " +
209 format.format(kp.getKDatum()) + " " + 250 format.format(kp.getKDatum()) + " " +
210 "\"" + kp.getKText() + "\""; 251 "\"" + kp.getKText() + "\"";
211 return lafLine("PROBENKOMMENTAR", value); 252 return lafLine("PROBENKOMMENTAR", value);
212 } 253 }
213 254
255 /**
256 * Write {@link LMessung} attributes.
257 *
258 * @param probe The {@link LProbeInfo} object.
259 * @return LAF conform string.
260 */
214 private String writeMessung(LProbeInfo probe) { 261 private String writeMessung(LProbeInfo probe) {
215 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); 262 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
216 // Get all messungen 263 // Get all messungen
217 QueryBuilder<LMessung> builder = 264 QueryBuilder<LMessung> builder =
218 new QueryBuilder<LMessung>( 265 new QueryBuilder<LMessung>(
255 } 302 }
256 } 303 }
257 return laf; 304 return laf;
258 } 305 }
259 306
307 /**
308 * Write {@link LKommentarM} attributes.
309 * @param mk The {@link LKommentarM} object.
310 * @return Single LAF line.
311 */
260 private String writeKommentar(LKommentarM mk) { 312 private String writeKommentar(LKommentarM mk) {
261 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); 313 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
262 String value = "\"" + mk.getErzeuger() + "\" " + 314 String value = "\"" + mk.getErzeuger() + "\" " +
263 format.format(mk.getKDatum()) + " " + 315 format.format(mk.getKDatum()) + " " +
264 "\"" + mk.getKText() + "\""; 316 "\"" + mk.getKText() + "\"";
265 return lafLine("KOMMENTAR", value); 317 return lafLine("KOMMENTAR", value);
266 } 318 }
267 319
320 /**
321 * Write {@link LMesswert} attributes.
322 * @param mw The {@link LMesswert} object.
323 * @return Single LAF line.
324 */
268 private String writeMesswert(LMesswert mw) { 325 private String writeMesswert(LMesswert mw) {
269 QueryBuilder<SMessgroesse> builder = 326 QueryBuilder<SMessgroesse> builder =
270 new QueryBuilder<SMessgroesse>( 327 new QueryBuilder<SMessgroesse>(
271 readonlyRepo.getEntityManager(), SMessgroesse.class); 328 readonlyRepo.getEntityManager(), SMessgroesse.class);
272 builder.and("messgroesseId", mw.getMessgroesseId()); 329 builder.and("messgroesseId", mw.getMessgroesseId());
293 value += mw.getGrenzwertueberschreitung() == null ? " N" : 350 value += mw.getGrenzwertueberschreitung() == null ? " N" :
294 mw.getGrenzwertueberschreitung() ? " Y" : " N"; 351 mw.getGrenzwertueberschreitung() ? " Y" : " N";
295 return lafLine("MESSWERT", value); 352 return lafLine("MESSWERT", value);
296 } 353 }
297 354
355 /**
356 * Write a single LAF conform line from key and value.
357 *
358 * @param key The key.
359 * @param value The value.
360 * @return LAF conform line.
361 */
298 private String lafLine(String key, String value) { 362 private String lafLine(String key, String value) {
299 for (int i = key.length(); i < 30; i++) { 363 for (int i = key.length(); i < 30; i++) {
300 key += " "; 364 key += " ";
301 } 365 }
302 return key + value + "\n"; 366 return key + value + "\n";
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)