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

Method generate_case_class

compiler/fory_compiler/generators/scala.py:457–476  ·  view source on GitHub ↗
(
        self,
        message: Message,
        indent: int = 0,
        parent_stack: Optional[List[Message]] = None,
    )

Source from the content-addressed store, hash-verified

455 return self.generate_case_class(message, indent, parent_stack)
456
457 def generate_case_class(
458 self,
459 message: Message,
460 indent: int = 0,
461 parent_stack: Optional[List[Message]] = None,
462 ) -> List[str]:
463 ind = self.indent_str * indent
464 current_stack = self.current_stack(parent_stack, message)
465 lines = [f"{ind}@ForyStruct", f"{ind}final case class {message.name}("]
466 for index, field in enumerate(message.fields):
467 suffix = "," if index < len(message.fields) - 1 else ""
468 lines.append(
469 f"{ind} {self.generate_parameter(field, current_stack)}{suffix}"
470 )
471 lines.append(f"{ind}) derives ForySerializer {{")
472 lines.extend(self.generate_to_bytes(message, indent + 1))
473 lines.append(f"{ind}}}")
474 lines.append("")
475 lines.extend(self.generate_companion(message, indent, current_stack))
476 return lines
477
478 def generate_normal_class(
479 self,

Callers 1

generate_messageMethod · 0.95

Calls 6

current_stackMethod · 0.95
generate_parameterMethod · 0.95
generate_to_bytesMethod · 0.95
generate_companionMethod · 0.95
extendMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected