raimund@626: /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz raimund@626: * Software engineering by Intevation GmbH raimund@626: * raimund@626: * This file is Free Software under the GNU GPL (v>=3) raimund@626: * and comes with ABSOLUTELY NO WARRANTY! Check out raimund@626: * the documentation coming with IMIS-Labordaten-Application for details. raimund@626: */ raimund@610: package de.intevation.lada.importer.laf; raimund@610: raimund@610: import java.math.BigInteger; raimund@671: import java.util.ArrayList; raimund@610: import java.util.List; raimund@610: raimund@610: import javax.inject.Inject; raimund@610: raimund@671: import org.apache.log4j.Logger; raimund@671: raimund@671: import de.intevation.lada.importer.ReportItem; raimund@610: import de.intevation.lada.model.land.LOrt; raimund@610: import de.intevation.lada.model.stamm.SOrt; raimund@671: import de.intevation.lada.model.stamm.Staat; raimund@671: import de.intevation.lada.model.stamm.Verwaltungseinheit; raimund@610: import de.intevation.lada.util.annotation.RepositoryConfig; raimund@671: import de.intevation.lada.util.data.QueryBuilder; raimund@610: import de.intevation.lada.util.data.Repository; raimund@610: import de.intevation.lada.util.data.RepositoryType; raimund@610: raimund@610: /** raimund@610: * Class to produce Ort/LOrt objects from a given set of attributes. raimund@610: * raimund@610: * @author Raimund Renkert raimund@610: */ raimund@610: public class OrtCreator raimund@610: { raimund@610: @Inject raimund@671: private Logger logger; raimund@671: raimund@671: @Inject raimund@610: @RepositoryConfig(type=RepositoryType.RW) raimund@610: private Repository repository; raimund@610: raimund@671: /** raimund@671: * List of warnings. raimund@671: */ raimund@671: private List warnings; raimund@671: raimund@671: /** raimund@671: * List of errors. raimund@671: */ raimund@671: private List errors; raimund@671: raimund@610: private Integer probeId; raimund@610: private Integer ortId; raimund@610: private String ortCode; raimund@610: private String ortTyp; raimund@610: private String zusatztext; raimund@610: private String landLang; raimund@610: private String landKurz; raimund@610: private String landS; raimund@610: private String gemSchluessel; raimund@610: private String gemName; raimund@610: private String koordArt; raimund@610: private String koord; raimund@610: private String koordS; raimund@610: private String bezeichnung; raimund@610: private String beschreibung; raimund@610: private String nuts; raimund@610: private String hoehe; raimund@610: private String koordinaten; raimund@610: private String koordinatenS; raimund@610: raimund@610: public OrtCreator() { raimund@610: this.ortId = null; raimund@671: this.warnings = new ArrayList(); raimund@671: this.errors = new ArrayList(); raimund@671: } raimund@671: raimund@671: /** raimund@671: * @return the warnings raimund@671: */ raimund@671: public List getWarnings() { raimund@671: return warnings; raimund@671: } raimund@671: raimund@671: /** raimund@671: * @return the errors raimund@671: */ raimund@671: public List getErrors() { raimund@671: return errors; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the probeId raimund@610: */ raimund@610: public Integer getProbeId() { raimund@610: return this.probeId; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param probeId the probeId to set raimund@610: */ raimund@610: public void setProbeId(Integer probeId) { raimund@610: this.probeId = probeId; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the ortCode raimund@610: */ raimund@610: public String getOrtCode() { raimund@610: return ortCode; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param ortCode the ortCode to set raimund@610: */ raimund@610: public void setOrtCode(String ortCode) { raimund@610: this.ortCode = ortCode; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the ortTyp raimund@610: */ raimund@610: public String getOrtTyp() { raimund@610: return ortTyp; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param ortTyp the ortTyp to set raimund@610: */ raimund@610: public void setOrtTyp(String ortTyp) { raimund@610: this.ortTyp = ortTyp; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the zusatztext raimund@610: */ raimund@610: public String getZusatztext() { raimund@610: return zusatztext; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param zusatztext the zusatztext to set raimund@610: */ raimund@610: public void setZusatztext(String zusatztext) { raimund@610: this.zusatztext = zusatztext; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the landLang raimund@610: */ raimund@610: public String getLandLang() { raimund@610: return landLang; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param landLang the landLang to set raimund@610: */ raimund@610: public void setLandLang(String landLang) { raimund@610: this.landLang = landLang; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the landKurz raimund@610: */ raimund@610: public String getLandKurz() { raimund@610: return landKurz; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param landKurz the landKurz to set raimund@610: */ raimund@610: public void setLandKurz(String landKurz) { raimund@610: this.landKurz = landKurz; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the landS raimund@610: */ raimund@610: public String getLandS() { raimund@610: return landS; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param landS the landS to set raimund@610: */ raimund@610: public void setLandS(String landS) { raimund@610: this.landS = landS; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the gemSchluessel raimund@610: */ raimund@610: public String getGemSchluessel() { raimund@610: return gemSchluessel; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param gemSchluessel the gemSchluessel to set raimund@610: */ raimund@610: public void setGemSchluessel(String gemSchluessel) { raimund@610: this.gemSchluessel = gemSchluessel; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the koordArt raimund@610: */ raimund@610: public String getKoordArt() { raimund@610: return koordArt; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param koordArt the koordArt to set raimund@610: */ raimund@610: public void setKoordArt(String koordArt) { raimund@610: this.koordArt = koordArt; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the koord raimund@610: */ raimund@610: public String getKoord() { raimund@610: return koord; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param koord the koord to set raimund@610: */ raimund@610: public void setKoord(String koord) { raimund@610: this.koord = koord; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the koordS raimund@610: */ raimund@610: public String getKoordS() { raimund@610: return koordS; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param koordS the koordS to set raimund@610: */ raimund@610: public void setKoordS(String koordS) { raimund@610: this.koordS = koordS; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the nuts raimund@610: */ raimund@610: public String getNuts() { raimund@610: return nuts; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param nuts the nuts to set raimund@610: */ raimund@610: public void setNuts(String nuts) { raimund@610: this.nuts = nuts; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the hoehe raimund@610: */ raimund@610: public String getHoehe() { raimund@610: return hoehe; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param hoehe the hoehe to set raimund@610: */ raimund@610: public void setHoehe(String hoehe) { raimund@610: this.hoehe = hoehe; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the bezeichung raimund@610: */ raimund@610: public String getBezeichnung() { raimund@610: return bezeichnung; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param bezeichnung the bezeichnung to set raimund@610: */ raimund@610: public void setBezeichnung(String bezeichnung) { raimund@610: this.bezeichnung = bezeichnung; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the gemName raimund@610: */ raimund@610: public String getGemName() { raimund@610: return gemName; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param gemName the gemName to set raimund@610: */ raimund@610: public void setGemName(String gemName) { raimund@610: this.gemName = gemName; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the beschreibung raimund@610: */ raimund@610: public String getBeschreibung() { raimund@610: return beschreibung; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param beschreibung the beschreibung to set raimund@610: */ raimund@610: public void setBeschreibung(String beschreibung) { raimund@610: this.beschreibung = beschreibung; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the koordinaten raimund@610: */ raimund@610: public String getKoordinaten() { raimund@610: return koordinaten; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param koordinaten the koordinaten to set raimund@610: */ raimund@610: public void setKoordinaten(String koordinaten) { raimund@610: this.koordinaten = koordinaten; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @return the koordinatenS raimund@610: */ raimund@610: public String getKoordinatenS() { raimund@610: return koordinatenS; raimund@610: } raimund@610: raimund@610: /** raimund@610: * @param koordinatenS the koordinatenS to set raimund@610: */ raimund@610: public void setKoordinatenS(String koordinatenS) { raimund@610: this.koordinatenS = koordinatenS; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Add an attribute to the OrtCreator. The creator is used to build the raimund@610: * two objects Ort and LOrt. raimund@610: * raimund@610: * @param key The key mapping to a object member. raimund@610: * @param value The value to set. raimund@610: * @param ort The creator object. raimund@610: * @return The updated creator object. raimund@610: */ raimund@610: public void addAttribute( raimund@610: String key, raimund@610: Object value raimund@610: ) { raimund@610: if ("ort_code".equals(key)) { raimund@610: this.setOrtCode(value.toString()); raimund@610: } raimund@610: if ("ort_typ".equals(key)) { raimund@610: this.setOrtTyp(value.toString()); raimund@610: } raimund@610: if ("ort_zusatz".equals(key)) { raimund@610: this.setZusatztext(value.toString()); raimund@610: } raimund@610: if ("ort_land_lang".equals(key)) { raimund@610: this.setLandLang(value.toString()); raimund@610: } raimund@610: if ("ort_land_kurz".equals(key)) { raimund@610: this.setLandKurz(value.toString()); raimund@610: } raimund@610: if ("ort_land_s".equals(key)) { raimund@610: this.setLandS(value.toString()); raimund@610: } raimund@610: if ("ort_gemeindeschluessel".equals(key)) { raimund@610: this.setGemSchluessel(value.toString()); raimund@610: } raimund@610: if ("ort_bezeichnung".equals(key)) { raimund@610: this.setBezeichnung(value.toString()); raimund@610: } raimund@610: if ("ort_beschreibung".equals(key)) { raimund@610: this.setBeschreibung(value.toString()); raimund@610: } raimund@610: if ("ort_nuts_code".equals(key)) { raimund@610: this.setNuts(value.toString()); raimund@610: } raimund@610: if ("ort_hoehe_land".equals(key)) { raimund@610: this.setHoehe(value.toString()); raimund@610: } raimund@610: if ("ort_koordinaten".equals(key)) { raimund@610: this.setKoordinaten(value.toString()); raimund@610: } raimund@610: if ("ort_koordinaten_s".equals(key)) { raimund@610: this.setKoordinatenS(value.toString()); raimund@610: } raimund@610: } raimund@610: raimund@610: raimund@610: /** raimund@610: * Create the Ort object. raimund@610: * raimund@610: * @return The new Ort. raimund@610: */ raimund@610: public SOrt toOrt() { raimund@610: if (this.ortCode != null && this.ortCode.length() > 0) { raimund@610: return null; raimund@610: } raimund@671: logger.debug("create a new ort"); raimund@610: SOrt ort = new SOrt(); raimund@671: repository.create(ort, "stamm"); raimund@610: this.ortId = ort.getId(); raimund@610: boolean koord = true; raimund@610: if (this.koordinatenS != null && this.koordinatenS.length() > 0) { raimund@610: ort = setKoordinatenS(ort); raimund@610: koord = false; raimund@610: if (this.koordinaten != null && this.koordinaten.length() > 0) { raimund@671: this.warnings.add(new ReportItem("koodinaten", null, 631)); raimund@610: } raimund@610: } raimund@610: else if (this.koordinaten != null && this.koordinaten.length() > 0) { raimund@610: ort = setKoordinaten(ort); raimund@610: koord = false; raimund@610: } raimund@610: if (this.gemSchluessel != null && raimund@610: this.gemSchluessel.length() > 0){ raimund@610: ort = setGemeindeS(ort, koord); raimund@610: koord = false; raimund@610: if(this.gemName != null && this.gemName.length() > 0) { raimund@671: this.warnings.add(new ReportItem("gemName", null, 631)); raimund@610: } raimund@610: } raimund@610: else if (this.gemName != null && this.gemName.length() > 0) { raimund@610: ort = setGemeinde(ort, koord); raimund@610: koord = false; raimund@610: } raimund@610: if(this.landS != null && this.landS.length() > 0) { raimund@610: ort = setLandS(ort, koord); raimund@610: koord = false; raimund@610: if (this.landLang != null && this.landLang.length() > 0) { raimund@671: this.warnings.add(new ReportItem("landLang", null, 631)); raimund@610: } raimund@610: if (this.landKurz != null && this.landKurz.length() > 0) { raimund@671: this.warnings.add(new ReportItem("landKurz", null, 631)); raimund@610: } raimund@610: } raimund@610: else if (this.landKurz != null && this.landKurz.length() > 0) { raimund@610: ort = setLandKurz(ort, koord); raimund@610: koord = false; raimund@610: if (this.landLang != null && this.landLang.length() > 0) { raimund@671: this.warnings.add(new ReportItem("landLang", null, 631)); raimund@610: } raimund@610: } raimund@610: else if (this.landLang != null && this.landLang.length() > 0) { raimund@610: ort = setLandLang(ort, koord); raimund@610: } raimund@610: if (koord) { raimund@671: this.warnings.add(new ReportItem("koordinaten", null, 631)); raimund@610: return null; raimund@610: } raimund@610: if (this.nuts != null && this.nuts.length() > 0) { raimund@610: ort.setNutsCode(nuts); raimund@610: } raimund@610: else if (ort.getVerwaltungseinheitId() != null && raimund@610: ort.getVerwaltungseinheitId().length() > 0) raimund@610: { raimund@671: QueryBuilder builder = raimund@671: new QueryBuilder( raimund@671: repository.entityManager("stamm"), raimund@671: Verwaltungseinheit.class); raimund@671: builder.and("id", ort.getVerwaltungseinheitId()); raimund@685: @SuppressWarnings("unchecked") raimund@671: List einheit = raimund@671: (List)repository.filter( raimund@671: builder.getQuery(), raimund@671: "stamm").getData(); raimund@610: raimund@671: if (!einheit.isEmpty()) { raimund@671: ort.setNutsCode(einheit.get(0).getNuts()); raimund@671: } raimund@610: } raimund@610: ort.setBeschreibung(beschreibung); raimund@610: if (this.hoehe != null) { raimund@610: ort.setHoeheLand(Float.valueOf(hoehe)); raimund@610: } raimund@671: repository.update(ort, "stamm"); raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Find the SStaat object identified by the land_lang string and set a raimund@610: * reference to the ort object. raimund@610: * raimund@610: * @param ort The ort object. raimund@610: * @param koord Set the coordinates or not. raimund@610: * @return The Ort object. raimund@610: */ raimund@610: private SOrt setLandLang(SOrt ort, boolean koord) { raimund@671: QueryBuilder builder = raimund@671: new QueryBuilder( raimund@671: repository.entityManager("stamm"), raimund@671: Staat.class); raimund@671: builder.and("staat", this.landLang); raimund@685: @SuppressWarnings("unchecked") raimund@671: List staat = raimund@671: (List)repository.filter( raimund@671: builder.getQuery(), raimund@671: "stamm").getData(); raimund@610: raimund@671: if (staat.isEmpty()) { raimund@671: this.warnings.add(new ReportItem("landLang", null, 631)); raimund@610: return ort; raimund@610: } raimund@671: ort.setStaatId(staat.get(0).getId()); raimund@610: if (koord) { raimund@671: ort.setKoordXExtern(staat.get(0).getKoordXExtern()); raimund@671: ort.setKoordYExtern(staat.get(0).getKoordYExtern()); raimund@610: } raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Find the SStaat object identified by the land_kurz string and set a raimund@610: * reference to the ort object. raimund@610: * raimund@610: * @param ort The ort object. raimund@610: * @param koord Set the coordinates or not. raimund@610: * @return The Ort object. raimund@610: */ raimund@610: private SOrt setLandKurz(SOrt ort, boolean koord) { raimund@671: QueryBuilder builder = raimund@671: new QueryBuilder( raimund@671: repository.entityManager("stamm"), raimund@671: Staat.class); raimund@671: builder.and("staatKurz", this.landKurz); raimund@685: @SuppressWarnings("unchecked") raimund@671: List staat = raimund@671: (List)repository.filter( raimund@671: builder.getQuery(), raimund@671: "stamm").getData(); raimund@610: raimund@671: if (staat.isEmpty()) { raimund@671: this.warnings.add(new ReportItem("landKurz", null, 631)); raimund@610: return ort; raimund@610: } raimund@671: ort.setStaatId(staat.get(0).getId()); raimund@610: if (koord) { raimund@671: ort.setKoordXExtern(staat.get(0).getKoordXExtern()); raimund@671: ort.setKoordYExtern(staat.get(0).getKoordYExtern()); raimund@610: } raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Find the SStaat object identified by the land_s id and set a raimund@610: * reference to the ort object. raimund@610: * raimund@610: * @param ort The ort object. raimund@610: * @param koord Set the coordinates or not. raimund@610: * @return The Ort object. raimund@610: */ raimund@610: private SOrt setLandS(SOrt ort, boolean koord) { raimund@610: ort.setStaatId(Integer.valueOf(this.landS)); raimund@610: if (koord) { raimund@671: QueryBuilder builder = raimund@671: new QueryBuilder( raimund@671: repository.entityManager("stamm"), raimund@671: Staat.class); raimund@671: builder.and("id", this.landS); raimund@685: @SuppressWarnings("unchecked") raimund@671: List staat = raimund@671: (List)repository.filter( raimund@671: builder.getQuery(), raimund@671: "stamm").getData(); raimund@671: raimund@671: if (staat.isEmpty()) { raimund@671: this.warnings.add(new ReportItem("staat", null, 631)); raimund@610: return ort; raimund@610: } raimund@671: ort.setKoordXExtern(staat.get(0).getKoordXExtern()); raimund@671: ort.setLongitude(Double.valueOf(staat.get(0).getKoordXExtern())); raimund@671: ort.setKoordYExtern(staat.get(0).getKoordYExtern()); raimund@671: ort.setLatitude(Double.valueOf(staat.get(0).getKoordYExtern())); raimund@610: } raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Find the SVerwaltungseinheit object identified by the gem_name string raimund@610: * and set a reference to the ort object. raimund@610: * raimund@610: * @param ort The ort object. raimund@610: * @param koord Set the coordinates or not. raimund@610: * @return The Ort object. raimund@610: */ raimund@610: private SOrt setGemeinde(SOrt ort, boolean koord) { raimund@671: QueryBuilder builder = raimund@671: new QueryBuilder( raimund@671: repository.entityManager("stamm"), raimund@671: Verwaltungseinheit.class); raimund@671: builder.and("bezeichnung", this.gemName); raimund@685: @SuppressWarnings("unchecked") raimund@671: List einheit= raimund@671: (List)repository.filter( raimund@671: builder.getQuery(), raimund@671: "stamm").getData(); raimund@671: if (einheit.isEmpty()) { raimund@671: this.warnings.add(new ReportItem("verwaltungseinheit", null, 631)); raimund@610: return ort; raimund@610: } raimund@671: ort.setVerwaltungseinheitId(einheit.get(0).getId()); raimund@610: if (koord) { raimund@671: ort.setKoordXExtern(einheit.get(0).getKoordXExtern()); raimund@671: ort.setKoordYExtern(einheit.get(0).getKoordYExtern()); raimund@610: } raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Find the SVerwaltungseinheit object identified by the gem_schluessel id raimund@610: * and set a reference to the ort object. raimund@610: * raimund@610: * @param ort The ort object. raimund@610: * @param koord Set the coordinates or not. raimund@610: * @return The Ort object. raimund@610: */ raimund@610: private SOrt setGemeindeS(SOrt ort, boolean koord) { raimund@610: ort.setVerwaltungseinheitId(this.gemSchluessel); raimund@610: if (koord) { raimund@671: QueryBuilder builder = raimund@671: new QueryBuilder( raimund@671: repository.entityManager("stamm"), raimund@671: Verwaltungseinheit.class); raimund@671: builder.and("bezeichnung", this.gemName); raimund@685: @SuppressWarnings("unchecked") raimund@671: List einheit= raimund@671: (List)repository.filter( raimund@671: builder.getQuery(), raimund@671: "stamm").getData(); raimund@671: if (einheit.isEmpty()) { raimund@671: this.warnings.add(new ReportItem("verwaltungseinheit", null, 631)); raimund@610: return ort; raimund@610: } raimund@671: ort.setKoordXExtern(einheit.get(0).getKoordXExtern()); raimund@671: ort.setKoordYExtern(einheit.get(0).getKoordYExtern()); raimund@610: } raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Parse the coordinates and the the attributes to the new ort object. raimund@610: * raimund@610: * @param ort The ort object. raimund@610: * @return The Ort object. raimund@610: */ raimund@610: private SOrt setKoordinaten(SOrt ort) { raimund@610: String art = ""; raimund@610: String x = ""; raimund@610: String y = ""; raimund@610: String tmp = ""; raimund@610: if (this.koordinaten.startsWith("\"")) { raimund@610: tmp = this.koordinaten.substring(1); raimund@610: art = tmp.substring(0, tmp.indexOf("\"")); raimund@610: tmp = tmp.substring(tmp.indexOf("\"") + 2); raimund@610: } raimund@610: else { raimund@610: art = this.koordinaten.substring(0, this.koordinaten.indexOf(" ")); raimund@610: tmp = this.koordinaten.substring( raimund@610: 0, this.koordinaten.indexOf(" ") + 1); raimund@610: } raimund@610: if (tmp.startsWith("\"")) { raimund@610: tmp = tmp.substring(1); raimund@610: x = tmp.substring(0, tmp.indexOf("\"")); raimund@610: tmp = tmp.substring(0, tmp.indexOf("\"") + 2); raimund@610: } raimund@610: else { raimund@610: x = tmp.substring(0, tmp.indexOf(" ")); raimund@610: tmp = tmp.substring(0, tmp.indexOf(" ") + 1); raimund@610: } raimund@610: if (tmp.startsWith("\"")) { raimund@610: tmp = tmp.substring(1); raimund@610: y = tmp.substring(0, tmp.indexOf("\"")); raimund@610: } raimund@610: else { raimund@610: y = tmp; raimund@610: } raimund@610: ort.setKoordXExtern(x); raimund@610: ort.setKoordYExtern(y); raimund@685: ort.setKoordinatenartId(Integer.valueOf(art)); raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Parse the coordinates and the the attributes to the new ort object. raimund@610: * raimund@610: * @param ort The ort object. raimund@610: * @return The Ort object. raimund@610: */ raimund@610: private SOrt setKoordinatenS(SOrt ort) { raimund@610: String art = ""; raimund@610: String x = ""; raimund@610: String y = ""; raimund@610: String tmp = ""; raimund@610: if (this.koordinatenS.startsWith("\"")) { raimund@610: tmp = this.koordinatenS.substring(1); raimund@610: art = tmp.substring(0, tmp.indexOf("\"")); raimund@610: tmp = tmp.substring(tmp.indexOf("\"") + 2); raimund@610: } raimund@610: else { raimund@610: art = this.koordinatenS.substring(0, this.koordinatenS.indexOf(" ")); raimund@610: tmp = this.koordinatenS.substring( raimund@610: this.koordinatenS.indexOf(" ") + 1); raimund@610: } raimund@610: if (tmp.startsWith("\"")) { raimund@610: tmp = tmp.substring(1); raimund@610: x = tmp.substring(0, tmp.indexOf("\"")); raimund@610: tmp = tmp.substring(tmp.indexOf("\"") + 2); raimund@610: } raimund@610: else { raimund@610: x = tmp.substring(0, tmp.indexOf(" ")); raimund@610: tmp = tmp.substring(tmp.indexOf(" ") + 1); raimund@610: } raimund@610: if (tmp.startsWith("\"")) { raimund@610: tmp = tmp.substring(1); raimund@610: y = tmp.substring(0, tmp.indexOf("\"")); raimund@610: } raimund@610: else { raimund@610: y = tmp; raimund@610: } raimund@610: ort.setKoordXExtern(x); raimund@610: ort.setLongitude(Double.valueOf(x)); raimund@610: ort.setKoordYExtern(y); raimund@610: ort.setLatitude(Double.valueOf(y)); raimund@685: ort.setKoordinatenartId(Integer.valueOf(art)); raimund@610: return ort; raimund@610: } raimund@610: raimund@610: /** raimund@610: * Create the new LOrt object from the given attributes. raimund@610: * raimund@610: * @return The new LOrt object. raimund@610: */ raimund@610: public LOrt toLOrt() { raimund@610: if (this.ortId == null && raimund@615: (this.ortCode == null || this.ortCode.length() == 0) raimund@615: ) { raimund@610: return null; raimund@610: } raimund@610: if(this.ortCode != null && this.ortCode.length() > 0) { raimund@671: QueryBuilder builder = raimund@671: new QueryBuilder( raimund@671: repository.entityManager("stamm"), raimund@671: SOrt.class); raimund@671: builder.and("bezeichnung", this.ortCode); raimund@685: @SuppressWarnings("unchecked") raimund@671: List orte= raimund@671: (List)repository.filter( raimund@671: builder.getQuery(), raimund@671: "stamm").getData(); raimund@671: if (orte != null && !orte.isEmpty()) { raimund@671: this.ortId = orte.get(0).getId(); raimund@610: } raimund@610: } raimund@610: LOrt ort = new LOrt(); raimund@610: ort.setOrt(BigInteger.valueOf(this.ortId)); raimund@610: ort.setProbeId(this.probeId); raimund@610: ort.setOrtsTyp(this.ortTyp); raimund@610: ort.setOrtszusatztext(this.zusatztext); raimund@610: return ort; raimund@610: } raimund@610: raimund@711: /** raimund@711: * Reset the current data sets. raimund@711: */ raimund@610: public void reset() { raimund@610: this.beschreibung = null; raimund@610: this.bezeichnung = null; raimund@610: this.gemName = null; raimund@610: this.gemSchluessel = null; raimund@610: this.hoehe = null; raimund@610: this.koord = null; raimund@610: this.koordArt = null; raimund@610: this.koordinaten = null; raimund@610: this.koordinatenS = null; raimund@610: this.koordS = null; raimund@610: this.landKurz = null; raimund@610: this.landLang = null; raimund@610: this.landS = null; raimund@610: this.nuts = null; raimund@610: this.ortCode = null; raimund@610: this.ortId = null; raimund@610: this.ortTyp = null; raimund@610: this.probeId = null; raimund@610: this.zusatztext = null; raimund@610: } raimund@610: }