feat(fls): read and write a project's own applications as their beans
A project's own applications (classes under projekt/anwendungen, installed on a host) are no longer left out. The decoder now keeps the Java type of every primitive — at setters, constructor and call arguments, also through shared ids like Integer0 — and which properties an object's own getter made. beanCapture.ts turns a decoded bean back into what the writer writes, with the node's system software as a mark the writer replaces by the system software it writes; what the format cannot say is refused, not guessed (an unresolved value, a Field, a factory-made object, an object a getter reaches elsewhere in the file). The reader keeps own applications as captured beans; the corpus no longer warns. The capture first took a setter with another object's getter result for an own getter; the round-trip test found it. The Java oracle did not show whether an application runs on its node's system software, so a mutation writing the mark instead survived; it now reports onItsSystem (true for all 192 applications of the corpus). Checked by Java: from the files written again, FILIUS loads Accumulator and Broadcast installed, switched on and on their node's system software, as in the original. The round-trip test covers every primitive, null, a class, an array, shared objects, getter chains, constructed elements, map reads and static constants. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,7 +48,8 @@ virtuellen Bildschirm statt „headless".
|
||||
bleibt; bei Router und Heimrouter stehen vorn die Dateien, die Javas
|
||||
Konstruktor aus eigenen Vorlagen erzeugt, dahinter die aus der Datei) und
|
||||
die installierten Programme eines Rechners mit ihren Einstellungen (die
|
||||
persönliche Firewall samt Regeln) (Klassen, die Filius
|
||||
persönliche Firewall samt Regeln; je Programm `onItsSystem`: ob es am
|
||||
Betriebssystem seines Knotens hängt) (Klassen, die Filius
|
||||
nicht mitbringt — eigene Anwendungen im Archiv unter `projekt/anwendungen`
|
||||
— fehlen, weil das Werkzeug nur `konfiguration.xml` lädt); E-Mail: Konten des Servers aus der Bean-Liste und aus `/mailserver/konten.txt` (`kontenLaden`), Ordner und Adressbuch des Clients und sein Konto aus `/konten.txt` (`laden`); ein Empfänger, den eine ältere Datei als Zeichenkette hält, samt dem, was Javas `AddressEntry(String)` daraus macht; Kabel (Enden als Gerät/Schnittstelle),
|
||||
Doku-Elemente.
|
||||
|
||||
@@ -360,6 +360,8 @@ public class FlsOracle {
|
||||
Map<String, Object> json = new LinkedHashMap<>();
|
||||
json.put("key", entry.getKey());
|
||||
json.put("class", application == null ? null : application.getClass().getName());
|
||||
// Whether it runs on the system software of its own node.
|
||||
json.put("onItsSystem", application != null && application.getSystemSoftware() == system);
|
||||
if (application instanceof ServerAnwendung server) {
|
||||
json.put("aktiv", server.isAktiv());
|
||||
json.put("port", server.getPort());
|
||||
|
||||
Reference in New Issue
Block a user