diff --git a/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex b/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex
new file mode 100644
index 0000000..a768f8a
--- /dev/null
+++ b/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex
@@ -0,0 +1,161 @@
+
+
+ UBA GFH nach END DF7_10 Airports
+ Anna Tamm (wetransform GmbH)
+ 2023-11-15T16:11:09.513+01:00
+ 2024-05-16T16:51:50.307+02:00
+
+ UTF-8
+ false
+ eu.esdihumboldt.hale.io.project.hale25.xml
+ file:/C:/Users/AnnaTamm/gitRepos/uba-end-transformations/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex
+
+
+ UTF-8
+ a7443df2-9c56-453b-bd45-b4390ac8d54e
+ ../../Schemas/DF7_10_UBA-DE_HVS_HES_GFH.hsd.json
+ eu.esdihumboldt.hale.common.schema.hsd.json
+
+
+ UTF-8
+ 9549f4ac-e3f5-4bf7-8541-8ec8c914c667
+ ../../Schemas/DF7_10_Airports.hsd.json
+ eu.esdihumboldt.hale.common.schema.hsd.json
+
+
+ UTF-8
+ false
+ b2ca8a99-05aa-4253-89cc-1a8f65be1ace
+ "
+ 0
+ KriterienPrioritaeten
+ 1
+ true
+ ../../Lookup/KriterienPrioritaeten.csv
+ eu.esdihumboldt.hale.io.csv
+ ,
+ \
+
+
+ UTF-8
+ false
+ 32c747f4-d11e-4fc2-a75e-e08b0aab6071
+ "
+ 0
+ MaßnahmenLuft
+ 2
+ true
+ ../../Lookup/MaßnahmenLuft.csv
+ eu.esdihumboldt.hale.io.csv
+ ,
+ \
+
+
+ UTF-8
+ false
+ 93474127-9a08-4b69-8e92-eb86286e7efd
+ "
+ 0
+ BeteiligungInteressentraeger
+ 1
+ true
+ ../../Lookup/BeteiligungInteressentraeger.csv
+ eu.esdihumboldt.hale.io.csv
+ ,
+ \
+
+
+ UTF-8
+ false
+ 67142f52-4a80-4e31-8978-0ea3fbc40bf8
+ "
+ 0
+ BeteiligungMittel
+ 1
+ true
+ ../../Lookup/BeteiligungMittel.csv
+ eu.esdihumboldt.hale.io.csv
+ ,
+ \
+
+
+ ISO-8859-1
+ false
+ b1756c75-cbd2-4d0f-bf99-620f0867535a
+ "
+ 0
+ PruefungWirksamkeit
+ 1
+ true
+ ../../Lookup/PruefungWirksamkeit.csv
+ eu.esdihumboldt.hale.io.csv
+ ,
+ \
+
+
+ end_Checks
+ UTF-8
+ 81ed0e3c-95ba-431a-952e-37a445f81b6e
+ ../../Snippets/end.Checks.groovy
+ eu.esdihumboldt.hale.io.groovy
+ true
+
+
+ helperFunctions
+ UTF-8
+ 00f04884-bca3-4ac1-a36b-03429058cd4c
+ ../../Snippets/helperFunctions.groovy
+ eu.esdihumboldt.hale.io.groovy
+ true
+
+
+ ISO-8859-9
+ true
+ ce7f4ce5-ceb6-47ef-bb9d-b79c930792c4
+ "
+ 0
+ RB-RS_zu_NUTSCode
+ 1
+ true
+ ../../Lookup/RB-RS_zu_NUTSCode.csv
+ eu.esdihumboldt.hale.io.csv
+ ,
+ \
+
+
+ ISO-8859-1
+ true
+ b5e5b305-6d74-4790-89a7-3a222924e400
+ "
+ 0
+ VWG-RS_zu_LAUCodes
+ 1
+ true
+ ../../Lookup/VWG-RS_zu_LAUCodes.csv
+ eu.esdihumboldt.hale.io.csv
+ ,
+ \
+
+
+
+ UTF-8
+
+ true
+ NoiseActionPlanMajorAir,NAP_MajorAir,NAP_MajorAirCompetentAuthority,NAP_MajorAirLimitValues,NAP_AirMappingResultDetail,NAP_AirReductionMeasure,NAP_AirReductionHealthImpact_1,NAP_AirReductionHealthImpact_2,NAP_AirReductionHealthImpact_3,ESTATUnitReference,DatasetDefaultProperties,CodelistProperties
+ eu.esdihumboldt.hale.io.xls.xlsx
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex.alignment.xml b/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex.alignment.xml
new file mode 100644
index 0000000..58d9b42
--- /dev/null
+++ b/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex.alignment.xml
@@ -0,0 +1,686 @@
+
+
+
+
+
+
+
+
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+ exposedLden55( c.Lärmkartierung.personen_Lden55.value() )
+ exposedLnight50( c.Lärmkartierung.personen_Lnight55.value() )
+ situationForImprovementExplanation( c.Lärmkartierung.beschreibungProbleme.value() )
+
+ // get codelist values for 'kriterienPrio' like classified in lookup-table 'KriterienPrioritaeten'
+ def kriterienPrio = c.Lärmkartierung.krietrienPrio.values()
+ def kriterienPrio_classified = _snippets.helperFunctions.classifyListValues(kriterienPrio, 'b2ca8a99-05aa-4253-89cc-1a8f65be1ace')
+ situationForImprovementPrioritisationCriteria( kriterienPrio_classified.join("; ") )
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+
+// This groovy script collects the information from sheet 'Lärmkartierung'
+// No target is created.
+
+def bezeichnung = _source.p.Bezeichnung.value()
+def wert = _source.p.Wert.value()
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ if (bezeichnung.contains('Anzahl der Personen, die in dem vom Lärmaktionsplan erfassten Gebiet einer Lärmbelastung ab 55 dB(A) LDEN ausgesetzt sind')) {
+ c.Lärmkartierung.personen_Lden55 << wert
+ }
+ else if (bezeichnung.contains('Anzahl der Personen, die in dem vom Lärmaktionsplan erfassten Gebiet einer Lärmbelastung ab 50 dB(A) LNight ausgesetzt sind')) {
+ c.Lärmkartierung.personen_Lnight55 << wert
+ }
+ else if (bezeichnung.contains('Beschreibung der festgestellten Lärmprobleme und der verbesserungsbedürftigen Situationen')) {
+ c.Lärmkartierung.beschreibungProbleme << wert
+ }
+ else if (wert == 'Ja') {
+ c.Lärmkartierung.krietrienPrio << bezeichnung
+ }
+
+ def prioritiesAll = _snippets.helperFunctions.CODELIST_PrioritisationCriteriaText_DE()
+ if ( bezeichnung in prioritiesAll ) {
+ c.Lärmkartierung."${bezeichnung}" << wert
+ }
+
+}
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+ explanationMethod( 'A person is considered to be exposed to noise above an LDEN value of 55 dB(A) or an LNight value of 50 dB(A). The required reduction shall be at least 1 dB.' )
+ nrOfPeople( c.Wirkungen.personenReduktion.value() )
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+
+// This groovy script collects the information from sheet 'Ruhige_Gebiete'
+// No target is created.
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ if ((_source.p.Kennung.value() != "Kennung des ruhigen Gebiets") && _source.p.Kennung.value()) {
+ c.Ruhige_Gebiete.kennungGebiet << _source.p.Kennung.value()
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+
+// This groovy script collects the information from sheet 'Wirkung'
+// No target is created.
+
+def bezeichnung = _source.p.Bezeichnung.value()
+def wert = _source.p.Wert.value()
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ if (bezeichnung.contains('Geschätzte Anzahl der Personen in dem von dem Aktionsplan erfassten Gebiet, für die sich der Lärm innerhalb der nächsten fünf Jahre reduziert')) {
+ c.Wirkungen.personenReduktion << wert
+ }
+ else if (bezeichnung.contains('Erläuterung der Methode, die zur Schätzung der Anzahl der Personen, für die sich der Lärm reduziert, verwendet wurde')) {
+ c.Wirkungen.personenReduktionMethode << wert
+ }
+ else if (bezeichnung.contains('Geschätztes Kosten-Nutzen-Verhältnis der im Aktionsplan beschriebenen Maßnahmen')) {
+ c.Wirkungen.kostenNutzen << wert
+ }
+
+ else if (bezeichnung.contains('Angabe, ob der Lärmaktionsplan eine langfristige Strategie zur Reduzierung der Lärmbelastung vorsieht')) {
+ c.Wirkungen.strategie << wert
+ }
+ else if (bezeichnung.contains('Erläuterung der langfristigen Strategie zur Reduzierung der Lärmbelastung')) {
+ c.Wirkungen.strategieErlaeuterung << wert
+ }
+ else if (bezeichnung.contains('Geschätzte Gesamtkosten des Aktionsplans (ohne Maßnahmenumsetzung) [€]')) {
+ c.Wirkungen.kostenGesamt << wert
+ }
+ else if (bezeichnung.contains('Angabe, ob im Lärmaktionsplan ruhige Gebiete beschrieben werden')) {
+ c.Wirkungen.ruhigeGebiete << wert
+ }
+ else if (bezeichnung.contains('Angabe, ob Regelungen für die Überprüfung der Umsetzung des Lärmaktionsplans vorgesehen sind')) {
+ c.Wirkungen.pruefungUmsetzung << wert
+ }
+ else if (bezeichnung.contains('Erläuterung der geplanten Regelungen für die Überprüfung der Umsetzung des Lärmaktionsplans')) {
+ c.Wirkungen.pruefungUmsetzungErlaueterung << wert
+ }
+ else if (bezeichnung.contains('Angabe, ob Regelungen für die Überprüfung der Wirksamkeit des Lärmaktionsplans vorgesehen sind')) {
+ c.Wirkungen.pruefungWirksamkeit << wert
+ }
+ else if (bezeichnung.contains('Geplante Regelungen für die Überprüfung der Wirksamkeit des Lärmaktionsplans')) {
+ c.Wirkungen.pruefungWirksamkeitErlaeuterung << wert
+ }
+}
+
+
+
+ |
+
+
+
+
+
+
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ def kostenNutzen = c.Wirkungen.kostenNutzen.value()
+ if (kostenNutzen) {
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+ estimatedCostBenefit( kostenNutzen )
+ }
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+
+ def vorhandeneMaßnahmen = c.Maßnahmen.vorhandene.values()
+ if ( vorhandeneMaßnahmen ) {
+ // get codelist values for 'vorhandeneMaßnahmen' like classified in lookup-table 'MaßnahmenLuft'
+ def vorhandeneMaßnahmen_classified = _snippets.helperFunctions.classifyListValues(vorhandeneMaßnahmen, '32c747f4-d11e-4fc2-a75e-e08b0aab6071')
+ existingMeasure( vorhandeneMaßnahmen_classified.join("; ") )
+ }
+ else {
+ existingMeasure( 'noMeasure' )
+ }
+
+ def geplanteMaßnahmen = c.Maßnahmen.geplante.values()
+ def geplanteMaßnahmenNutzen = c.Maßnahmen.nutzen.value()
+ if (geplanteMaßnahmen) {
+ // get codelist values for 'geplanteMaßnahmen' like classified in lookup-table 'MaßnahmenLuft'
+ def geplanteMaßnahmen_classified = _snippets.helperFunctions.classifyListValues(geplanteMaßnahmen, '32c747f4-d11e-4fc2-a75e-e08b0aab6071')
+ plannedMeasureDetail_plannedMeasure( geplanteMaßnahmen_classified.join("; ") )
+ }
+ else {
+ plannedMeasureDetail_plannedMeasure( 'noMeasure' )
+
+ if ( !geplanteMaßnahmenNutzen ) {
+ geplanteMaßnahmenNutzen = 'Im Lärmaktionsplan sind keine Maßnahmen vorgesehen.'
+ }
+ }
+ plannedMeasureDetail_expectedBenefits( geplanteMaßnahmenNutzen )
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+
+// This groovy script collects the information from sheet 'Maßnahmen'
+// No target is created.
+
+def bezeichnung = _source.p.Bezeichnung.value()
+
+withTransformationContext {
+ def c = _.context.collector(it)
+ if (_source.p.geplanteMaßnahme.value() == 'Ja') {
+ c.Maßnahmen.geplante << bezeichnung
+ }
+ if (_source.p.vorhandeneMaßnahme.value() =='Ja') {
+ c.Maßnahmen.vorhandene << bezeichnung
+ }
+ if (bezeichnung == 'Erläuterung des erwarteten Nutzens durch die Umsetzung der geplanten Maßnahmen') {
+ c.Maßnahmen.nutzen << _source.p.'ErläuterungNutzen'.value()
+ }
+
+ def measuresAll = _snippets.helperFunctions.CODELIST_AirportMeasureText_DE()
+ if ( bezeichnung in measuresAll ) {
+ c.Maßnahmen."${bezeichnung}_vorhanden" << _source.p.vorhandeneMaßnahme.value()
+ c.Maßnahmen."${bezeichnung}_geplant" << _source.p.geplanteMaßnahme.value()
+ }
+
+}
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+ ICAOCode( c.Allgemeines.icaoCode.value() )
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+ competentAuthorityIdIdentifier( c.Allgemeines.kennungBehoerde.value() )
+ }
+}
+
+
+
+ |
+
+
+
+
+
+
+
+
+withTransformationContext {
+ def c = _.context.collector(it)
+
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+ limitValues_otherCriteriaDescription( c.Allgemeines.infoGrenzwert.value() )
+ limitValues_noiseLimitReportIdIdentifier( 'LR_DE_00_1' )
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+// validate source data
+_snippets.end_Checks{
+
+ // Validate sheet 'Allgemeines'
+ existsCheck('Z02 - v', 'Allgemeines', 'typ')
+ existsCheck('Z03 - v', 'Allgemeines', 'name')
+ existsCheck('Z04 - v', 'Allgemeines', 'bundesland')
+ integerCheck('Z05 - v', 'Z05 - k', 'Allgemeines', 'ags_rs')
+
+ withTransformationContext {
+ def c = _.context.collector(it)
+ typ = c.Allgemeines.typ.value()
+ }
+ if (typ == 'Gemeinde') {
+ generalCheck('Z05 - AGS', null, 'Allgemeines', 'ags_rs', 'is not a valid AGS', hasNumberOfDigits([8]))
+ }
+ else {
+ generalCheck('Z05 - RS', null, 'Allgemeines', 'ags_rs', 'is not a valid RS (3)', hasNumberOfDigits([3, 9]))
+ }
+
+ existsCheck('Z06 - v', 'Allgemeines', 'kennungPlan')
+ existsCheck('Z07 - v', 'Allgemeines', 'icaoCode')
+
+ existsCheck('Z10 - v', 'Allgemeines', 'nameBehoerde')
+ existsCheck('Z11 - v', 'Allgemeines', 'strasse')
+ existsCheck('Z12 - v', 'Allgemeines', 'hausnr')
+ existsCheck('Z13 - v', 'Allgemeines', 'ort')
+ existsCheck('Z14 - v', 'Allgemeines', 'plz')
+ existsCheck('Z15 - v', 'Allgemeines', 'kennungBehoerde')
+
+ dateCheck('Z17 - k', 'Z17 - v', 'Allgemeines', 'startDatum', 'dd.MM.yyyy')
+ dateCheck('Z18 - k', null, 'Allgemeines', 'endDatum', 'dd.MM.yyyy')
+
+ urlCheck('Z20 - k', null, 'Allgemeines', 'linkZumPlan')
+
+
+ // Validate sheet 'Öffentlichkeitsbeteiligung'
+ urlCheck('Z04 - k', null, 'Öffentlichkeitsbeteiligung', 'link')
+ dateCheck('Z06 - k', 'Z06 - v', 'Öffentlichkeitsbeteiligung', 'startDatum', 'dd.MM.yyyy')
+ dateCheck('Z07 - k', 'Z07 - v', 'Öffentlichkeitsbeteiligung', 'endDatum', 'dd.MM.yyyy')
+
+ def mittel = _snippets.helperFunctions.CODELIST_ConsultationMeansText_DE()
+ mittel.each { m ->
+ codelistCheck(m, null, 'Öffentlichkeitsbeteiligung', m, CODELIST_Boolean_DE() )
+ }
+ def interessentraeger = _snippets.helperFunctions.CODELIST_stakeholdersTypeText_DE()
+ interessentraeger.each { i ->
+ codelistCheck(i, null, 'Öffentlichkeitsbeteiligung', i, CODELIST_Boolean_DE() )
+ }
+
+ codelistCheck('Z28 - k', 'Z28 - v', 'Öffentlichkeitsbeteiligung', 'kommentareEingegangen', CODELIST_Boolean_DE() )
+ codelistCheck('Z29 - k', 'Z29 - v', 'Öffentlichkeitsbeteiligung', 'kommentareAufgenommen', CODELIST_Boolean_DE() )
+ codelistCheck('Z31 - k', 'Z31 - v', 'Öffentlichkeitsbeteiligung', 'lapUeberarbeitet', CODELIST_Boolean_DE() )
+ conditionalCheck('Z32 - v', 'Öffentlichkeitsbeteiligung', 'lapUeberarbeitet', 'lapUeberarbeitetKommentar', ['Ja'])
+
+
+ // Validate sheet 'Lärmkartierung'
+ numberCheck('Z03 - k', 'Z03 - v', 'Lärmkartierung', 'personen_Lnight55')
+ numberCheck('Z04 - k', 'Z04 - v', 'Lärmkartierung', 'personen_Lnight55')
+ existsCheck('Z05 - v', 'Lärmkartierung', 'beschreibungProbleme')
+ def prioritiesAll = _snippets.helperFunctions.CODELIST_PrioritisationCriteriaText_DE()
+ prioritiesAll.each { p ->
+ codelistCheck("${p}", null, 'Lärmkartierung', p, CODELIST_Boolean_DE() )
+ }
+
+
+ // Validate sheet 'Maßnahmen'
+ def measuresAll = _snippets.helperFunctions.CODELIST_AirportMeasureText_DE()
+ measuresAll.each { m ->
+ codelistCheck("${m} - geplant", null, 'Maßnahmen', "${m}_geplant", CODELIST_Boolean_DE() )
+ codelistCheck("${m} - vorhanden", null, 'Maßnahmen', "${m}_vorhanden", CODELIST_Boolean_DE() )
+ }
+ existsCheck('Z03 - v', 'Maßnahmen', 'nutzen')
+
+
+ // Validate sheet 'Wirkungen'
+ numberCheck('Z03 - k', 'Z03 - v', 'Wirkungen', 'personenReduktion')
+ codelistCheck('Z08 - k', 'Z08 - v', 'Wirkungen', 'strategie', CODELIST_Boolean_DE() )
+ conditionalCheck('Z09 - v', 'Wirkungen', 'strategie', 'strategieErlaeuterung', ['Ja'])
+ numberCheck('Z11 - k', null, 'Wirkungen', 'kostenGesamt')
+ codelistCheck('Z13 - k', 'Z13 - v', 'Wirkungen', 'ruhigeGebiete', CODELIST_Boolean_DE() )
+ codelistCheck('Z15 - k', 'Z15 - v', 'Wirkungen', 'pruefungUmsetzung', CODELIST_Boolean_DE() )
+ conditionalCheck('Z16 - v', 'Wirkungen', 'pruefungUmsetzung', 'pruefungUmsetzungErlaueterung', ['Ja'])
+ codelistCheck('Z18 - k', 'Z18 - v', 'Wirkungen', 'pruefungWirksamkeit', CODELIST_Boolean_DE() )
+ conditionalCheck('Z19 - v', 'Wirkungen', 'pruefungWirksamkeit', 'pruefungWirksamkeitErlaeuterung', ['Ja'])
+ codelistCheck('Z19 - k', null, 'Wirkungen', 'pruefungWirksamkeitErlaeuterung', CODELIST_EvaluationMechanismValue_DE() )
+
+}
+
+// Validate if entry is present in sheet Ruhige_Gebiete depending on whats inserted in sheet Wirkung
+// (Sheet Ruhige_Gebiete itself is validated in the separate QuietArea Mapping)
+withTransformationContext {
+ def c = _.context.collector(it)
+ def ruhigeGebPresent = c.Wirkungen.ruhigeGebiete.value()
+ def ruhigeGebKennung = c.Ruhige_Gebiete.kennungGebiet.values()
+
+ if ((ruhigeGebPresent == "Ja") && !ruhigeGebKennung) {
+ _log.error("If providing 'Ja' for ruhige Gebiete in 'Wirkungen', then at least one entry must be present in sheet 'Ruhige_Gebiete' [Ruhige_Gebiete]")
+ }
+ if ((ruhigeGebPresent == "Nein") && ruhigeGebKennung) {
+ _log.error("If providing 'Nein' for ruhige Gebiete in 'Wirkungen', then no entry should be given in sheet 'Ruhige_Gebiete' [Ruhige_Gebiete]")
+ }
+}
+
+// assign values to target sheet NoiseActionPlanMajorAir
+withTransformationContext {
+ def c = _.context.collector(it)
+ _target {
+ actionPlanId_identifier( c.Allgemeines.kennungPlan.value() )
+
+ legalContext_actionPlanStartDate( _snippets.helperFunctions.formatDate(c.Allgemeines.startDatum.value()) )
+ legalContext_actionPlanEndDate( _snippets.helperFunctions.formatDate(c.Allgemeines.endDatum.value()) )
+ legalContext_actionPlanDocument_citationLink( c.Allgemeines.linkZumPlan.value() )
+ legalContext_actionPlanDocument_citationLevel( 'sub-national' )
+ legalContext_actionPlanDocument_citationType( 'documentCitation' )
+
+ publicConsultation_consultationDocumentationSummary( c.Öffentlichkeitsbeteiligung.beschreibung.value() )
+ publicConsultation_consultationDocumentationOnline( c.Öffentlichkeitsbeteiligung.link.value() )
+ publicConsultation_consultationStartDate( _snippets.helperFunctions.formatDate(c.Öffentlichkeitsbeteiligung.startDatum.value()) )
+ publicConsultation_consultationEndDate( _snippets.helperFunctions.formatDate(c.Öffentlichkeitsbeteiligung.endDatum.value()) )
+ publicConsultation_otherConsultationMeans( c.Öffentlichkeitsbeteiligung.mittelAndere.value() )
+
+ // get codelist values for 'mittel' like classified in lookup-table 'BeteiligungMittel'
+ def mittel = c.Öffentlichkeitsbeteiligung.mittel.values()
+ def mittel_classified = _snippets.helperFunctions.classifyListValues( mittel, '67142f52-4a80-4e31-8978-0ea3fbc40bf8' )
+ publicConsultation_consultationMeans( mittel_classified.join("; ") )
+
+ // get codelist values for 'interessentraeger' like classified in lookup-table 'BeteiligungInteressentraeger'
+ def interessentraeger = c.Öffentlichkeitsbeteiligung.interessentraeger.values()
+ def interessentraeger_classified = _snippets.helperFunctions.classifyListValues(interessentraeger, '93474127-9a08-4b69-8e92-eb86286e7efd')
+ publicConsultation_stakeholdersType( interessentraeger_classified.join("; ") )
+
+ publicConsultation_otherStakeholdersType( c.Öffentlichkeitsbeteiligung.interessentraegerAndere.value() )
+ publicConsultation_numberOfParticipants( c.Öffentlichkeitsbeteiligung.anzahlTeilnehmer.value() )
+ publicConsultation_commentsReceived( _snippets.helperFunctions.classifyJaNein(c.Öffentlichkeitsbeteiligung.kommentareEingegangen.value()) )
+ publicConsultation_commentsIncludedInNAP( _snippets.helperFunctions.classifyJaNein(c.Öffentlichkeitsbeteiligung.kommentareAufgenommen.value()) )
+ publicConsultation_NAPReviewed( _snippets.helperFunctions.classifyJaNein(c.Öffentlichkeitsbeteiligung.lapUeberarbeitet.value()) )
+
+ if (c.Öffentlichkeitsbeteiligung.lapUeberarbeitet.value() == 'Nein' && !c.Öffentlichkeitsbeteiligung.lapUeberarbeitetKommentar.value()) {
+ publicConsultation_reviewExplanation( 'Eine Überarbeitung des Lärmaktionsplans nach der Öffentlichkeitsbeteiligung war nicht erforderlich.' )
+ }
+ else {
+ publicConsultation_reviewExplanation( c.Öffentlichkeitsbeteiligung.lapUeberarbeitetKommentar.value() )
+ }
+
+ longTermStrategy( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.strategie.value()) )
+ longTermStrategyExplanation( c.Wirkungen.strategieErlaeuterung.value() )
+
+ estimatedOverallCost( c.Wirkungen.kostenGesamt.value() )
+ if ( c.Wirkungen.kostenGesamt.value() ) {
+ costCurrency( 'Euro' )
+ }
+
+ quietAreas( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.ruhigeGebiete.value()) )
+
+ implementationMechanism( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.pruefungUmsetzung.value()) )
+ implementationMechanismDescription( c.Wirkungen.pruefungUmsetzungErlaueterung.value() )
+
+ resultsEvaluationMechanism( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.pruefungWirksamkeit.value()) )
+
+ // get codelist values for 'pruefungWirksamkeitErlaeuterung' like classified in lookup-table 'PruefungWirksamkeit'
+ def pruefWirksamkeitKom = c.Wirkungen.pruefungWirksamkeitErlaeuterung.value()
+ if (pruefWirksamkeitKom) {
+ def pruefWirksamkeitKom_classified = _snippets.helperFunctions.classifyListValues([pruefWirksamkeitKom], 'b1756c75-cbd2-4d0f-bf99-620f0867535a')
+ resultsEvaluationMechanismDescription( pruefWirksamkeitKom_classified.join("; ") )
+ }
+
+ }
+}
+
+
+ |
+
+
+
+
+
+
+
+
+
+// This groovy script collects the information from sheet 'Allgemeines'
+// No target is created.
+
+def bezeichnung = _source.p.Bezeichnung.value()
+def wert = _source.p.Wert.value()
+def types = ['Gemeinde', 'Verbandsgemeinde', 'Amt (MV)', 'Regierungsbezirk']
+
+withTransformationContext {
+ def c = _.context.collector(it)
+ if(bezeichnung) {
+ if (bezeichnung.contains('Vollständiger Name der Behörde')) {
+ c.Allgemeines.nameBehoerde << wert
+ }
+ else if (bezeichnung.contains('Name')) {
+ c.Allgemeines.name << wert
+ }
+ else if (bezeichnung.contains('Bundesland')) {
+ c.Allgemeines.bundesland << wert
+ }
+ else if (bezeichnung.contains('Amtlicher Gemeindeschlüssel (AGS)') || bezeichnung.contains('Regionalschlüssel (RS)')) {
+ c.Allgemeines.ags_rs << wert
+ }
+ else if (bezeichnung.contains('Kennung des Lärmaktionsplans')) {
+ c.Allgemeines.kennungPlan << wert
+ }
+ else if (bezeichnung.contains('ICAO-Code')) {
+ c.Allgemeines.icaoCode << wert
+ }
+ else if (bezeichnung.contains('Straße')) {
+ c.Allgemeines.strasse << wert
+ }
+ else if (bezeichnung.contains('Hausnummer')) {
+ c.Allgemeines.hausnr << wert
+ }
+ else if (bezeichnung.contains('Ort')) {
+ c.Allgemeines.ort << wert
+ }
+ else if (bezeichnung.contains('PLZ')) {
+ c.Allgemeines.plz << wert
+ }
+ else if (bezeichnung.contains('Kennung der zuständigen Behörde')) {
+ c.Allgemeines.kennungBehoerde << wert
+ }
+ else if (bezeichnung.contains('Annahme des Lärmaktionsplans (Datum)')) {
+ c.Allgemeines.startDatum << wert
+ }
+ else if (bezeichnung.contains('Voraussichtlicher Abschluss der Umsetzung des Lärmaktionsplans (Datum)')) {
+ c.Allgemeines.endDatum << wert
+ }
+ else if (bezeichnung.contains('Link zur Webseite des Lärmaktionsplans')) {
+ c.Allgemeines.linkZumPlan << wert
+ }
+ else if (bezeichnung.contains('Informationen über Lärmgrenzwerte, die als Kriterien für die Evaluierung und Umsetzung von Maßnahmen zur Bekämpfung und Minderung von Lärm in dem von dem Aktionsplan erfassten Gebiet verwendet werden.')) {
+ c.Allgemeines.infoGrenzwerte << wert
+ }
+ }
+ else {
+ if ( wert in types ) {
+ c.Allgemeines.typ << wert
+ }
+ }
+
+}
+
+
+ |
+
+
+
+
+
+
+
+
+
+// This groovy script collects the information from table 'Öffentlichkeitsbeteiligung'
+// No target is created.
+
+def bezeichnung = _source.p.Bezeichnung.value()
+def wert = _source.p.Wert.value()
+def mittel = _snippets.helperFunctions.CODELIST_ConsultationMeansText_DE()
+def interessentraeger = _snippets.helperFunctions.CODELIST_stakeholdersTypeText_DE()
+
+withTransformationContext {
+ def c = _.context.collector(it)
+ if(bezeichnung) {
+ if (bezeichnung.contains('Inhaltliche Zusammenfassung der Öffentlichkeitsbeteiligung')) {
+ c.Öffentlichkeitsbeteiligung.beschreibung << wert
+ }
+ else if (bezeichnung.contains('Link zur Webseite mit Dokumenten der Öffentlichkeitsbeteiligung')) {
+ c.Öffentlichkeitsbeteiligung.link << wert
+ }
+ else if (bezeichnung.contains('Anfangsdatum der Öffentlichkeitsbeteiligung')) {
+ c.Öffentlichkeitsbeteiligung.startDatum << wert
+ }
+ else if (bezeichnung.contains('Enddatum der Öffentlichkeitsbeteiligung')) {
+ c.Öffentlichkeitsbeteiligung.endDatum << wert
+ }
+ else if (mittel.contains(bezeichnung) && wert == 'Ja') {
+ c.Öffentlichkeitsbeteiligung.mittel << bezeichnung
+ }
+ else if (bezeichnung.contains('Andere Mittel/Instrumente')) {
+ c.Öffentlichkeitsbeteiligung.mittelAndere << wert
+ }
+ else if (interessentraeger.contains(bezeichnung) && wert == 'Ja') {
+ c.Öffentlichkeitsbeteiligung.interessentraeger << bezeichnung
+ }
+ else if (bezeichnung.contains('Andere Interessenträger')) {
+ c.Öffentlichkeitsbeteiligung.mittelAndere << wert
+ }
+ else if (bezeichnung.contains('Anzahl der Personen, die an der Öffentlichkeits-beteiligung teilgenommen haben')) {
+ c.Öffentlichkeitsbeteiligung.anzahlTeilnehmer << wert
+ }
+ else if (bezeichnung.contains('Angabe, ob im Laufe der Öffentlichkeits-beteiligung Stellungnahmen eingegangen sind')) {
+ c.Öffentlichkeitsbeteiligung.kommentareEingegangen << wert
+ }
+ else if (bezeichnung.contains('Angabe, ob die während der Öffentlichkeits-beteiligung eingegangenen Stellungnahmen in den LAP aufgenommen wurden')) {
+ c.Öffentlichkeitsbeteiligung.kommentareAufgenommen << wert
+ }
+ else if (bezeichnung.contains('Angabe, ob der LAP nach der Öffentlichkeits-beteiligung überarbeitet wurde')) {
+ c.Öffentlichkeitsbeteiligung.lapUeberarbeitet << wert
+ }
+ else if (bezeichnung.contains('Wenn ja, Erläuterung, wie der Lärmaktionsplan nach der Öffentlichkeits-beteiligung überarbeitet wurde')) {
+ c.Öffentlichkeitsbeteiligung.lapUeberarbeitetKommentar << wert
+ }
+
+
+ if ( bezeichnung in mittel || bezeichnung in interessentraeger) {
+ c.Öffentlichkeitsbeteiligung."${bezeichnung}" << wert
+ }
+
+ }
+}
+
+
+
+ |
+
diff --git a/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex.styles.sld b/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex.styles.sld
new file mode 100644
index 0000000..ad34f54
--- /dev/null
+++ b/Validation/MajorAirports/UBA-DE_GFH_to_END_DF7_10_Airports.halex.styles.sld
@@ -0,0 +1,3 @@
+
+ Default Styler
+