aboutsummaryrefslogtreecommitdiff
path: root/src/wasm/java
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-24 20:34:59 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-24 20:34:59 +0200
commitb682c225ab39859b6488ad2c327c6a67bbaf5b50 (patch)
tree55a8b8f3414eff9f2c0d5172a6b0f85412fca8ed /src/wasm/java
parent3d40c583308d3f26501a53547e6294dc2db20854 (diff)
Ein Gesetz tritt nicht notwendig auf einen Schlag in Kraft
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 <noreply@anthropic.com> Change-Id: I887f233c72a4e49b69f9ede3154dcadd704fb0c3
Diffstat (limited to 'src/wasm/java')
-rw-r--r--src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java b/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java
index c318f86..6d7a664 100644
--- a/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java
+++ b/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java
@@ -4,6 +4,7 @@ package eu.mulk.aendggner.wasm;
import eu.mulk.aendggner.Pipeline;
import eu.mulk.aendggner.Quelle;
+import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
@@ -22,10 +23,10 @@ import org.graalvm.webimage.api.JSValue;
* damit dieselbe {@link Pipeline} auf wie Befehlszeile und Tests.
*
* <p>Erwartet ein JS-Objekt <code>{stamm: {name, base64}, patches: [{name, base64}], artikel,
- * vollstaendig, nurText}</code> und liefert <code>{html, angewandt, manuell, normen}</code> — bei
- * <code>nurText</code> stattdessen <code>{text}</code> — oder <code>{fehler}</code> 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}</code> und liefert <code>{html, angewandt, manuell,
+ * normen}</code> — bei <code>nurText</code> stattdessen <code>{text}</code> — oder <code>{fehler}
+ * </code> 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.
*
* <p>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.