in serde-generate/src/java.rs [769:810]
fn output_struct_or_variant_container_builder(
&mut self,
name: &str,
fields: &[Named<Format>],
) -> Result<()> {
// Beginning of builder class
writeln!(self.out)?;
writeln!(self.out, "public static final class Builder {{")?;
let reserved_names = &[];
self.enter_class("Builder", reserved_names);
// Fields
for field in fields {
writeln!(
self.out,
"public {} {};",
self.quote_type(&field.value),
field.name
)?;
}
if !fields.is_empty() {
writeln!(self.out)?;
}
// Finalization
writeln!(
self.out,
r#"public {0} build() {{
return new {0}({1}
);
}}"#,
name,
fields
.iter()
.map(|f| format!("\n {}", f.name))
.collect::<Vec<_>>()
.join(",")
)?;
// Custom code
self.output_custom_code()?;
// End of class
self.leave_class(reserved_names);
writeln!(self.out, "}}")
}