feat(fls): installed applications as Java loads them
readSystemSoftware lists a PC's or notebook's installed applications with the settings the model needs: server applications switched on and their port, the generic client's target, DNS recursion, web server virtual hosts, Gnutella's peer limit and the personal firewall (on by default, unlike a router's). Defaults the file leaves out are measured in Java. All 23 corpus files match Java. Two examples install an application of their own (Accumulator, Broadcast), compiled into projekt/anwendungen; it is left out with a warning, as this reader cannot run Java classes. It must survive a save. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -219,6 +219,15 @@ export function decodeXmlBytes(bytes: Uint8Array): string {
|
||||
const PRIMITIVE_ID_PREFIXES = new Set(['Integer', 'Boolean', 'Long', 'Short', 'Byte', 'Float', 'Double', 'Character']);
|
||||
const DEFAULTS = javaDefaults as Readonly<Record<string, string | number | boolean | null>>;
|
||||
|
||||
/**
|
||||
* What a getter returns on a freshly constructed object of `simpleClass`, as
|
||||
* measured (javaDefaults.json) — undefined where nothing was measured.
|
||||
*/
|
||||
export function javaDefault(simpleClass: string, property: string): string | number | boolean | null | undefined {
|
||||
const key = `${simpleClass}#${property}`;
|
||||
return Object.hasOwn(DEFAULTS, key) ? DEFAULTS[key] : undefined;
|
||||
}
|
||||
|
||||
/** `getFoo`/`isFoo` → `foo`, as java.beans.Introspector derives it. */
|
||||
function propertyOfGetter(method: string): string | undefined {
|
||||
const match = /^(?:get|is)([A-Z].*)$/.exec(method);
|
||||
|
||||
Reference in New Issue
Block a user