Generate a Java union class file.
(self, union: Union)
| 441 | return GeneratedFile(path=path, content="\n".join(lines)) |
| 442 | |
| 443 | def generate_union_file(self, union: Union) -> GeneratedFile: |
| 444 | """Generate a Java union class file.""" |
| 445 | lines = [] |
| 446 | imports: Set[str] = set() |
| 447 | java_package = self.get_java_package() |
| 448 | |
| 449 | self.collect_union_imports(union, imports) |
| 450 | |
| 451 | lines.append(self.get_license_header()) |
| 452 | lines.append("") |
| 453 | |
| 454 | if java_package: |
| 455 | lines.append(f"package {java_package};") |
| 456 | lines.append("") |
| 457 | |
| 458 | if imports: |
| 459 | for imp in sorted(imports): |
| 460 | lines.append(f"import {imp};") |
| 461 | lines.append("") |
| 462 | |
| 463 | for line in self.generate_union_class(union): |
| 464 | lines.append(line) |
| 465 | |
| 466 | path = self.get_java_package_path() |
| 467 | if path: |
| 468 | path = f"{path}/{union.name}.java" |
| 469 | else: |
| 470 | path = f"{union.name}.java" |
| 471 | |
| 472 | return GeneratedFile(path=path, content="\n".join(lines)) |
| 473 | |
| 474 | def get_struct_annotation(self, message: Message) -> str: |
| 475 | """Return the ForyStruct annotation for a generated message.""" |
no test coverage detected