XMLEncoder shares equal Integer objects, so a node's x coordinate can be written as a reference to the result of JSidebarButton.getIconTextGap(). GetterDefaults constructs the classes like XMLDecoder does and records what the getters return (packages/fls/src/javaDefaults.json). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.7 KiB
Java-Orakel
Java-Filius selbst liest den Korpus (corpus/) und schreibt, was es gefunden
hat, nach corpus/corpus.java.json. Java ist der Schiedsrichter für das
Dateiformat — der Swift-Leser verliert in 10 von 23 Dateien Geräte (Plan
§13, M2).
npm run oracle:java # = tools/java-oracle/run.sh
Braucht JDK 17+, Maven und xvfb-run. Filius öffnet beim Laden sein
Hauptfenster (Information.reset → JMainFrame), deshalb läuft es an einem
virtuellen Bildschirm statt „headless".
- Gelesen wird über Filius' eigene, private Lademethode
SzenarioVerwaltung.netzwerkLaden(per Reflection) — Javas Weg, kein Nachbau. - Stand:
gitlab.com/filius1/filius@6640354(2.14.0), wird beim ersten Lauf nach.upstream/geholt und gebaut. - MAC-Adressen, die nicht in der Datei stehen, würfelt Filius beim Anlegen
der Netzwerkkarte. Sie erscheinen als
null; zwei Läufe sind byte-gleich. - Bisher ausgelesen: Geräte (Klasse, Name, Beschriftung, Position, Schnittstellen), Kabel (Enden als Gerät/Schnittstelle), Doku-Elemente. Systemsoftware, Dateisysteme und Anwendungen folgen schrittweise.
Getter-Standardwerte
XMLEncoder teilt gleiche Integer/Boolean-Objekte. Ein Wert, der einmal als
Ergebnis eines Getters geschrieben wurde (<void id="Integer0" property="iconTextGap"/>), taucht später nur noch als Verweis auf — etwa als
x-Koordinate eines Geräts. Daran scheitert der Swift-Leser (Plan §13, M2).
GetterDefaults erzeugt die betroffenen Klassen wie XMLDecoder (ohne
Argumente) und ruft den Getter auf; das Ergebnis steht in
packages/fls/src/javaDefaults.json. Gemessen, nicht geraten: Filius' Knopf
setzt verticalTextPosition auf 3 (BOTTOM), nicht auf Swings 0 (CENTER).