diff options
| author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2026-08-27 07:26:13 +0200 |
|---|---|---|
| committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2026-08-27 07:26:13 +0200 |
| commit | eb998fbfc324151b0b712adb37525caf2320211e (patch) | |
| tree | dee2017ef67e5952f81f492c90278c7525cd6eca /src/main/java | |
| parent | 036fb101bbc92e88e2b0e99d04ed827b96afd927 (diff) | |
Mecklenburg-Vorpommern wählt seinen Artikel aus sechzig
Mecklenburg-Vorpommern tritt als sechzehntes Land hinzu. Sein Gesetzblatt liegt
vollständig offen (Jahrgänge ab 2014, rund 440 Hefte); das Portal dagegen ist
eine juris-Einseitenanwendung ohne Fassungsliste. Die Vorfassung kommt deshalb
aus dem Gesetzblatt selbst: Nennt der Einleitungssatz die Stammvorschrift ohne
jede frühere Änderung, so ist die Ursprungsfassung beweisbar die Vorfassung.
Der Fall — Artikel 44 des Besoldungsanpassungsgesetzes vom 8. Juli 2026, der die
Ausbildungs- und Prüfungsordnung amtstierärztlicher Dienst ändert — prüft die
Artikelwahl schärfer als jeder bisherige: Das Heft trägt ein Mantelgesetz mit
rund sechzig Artikeln, von denen jeder ein anderes Werk ändert. Er prüft ferner
die Inhaltsübersicht als eigene Norm, deren Angabe zu § 10 der erste und deren
Überschrift der siebte Befehl ändert.
Zwei Ergänzungen waren nötig: die Muster für Kolumnentitel und Seitenfuß des
Blattes (beide stehen im Inhaltsstrom, mitten im Befehlstext) und die Nebenform
„die Angabe zu § 10 wird durch die folgende Angabe ersetzt“. Die vier liegen
gebliebenen Befehle betreffen sämtlich die Anlagen, die die Stammfassung als
Tabellen und Vordrucke nicht mitführt.
Eine Nachfassung gibt es nicht: Der Artikel tritt erst am 1. September 2026 in
Kraft, weshalb die Gesamtausgabe des Portals noch die Vorfassung ist — sie hat
dieser als Gegenprobe gedient.
Geprüft: mvnw verify (430 Testfälle) und reuse lint (207/207) gehen durch; der
neue Akzeptanzfall pinnt die Wahl des Artikels 44, 24 gelesene und 20 angewandte
Befehle.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ic7f04bbd6326f2e34e50fab5b67eb8b2db346410
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java | 5 | ||||
| -rw-r--r-- | src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java | 15 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java index 35afabf..dc12398 100644 --- a/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java +++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java @@ -424,10 +424,13 @@ final class BefehlErkenner { "^In der Inhaltsübersicht (?:wird|werden) die Angaben? " + "(?:zu den |zu der |zu |zur |zum |von )?(?!«)(.+?) gestrichen\\.$"); + // Neben „wie folgt gefasst“ auch „durch die folgende Angabe ersetzt“ (GVOBl. M-V) — dieselbe + // Anweisung in der Wortwahl, die das Handbuch der Rechtsförmlichkeit für Ersetzungen vorsieht. private static final Pattern INHALTSUEBERSICHT_NEUFASSUNG = Pattern.compile( "^In der Inhaltsübersicht (?:wird|werden) die Angaben? " - + "(?:zu den |zu der |zu |zur |zum |von )?(?!«)(.+?) wie folgt gefasst: " + + "(?:zu den |zu der |zu |zur |zum |von )?(?!«)(.+?) " + + "(?:wie folgt gefasst|durch (?:die )?folgende[nrs]? Angaben? ersetzt): " + Z + "\\.?$"); diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java index e5021a0..4a52a70 100644 --- a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java +++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java @@ -322,6 +322,19 @@ public final class TextBereiniger { "[ \\t]*Nr\\. \\d+ Gesetzblatt der Freien Hansestadt Bremen" + " vom \\d{1,2}\\. \\p{L}+ \\d{4}[ \\t]*\\d{0,4}[ \\t]*"); + // GVOBl. M-V: Kolumnentitel und Seitenfuß stehen gleichfalls im Inhaltsstrom, und zwar mitten + // im Befehlstext („Die Überschrift wird durch die folgende Überschrift ersetzt: Tag der Ausgabe: + // Schwerin, den 21. Juli 2026 741Nr. 21 „§ 10 …““). Die Seitenzahl klebt dabei am „Nr.“ der + // Heftnummer. + private static final Pattern GVOBL_MV_KOPF = + Pattern.compile( + "[ \\t]*(?:Nr\\. \\d+[ \\t]+)?Tag der Ausgabe: \\p{L}+, den" + + " \\d{1,2}\\. \\p{L}+ \\d{4}[ \\t]*\\d{0,4}[ \\t]*(?:Nr\\. \\d+)?[ \\t]*"); + private static final Pattern GVOBL_MV_FUSS = + Pattern.compile( + "[ \\t]*\\d{1,4}[ \\t]+Gesetz- und Verordnungsblatt für Mecklenburg-Vorpommern" + + " \\d{4}[ \\t]+Nr\\. \\d+[ \\t]*"); + // Die Blattzählung des GBl. BW („Seite 2 von 7“) steht im Inhaltsstrom mitunter für sich allein, // getrennt vom übrigen Seitenfuß, und zwar zwischen zwei Gliederungspunkten — sie hinge sonst dem // vorangehenden Befehl an und machte ihn unkenntlich. @@ -378,6 +391,8 @@ public final class TextBereiniger { text = GBL_BW_FUSS.matcher(text).replaceAll("\n"); text = GVBL_RP_FUSS.matcher(text).replaceAll("\n"); text = GBL_HB_KOPF.matcher(text).replaceAll("\n"); + text = GVOBL_MV_KOPF.matcher(text).replaceAll("\n"); + text = GVOBL_MV_FUSS.matcher(text).replaceAll("\n"); var zeilen = entferneKolumnentitel(zerlegeInZeilen(text)); var verbunden = verbindeUmbrueche(zeilen); // Falsch-positive markerlose Zusammenzüge („durch“ + „die“ → „durchdie“) reparieren — die |
