[Lada-commits] [PATCH 4 of 4] Check for errors in probe objects and cancel import writing out the errors
Wald Commits
scm-commit at wald.intevation.org
Tue Nov 8 10:30:17 CET 2016
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1478597407 -3600
# Node ID fec7ba34cd1b0a614d003ff5648c647749e1d0c9
# Parent 7c3d022a899f9cf7f5e6fa7ec82f74dc1fdc9ef8
Check for errors in probe objects and cancel import writing out the errors.
diff -r 7c3d022a899f -r fec7ba34cd1b src/main/java/de/intevation/lada/importer/laf/LafObjectMapper.java
--- a/src/main/java/de/intevation/lada/importer/laf/LafObjectMapper.java Tue Nov 08 10:29:17 2016 +0100
+++ b/src/main/java/de/intevation/lada/importer/laf/LafObjectMapper.java Tue Nov 08 10:30:07 2016 +0100
@@ -153,8 +153,18 @@
Probe old = (Probe)probeIdentifier.getExisting();
// Matching probe was found in the db. Update it!
if(i == Identified.UPDATE) {
- merger.merge(old, probe);
- newProbe = old;
+ Violation violation = probeValidator.validate(probe);
+ if (violation.hasErrors()) {
+ for (Entry<String, List<Integer>> err : violation.getErrors().entrySet()) {
+ for (Integer code : err.getValue()) {
+ currentErrors.add(new ReportItem("validation", err.getKey(), code));
+ }
+ }
+ }
+ else {
+ merger.merge(old, probe);
+ newProbe = old;
+ }
}
// Probe was found but some data does not match
else if(i == Identified.REJECT){
@@ -171,7 +181,6 @@
warnings.put(object.getIdentifier(),
new ArrayList<ReportItem>(currentWarnings));
}
- return;
}
// It is a brand new probe!
else if(i == Identified.NEW){
@@ -182,10 +191,11 @@
currentErrors.add(new ReportItem("validation", err.getKey(), code));
}
}
- return;
}
- Response created = repository.create(probe, "land");
- newProbe = ((Probe)created.getData());
+ else {
+ Response created = repository.create(probe, "land");
+ newProbe = ((Probe)created.getData());
+ }
}
} catch (InvalidTargetObjectTypeException e) {
ReportItem err = new ReportItem();
@@ -203,49 +213,48 @@
}
return;
}
- if (newProbe == null) {
- // Only occurs if object type is not probe
- return;
- }
- // Create kommentar objects
- List<KommentarP> kommentare = new ArrayList<KommentarP>();
- for (int i = 0; i < object.getKommentare().size(); i++) {
- KommentarP tmp = createProbeKommentar(object.getKommentare().get(i), newProbe.getId());
- if (tmp != null) {
- kommentare.add(tmp);
+
+ if (newProbe != null) {
+ // Create kommentar objects
+ List<KommentarP> kommentare = new ArrayList<KommentarP>();
+ for (int i = 0; i < object.getKommentare().size(); i++) {
+ KommentarP tmp = createProbeKommentar(object.getKommentare().get(i), newProbe.getId());
+ if (tmp != null) {
+ kommentare.add(tmp);
+ }
}
- }
- // Persist kommentar objects
- merger.mergeKommentare(newProbe, kommentare);
+ // Persist kommentar objects
+ merger.mergeKommentare(newProbe, kommentare);
- // Create zusatzwert objects
- List<ZusatzWert> zusatzwerte = new ArrayList<ZusatzWert>();
- for (int i = 0; i < object.getZusatzwerte().size(); i++) {
- ZusatzWert tmp = createZusatzwert(object.getZusatzwerte().get(i), newProbe.getId());
- if (tmp != null) {
- zusatzwerte.add(tmp);
+ // Create zusatzwert objects
+ List<ZusatzWert> zusatzwerte = new ArrayList<ZusatzWert>();
+ for (int i = 0; i < object.getZusatzwerte().size(); i++) {
+ ZusatzWert tmp = createZusatzwert(object.getZusatzwerte().get(i), newProbe.getId());
+ if (tmp != null) {
+ zusatzwerte.add(tmp);
+ }
}
- }
- // Persist zusatzwert objects
- merger.mergeZusatzwerte(newProbe, zusatzwerte);
+ // Persist zusatzwert objects
+ merger.mergeZusatzwerte(newProbe, zusatzwerte);
- // Merge entnahmeOrt
- createEntnahmeOrt(object.getEntnahmeOrt(), newProbe.getId());
+ // Merge entnahmeOrt
+ createEntnahmeOrt(object.getEntnahmeOrt(), newProbe.getId());
- // Create ursprungsOrte
- List<Ortszuordnung> uOrte = new ArrayList<Ortszuordnung>();
- for (int i = 0; i < object.getUrsprungsOrte().size(); i++) {
- Ortszuordnung tmp = createUrsprungsOrt(object.getUrsprungsOrte().get(i), newProbe.getId());
- if (tmp != null) {
- uOrte.add(tmp);
+ // Create ursprungsOrte
+ List<Ortszuordnung> uOrte = new ArrayList<Ortszuordnung>();
+ for (int i = 0; i < object.getUrsprungsOrte().size(); i++) {
+ Ortszuordnung tmp = createUrsprungsOrt(object.getUrsprungsOrte().get(i), newProbe.getId());
+ if (tmp != null) {
+ uOrte.add(tmp);
+ }
}
- }
- // Persist ursprungsOrte
- merger.mergeUrsprungsOrte(newProbe.getId(), uOrte);
+ // Persist ursprungsOrte
+ merger.mergeUrsprungsOrte(newProbe.getId(), uOrte);
- // Create messung objects
- for (int i = 0; i < object.getMessungen().size(); i++) {
- create(object.getMessungen().get(i), newProbe.getId(), newProbe.getMstId());
+ // Create messung objects
+ for (int i = 0; i < object.getMessungen().size(); i++) {
+ create(object.getMessungen().get(i), newProbe.getId(), newProbe.getMstId());
+ }
}
Violation violation = probeValidator.validate(newProbe);
for (Entry<String, List<Integer>> warn : violation.getWarnings().entrySet()) {
More information about the Lada-commits
mailing list