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.
  • errorJavaGenError family.

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:

docs.rs/zerodds-idl-java →

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.
  • errorJavaGenError-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:

docs.rs/zerodds-idl-java →

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.