MCPcopy Create free account
hub / github.com/apache/fory / generate_message_file

Method generate_message_file

compiler/fory_compiler/generators/java.py:481–581  ·  view source on GitHub ↗

Generate a Java class file for a message.

(self, message: Message)

Source from the content-addressed store, hash-verified

479
480 # Generates a Java class file from a message schema definition.
481 def generate_message_file(self, message: Message) -> GeneratedFile:
482 """Generate a Java class file for a message."""
483 lines = []
484 imports: Set[str] = set()
485 java_package = self.get_java_package()
486
487 # Collect imports (including from nested types)
488 self.collect_message_imports(message, imports)
489
490 # License header
491 lines.append(self.get_license_header())
492 lines.append("")
493
494 # Package
495 if java_package:
496 lines.append(f"package {java_package};")
497 lines.append("")
498
499 # Imports
500 if imports:
501 for imp in sorted(imports):
502 lines.append(f"import {imp};")
503 lines.append("")
504
505 # Class declaration
506 comment = self.format_type_id_comment(message, "//")
507 if comment:
508 lines.append(comment)
509 lines.append(self.get_struct_annotation(message))
510 lines.append(f"public class {message.name} {{")
511
512 # Generate nested enums as static inner classes
513 for nested_enum in message.nested_enums:
514 for line in self.generate_nested_enum(nested_enum):
515 lines.append(f" {line}")
516
517 # Generate nested unions as static inner classes
518 for nested_union in message.nested_unions:
519 for line in self.generate_union_class(
520 nested_union, indent=0, nested=True, parent_stack=[message]
521 ):
522 lines.append(f" {line}")
523
524 # Generate nested messages as static inner classes
525 for nested_msg in message.nested_messages:
526 for line in self.generate_nested_message(
527 nested_msg, indent=1, parent_stack=[message]
528 ):
529 lines.append(f" {line}")
530
531 # Fields
532 for field in message.fields:
533 field_lines = self.generate_field(field, [message])
534 for line in field_lines:
535 lines.append(f" {line}")
536
537 lines.append("")
538

Callers 1

generateMethod · 0.95

Calls 15

get_java_packageMethod · 0.95
get_struct_annotationMethod · 0.95
generate_nested_enumMethod · 0.95
generate_union_classMethod · 0.95
generate_fieldMethod · 0.95
has_array_fieldMethod · 0.95

Tested by

no test coverage detected