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>
37 lines
1.7 KiB
Markdown
37 lines
1.7 KiB
Markdown
# 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).
|
|
|
|
```bash
|
|
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).
|