# HG changeset patch # User Raimund Renkert # Date 1378800965 -7200 # Node ID d39d3886b97dc69b800f32e193f15a36e6ae4e36 # Parent e56527c79a46bf1fd9e7caa638513245e4cf864d Use the new ort creator to produce ort and lort objects from laf attributes. diff -r e56527c79a46 -r d39d3886b97d src/main/java/de/intevation/lada/data/importer/AttributeMapper.java --- a/src/main/java/de/intevation/lada/data/importer/AttributeMapper.java Tue Sep 10 10:12:04 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/importer/AttributeMapper.java Tue Sep 10 10:16:05 2013 +0200 @@ -5,10 +5,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -24,11 +21,9 @@ import de.intevation.lada.model.LMessung; import de.intevation.lada.model.LMessungId; import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LOrt; import de.intevation.lada.model.LProbe; import de.intevation.lada.model.LProbeInfo; import de.intevation.lada.model.LZusatzWert; -import de.intevation.lada.model.Ort; import de.intevation.lada.model.SDatenbasis; import de.intevation.lada.model.SMessEinheit; import de.intevation.lada.model.SMessgroesse; @@ -62,6 +57,7 @@ this.warnings = new ArrayList(); this.errors = new ArrayList(); } + public LProbe addAttribute(String key, Object value, LProbe probe) { DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); if ("datenbasis_s".equals(key) && probe.getDatenbasisId() == null) { @@ -352,33 +348,52 @@ return null; } } - //TODO: Match the other values. return messwert; } - public LOrt addAttribute( + public OrtCreator addAttribute( String key, Object values, - LOrt ort + OrtCreator ort ) { - if ("ort_id".equals(key)) { - Integer v = Integer.valueOf(values.toString()); - ort.setOrtId(v); - } if ("ort_code".equals(key)) { - QueryBuilder builder = - new QueryBuilder(ortRepo.getEntityManager(), Ort.class); - builder.and("bezeichnung", values.toString()); - Response response = ortRepo.filter(builder.getQuery()); - List orte = (List)response.getData(); - Integer v = Integer.valueOf(orte.get(0).getOrtId()); - ort.setOrtId(v); + ort.setOrtCode(values.toString()); } if ("ort_typ".equals(key)) { - ort.setOrtsTyp(values.toString()); + ort.setOrtTyp(values.toString()); } if ("ort_zusatz".equals(key)) { - ort.setOrtszusatztext(values.toString()); + ort.setZusatztext(values.toString()); + } + if ("ort_land_lang".equals(key)) { + ort.setLandLang(values.toString()); + } + if ("ort_land_kurz".equals(key)) { + ort.setLandKurz(values.toString()); + } + if ("ort_land_s".equals(key)) { + ort.setLandS(values.toString()); + } + if ("ort_gemeindeschlüssel".equals(key)) { + ort.setGemSchluessel(values.toString()); + } + if ("ort_bezeichnung".equals(key)) { + ort.setBezeichnung(values.toString()); + } + if ("ort_beschreibung".equals(key)) { + ort.setBeschreibung(values.toString()); + } + if ("ort_nuts_code".equals(key)) { + ort.setNuts(values.toString()); + } + if ("ort_hoehe_land".equals(key)) { + ort.setHoehe(values.toString()); + } + if ("ort_koordinaten".equals(key)) { + ort.setKoordinaten(values.toString()); + } + if ("ort_koordinaten_s".equals(key)) { + ort.setKoordinatenS(values.toString()); } return ort; } diff -r e56527c79a46 -r d39d3886b97d src/main/java/de/intevation/lada/data/importer/LAFParser.java --- a/src/main/java/de/intevation/lada/data/importer/LAFParser.java Tue Sep 10 10:12:04 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/importer/LAFParser.java Tue Sep 10 10:16:05 2013 +0200 @@ -117,6 +117,7 @@ return; } writer.writeOrte(auth, producer.getOrte()); + writer.writeLOrte(auth, producer.getLOrte()); writer.writeMessungKommentare(auth, producer.getMessungsKommentare()); writer.writeMesswerte(auth, producer.getMesswerte()); List err = this.errors.get(probeId); @@ -179,7 +180,7 @@ } else if (current == '%' && !header && !value) { headerString = ""; - + producer.finishOrt(); key = false; header = true; } diff -r e56527c79a46 -r d39d3886b97d src/main/java/de/intevation/lada/data/importer/LAFProducer.java --- a/src/main/java/de/intevation/lada/data/importer/LAFProducer.java Tue Sep 10 10:12:04 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/importer/LAFProducer.java Tue Sep 10 10:16:05 2013 +0200 @@ -23,6 +23,7 @@ import de.intevation.lada.model.LProbe; import de.intevation.lada.model.LZusatzWert; import de.intevation.lada.model.LZusatzWertId; +import de.intevation.lada.model.Ort; import de.intevation.lada.model.SProbenZusatz; @Named("lafproducer") @@ -36,12 +37,13 @@ private LProbe probe; private LMessung messung; - private LOrt ort; + private OrtCreator ort; private List pKommentare; private List mKommentare; private List messungen; - private List orte; + private List lorte; + private List orte; private List messwerte; private List zusatzwerte; @@ -62,7 +64,7 @@ this.pKommentare = new ArrayList(); this.mKommentare = new ArrayList(); this.messungen = new ArrayList(); - this.orte = new ArrayList(); + this.lorte = new ArrayList(); this.messwerte = new ArrayList(); String fileName = System.getProperty("de.intevation.lada.importconfig"); LAFFormat format = new LAFFormat(); @@ -215,11 +217,15 @@ } @Override - public List getOrte() { + public List getOrte() { return this.orte; } @Override + public List getLOrte() { + return this.lorte; + } + @Override public List getProbenKommentare() { return this.pKommentare; } @@ -246,7 +252,8 @@ this.probe = new LProbe(); this.messungen = new ArrayList(); this.messung = null; - this.orte = new ArrayList(); + this.lorte = new ArrayList(); + this.orte = new ArrayList(); this.ort = null; this.messwerte = new ArrayList(); this.mKommentare = new ArrayList(); @@ -267,9 +274,16 @@ public void newOrt() { if (this.ort != null) { - this.orte.add(this.ort); + Ort o = this.ort.toOrt(); + if (o != null) { + this.orte.add(o); + } + LOrt lo = this.ort.toLOrt(); + if (lo != null) { + this.lorte.add(lo); + } } - this.ort = new LOrt(); + this.ort = new OrtCreator(); this.ort.setProbeId(this.probe.getProbeId()); } @@ -308,4 +322,12 @@ } return this.errors; } + + @Override + public void finishOrt() { + if (orte.isEmpty()) { + return; + } + + } } diff -r e56527c79a46 -r d39d3886b97d src/main/java/de/intevation/lada/data/importer/LAFWriter.java --- a/src/main/java/de/intevation/lada/data/importer/LAFWriter.java Tue Sep 10 10:12:04 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/importer/LAFWriter.java Tue Sep 10 10:16:05 2013 +0200 @@ -2,7 +2,6 @@ import java.math.BigInteger; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -14,7 +13,6 @@ import javax.persistence.Query; import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.data.QueryBuilder; import de.intevation.lada.data.Repository; import de.intevation.lada.model.LKommentarM; import de.intevation.lada.model.LKommentarP; @@ -22,8 +20,7 @@ import de.intevation.lada.model.LMesswert; import de.intevation.lada.model.LOrt; import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LProbeInfo; -import de.intevation.lada.rest.Response; +import de.intevation.lada.model.Ort; import de.intevation.lada.validation.ValidationException; import de.intevation.lada.validation.Validator; @@ -55,6 +52,9 @@ private Repository messungRepository; @Inject @Named("lortrepository") + private Repository lortRepository; + @Inject + @Named("ortrepository") private Repository ortRepository; @Inject @Named("lkommentarRepository") @@ -151,12 +151,20 @@ } @Override - public boolean writeOrte(AuthenticationResponse auth, List orte) { + public boolean writeOrte(AuthenticationResponse auth, List orte) { + for (Ort ort :orte) { + ortRepository.create(ort); + } + return true; + } + + @Override + public boolean writeLOrte(AuthenticationResponse auth, List orte) { for(LOrt ort: orte) { try { Map warn = ortValidator.validate(ort, false); - ortRepository.create(ort); + lortRepository.create(ort); if (warn != null) { for (String key : warn.keySet()) { warnings.add( @@ -362,8 +370,7 @@ if (probe.getSolldatumEnde() != null) { insert.setParameter("solldatum_ende", probe.getSolldatumEnde()); } - int res = insert.executeUpdate(); - int i = res; + insert.executeUpdate(); } private boolean authorized(LProbe probe, AuthenticationResponse auth) { diff -r e56527c79a46 -r d39d3886b97d src/main/java/de/intevation/lada/data/importer/Producer.java --- a/src/main/java/de/intevation/lada/data/importer/Producer.java Tue Sep 10 10:12:04 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/importer/Producer.java Tue Sep 10 10:16:05 2013 +0200 @@ -10,15 +10,18 @@ import de.intevation.lada.model.LOrt; import de.intevation.lada.model.LProbe; import de.intevation.lada.model.LZusatzWert; +import de.intevation.lada.model.Ort; public interface Producer { public void addData(String key, Object values) throws LAFParserException; + public void finishOrt(); public LProbe getProbe(); public List getMessungen(); - public List getOrte(); + public List getLOrte(); + public List getOrte(); public List getProbenKommentare(); public List getMessungsKommentare(); public List getMesswerte(); diff -r e56527c79a46 -r d39d3886b97d src/main/java/de/intevation/lada/data/importer/Writer.java --- a/src/main/java/de/intevation/lada/data/importer/Writer.java Tue Sep 10 10:12:04 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/importer/Writer.java Tue Sep 10 10:16:05 2013 +0200 @@ -9,6 +9,7 @@ import de.intevation.lada.model.LMesswert; import de.intevation.lada.model.LOrt; import de.intevation.lada.model.LProbe; +import de.intevation.lada.model.Ort; public interface Writer @@ -17,7 +18,8 @@ public boolean writeMessungen( AuthenticationResponse auth, List messungen); - public boolean writeOrte(AuthenticationResponse auth, List orte); + public boolean writeLOrte(AuthenticationResponse auth, List orte); + public boolean writeOrte(AuthenticationResponse auth, List orte); public boolean writeProbenKommentare( AuthenticationResponse auth, List kommentare);