(self, field: Field, parent_stack: List[Message])
| 544 | return lines |
| 545 | |
| 546 | def generate_parameter(self, field: Field, parent_stack: List[Message]) -> str: |
| 547 | field_name = self.safe_identifier(self.to_camel_case(field.name)) |
| 548 | field_type = self.generate_type( |
| 549 | field.field_type, |
| 550 | nullable=field.optional, |
| 551 | element_optional=field.element_optional, |
| 552 | element_ref=field.element_ref, |
| 553 | # Message constructor parameters use @Ref on the parameter for |
| 554 | # top-level ref metadata. Nested refs still flow through |
| 555 | # element_ref/value_ref type-use annotations. |
| 556 | top_level_ref=False, |
| 557 | parent_stack=parent_stack, |
| 558 | ) |
| 559 | ref_annotation = ( |
| 560 | "@Ref " |
| 561 | if field.ref and self.is_ref_target_type(field.field_type, parent_stack) |
| 562 | else "" |
| 563 | ) |
| 564 | return f"{ref_annotation}@ForyField(id = {field.number}) {field_name}: {field_type}" |
| 565 | |
| 566 | def generate_type( |
| 567 | self, |
no test coverage detected