コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
    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)
コード例 #4
0
 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())
コード例 #5
0
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
コード例 #6
0
 def get_clazz(spec: Spec) -> str:
     return spec.lang().php().clazz()