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: }