From b682c225ab39859b6488ad2c327c6a67bbaf5b50 Mon Sep 17 00:00:00 2001
From: Matthias Andreas Benkard Erwartet ein JS-Objekt
Date: Mon, 24 Aug 2026 20:34:59 +0200
Subject: Ein Gesetz tritt nicht notwendig auf einen Schlag in Kraft
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Das Dritte UWG-Änderungsgesetz lässt seinen Artikel 1 Nummer 2 Buchstabe c
am 19. Juni 2026 wirksam werden und alles Übrige erst am 27. September; das
Infektionsschutz-Änderungsgesetz von 2020 ändert dasselbe Stammgesetz in zwei
Artikeln zu zwei Zeitpunkten. Wer alle Befehle zugleich anwendet, erhält dort
eine Fassung, die an keinem einzigen Tag gegolten hat. Genau das tat ÄndGgner
bisher, und zwar schweigend — die auffälligste Stelle, an der ein Werkzeug, das
nie stillschweigend verwerfen will, doch etwas verschwieg.
Der Schlussartikel wird jetzt gelesen. Die Artikelwahl erfasst ihn nicht, denn er
trägt weder Änderungsformel noch Stammgesetz; maßgeblich ist der erste Artikel
hinter dem letzten ändernden, damit in einem Gesetzblatt mit mehreren Gesetzen
jedes seine eigene Schlussvorschrift bekommt. Erkannt werden die Grundregel, der
Vorbehalt zugunsten späterer Absätze, die abweichende Anordnung für Artikel,
Nummern, Buchstaben und Doppelbuchstaben sowie die Rückwirkung („mit Wirkung
vom“). Nennt der Wortlaut kein Datum, sondern die Verkündung, so wird keines
erfunden: Der Verkündungstag steht nicht im Gesetzestext.
Zugeordnet wird über die Herkunft des Befehls — Artikel und Gliederungspfad —,
und es gewinnt die besonderste Anordnung. Mit --stichtag (im Vordruck: „Stichtag“)
ergibt sich die an jenem Tag geltende Fassung; was noch nicht galt, bleibt
unangewandt und steht für sich, nicht unter den Gründen des Scheiterns. Ohne
Stichtag bleibt es beim vollen Bestand, aber die Staffelung wird gerügt.
Geprüft: 348 Tests (339 + 6 Einheitstests des Lesers + 3 Belegfälle), REUSE
180/180. UWG 1/19 Befehle am 19. Juni gegen 19/19 am 27. September, GEG 115 gegen
116, IfSG 65 gegen 75 — jeweils ohne Zuwachs an manuellen Resten.
Co-Authored-By: Claude Opus 5 und liefert {stamm: {name, base64}, patches: [{name, base64}], artikel,
- * vollstaendig, nurText} und liefert {html, angewandt, manuell, normen} — bei
- * nurText stattdessen {text} — oder {fehler} zurück.
- * Geworfen wird nichts: Eine Ausnahme im Wasm hinterlässt auf der JS-Seite nur einen unlesbaren
- * Stapel, also wird jeder Fehler als Text zurückgereicht.
+ * stichtag, vollstaendig, nurText}{html, angewandt, manuell,
+ * normen} — bei nurText stattdessen {text} — oder {fehler}
+ * zurück. Geworfen wird nichts: Eine Ausnahme im Wasm hinterlässt auf der JS-Seite nur
+ * einen unlesbaren Stapel, also wird jeder Fehler als Text zurückgereicht.
*
*
Der Dateiinhalt wandert als Base64-Text über die Grenze, nicht als {@code Uint8Array}: Die * Umsetzung typisierter Felder nach {@code byte[]} ist in Web Image derzeit defekt („byteArrayHub @@ -70,6 +71,7 @@ public final class BrowserMain { } var artikel = text(eingabe.get("artikel")); + var stichtag = text(eingabe.get("stichtag")); var vollstaendig = Boolean.TRUE.equals(wahrheitswert(eingabe.get("vollstaendig"))); if (Boolean.TRUE.equals(wahrheitswert(eingabe.get("nurText")))) { @@ -85,7 +87,8 @@ public final class BrowserMain { stamm, List.copyOf(patches), artikel == null || artikel.isBlank() ? null : artikel, - vollstaendig); + vollstaendig, + stichtag == null || stichtag.isBlank() ? null : LocalDate.parse(stichtag.strip())); // Java-Werte kämen auf der JS-Seite als undurchsichtige Proxys an; JSString/JSNumber // erzeugen echte JS-Werte. -- cgit v1.2.1