def generate_deserialize_methods(spec: Spec) -> str: methods = [ generate_from_array_method(spec.lang().php().clazz(), spec.fields()), *generate_group_deserialize_methods(spec.lang().php().clazz(), spec.fields()), ] return '\n\n'.join(methods)
def generate_serialize_methods(spec: Spec) -> str: methods = [ generate_to_array_method(spec.fields()), *generate_group_serialize_methods(spec.fields()), ] return '\n\n'.join(methods)
def generate_old(self, spec: Spec, fp: IO) -> None: print(Fore.GREEN + "[DEBUG] class '{0}' is being generated...".format( spec.lang().ts().clazz()) + Fore.RESET) s = TEMPLATE.format( **{ "clazz": spec.lang().ts().clazz(), "members": generate_members(spec.fields()), "constructor": generate_constructor(spec.fields()), "deserializers": generate_deserialize_methods(spec), "serializers": generate_serialize_methods(spec), }) fp.write(s)
def generate(self, spec: Spec, fp: IO) -> None: file = SourceFile([ NamespaceDeclaration(spec.lang().php().namespace()), ClassDeclaration(Identifier(spec.lang().php().clazz()), [ *v1_generate_members(spec), *v1_generate_from_array_method(spec.lang().php().clazz(), spec.fields()), *v1_generate_group_deserializing_methods(spec.lang().php().clazz(), spec.fields()), *v1_generate_to_array_method(spec.fields()), *v1_generate_group_serializing_methods(spec.fields()) ]) ]) print(file.print())
def v1_generate_members(spec: Spec) -> List[StatementBlock]: class_fields = [] for field in spec.fields(): class_fields.append(DocCommentStatement( field.comment(), [ Annotation.types(field.type()) ] )) class_fields.append(MemberDeclaration( Identifier(field.name()), Type(field.type()), AccessModifier.public(), False )) return class_fields
def get_clazz(spec: Spec) -> str: return spec.lang().php().clazz()