zerodds-idl-java
Layer 3 — Schema (codegen). OMG IDL4-Java 1.0 + DDS-Java-PSM codegen.
IDL4 → Java 17 source generation per the OMG IDL4-Java mapping v1.0. Emits Bean-pattern classes, sealed-interface + record unions, enums, java.util.List<T> sequences and Java arrays, bitset/bitmask wrappers, multi-inheritance via interface companions, an annotation bridge and a TopicType marker — plus the DDS-Java-PSM and DDS-RPC Java mappings. An opt-in Java 8 compat mode (java8_compat) emits unions as an abstract class + static final subclasses instead of a sealed interface + records, avoiding all Java-9+ constructs (structs/enums stay identical). A build-time tool (forbid(unsafe_code), std-only) consumed via zerodds-idlc.
Spec anchors
- OMG IDL4-Java 1.0 (idl4-java-1.0) + DDS-Java-PSM 1.0.
- Bitset/bitmask, multi-inheritance via interface companions, DDS-RPC Java PSM.
Quick start
One .java file per top-level type is returned:
use zerodds_idl_java::{generate_java_files, JavaGenOptions};
// `ast` is an OMG IDL 4.2 AST parsed by the `zerodds-idl` crate
let files = generate_java_files(&ast, &JavaGenOptions::default())?;
for f in &files {
// f.path + f.source — one .java per top-level type
}
Modules
emitter— Java source emission (one file per top-level type).type_map— IDL → Java 17 type mapping.rpc— DDS-RPC Java PSM.keywords— Java keyword escaping.error—JavaGenErrorfamily.
Public API
The full, always-current API reference is generated by rustdoc and published on docs.rs — every type, method and module, source-linked and searchable:
Coverage & tests
Coverage ledger: idl4-java-1.0. Driven by tools/idlc + snapshot tests; run cargo test -p zerodds-idl-java.
Stability
1.0.0-rc.3. Driven by tools/idlc + snapshot tests.
zerodds-idl-java
Layer 3 — Schema (codegen). OMG IDL4-Java 1.0 + DDS-Java-PSM Codegen.
IDL4 → Java-17-Codegenerierung nach dem OMG-IDL4-Java-Mapping v1.0. Emittiert Bean-Pattern-Klassen, Sealed-Interface- + Record-Unions, Enums, java.util.List<T>-Sequences und Java-Arrays, Bitset/Bitmask-Wrapper, Multi-Inheritance via Interface-Companions, eine Annotation-Bridge und einen TopicType-Marker — dazu die DDS-Java-PSM- und DDS-RPC-Java-Mappings. Ein opt-in Java-8-Compat-Mode (java8_compat) emittiert Unions als abstract class + static final-Subklassen statt Sealed-Interface + Records und vermeidet alle Java-9+-Konstrukte (Structs/Enums bleiben identisch). Ein Build-Zeit-Tool (forbid(unsafe_code), std-only), konsumiert via zerodds-idlc.
Spec-Anker
- OMG IDL4-Java 1.0 (idl4-java-1.0) + DDS-Java-PSM 1.0.
- Bitset/Bitmask, Multi-Inheritance via Interface-Companions, DDS-RPC-Java-PSM.
Quick Start
Pro Top-Level-Typ wird eine .java-Datei zurückgegeben:
use zerodds_idl_java::{generate_java_files, JavaGenOptions};
// `ast` is an OMG IDL 4.2 AST parsed by the `zerodds-idl` crate
let files = generate_java_files(&ast, &JavaGenOptions::default())?;
for f in &files {
// f.path + f.source — one .java per top-level type
}
Module
emitter— Java-Quellcode-Emission (eine Datei pro Top-Level-Typ).type_map— IDL → Java 17 Typ-Mapping.rpc— DDS-RPC-Java-PSM.keywords— Java-Keyword-Escaping.error—JavaGenError-Familie.
Public API
Die vollständige, stets aktuelle API-Referenz wird von rustdoc generiert und auf docs.rs veröffentlicht — jeder Typ, jede Methode, jedes Modul, mit Quell-Links und Suche:
Coverage & Tests
Coverage-Ledger: idl4-java-1.0. Getrieben von tools/idlc + Snapshot-Tests; cargo test -p zerodds-idl-java.
Stabilität
1.0.0-rc.3. Getrieben von tools/idlc + Snapshot-Tests.