javaClassGraphqlParametrizedInput.ftl 2.9 KB
Newer Older
1
<#assign MapperUtil=statics["com.kobylynskyi.graphql.codegen.java.JavaGraphQLTypeMapper"]>
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<#if package?has_content>
package ${package};

</#if>
import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLParametrizedInput;
import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequestSerializer;
import java.util.StringJoiner;
<#if equalsAndHashCode>
import java.util.Objects;
</#if>

<#if javaDoc?has_content>
/**
<#list javaDoc as javaDocLine>
 * ${javaDocLine}
</#list>
 */
</#if>
20
<#if generatedInfo.getGeneratedType()?has_content>
21
@${generatedInfo.getGeneratedType()}(
22 23
    value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
    date = "${generatedInfo.getDateTime()}"
24
)
25
</#if>
26 27 28
<#list annotations as annotation>
@${annotation}
</#list>
29 30
public class ${className} implements GraphQLParametrizedInput {

31
<#if fields?has_content>
32 33 34 35 36 37 38 39 40
<#list fields as field>
<#if field.deprecated>
    @Deprecated
</#if>
<#list field.annotations as annotation>
    @${annotation}
</#list>
    private ${field.type} ${field.name}<#if field.defaultValue?has_content> = ${field.defaultValue}</#if>;
</#list>
41
</#if>
42 43 44 45 46 47 48 49 50 51 52 53

    public ${className}() {
    }

<#if fields?has_content>
    public ${className}(<#list fields as field>${field.type} ${field.name}<#if field_has_next>, </#if></#list>) {
<#list fields as field>
        this.${field.name} = ${field.name};
</#list>
    }
</#if>

54
<#if fields?has_content>
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
<#list fields as field>
<#if field.javaDoc?has_content>
    /**
<#list field.javaDoc as javaDocLine>
     * ${javaDocLine}
</#list>
     */
</#if>
<#if field.deprecated>
    @Deprecated
</#if>
    public ${className} ${field.name}(${field.type} ${field.name}) {
        this.${field.name} = ${field.name};
        return this;
    }

</#list>
72
</#if>
73 74 75 76 77 78 79 80 81 82
<#if equalsAndHashCode>
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        final ${className} that = (${className}) obj;
83
<#if fields?has_content>
84 85
        return <#list fields as field>Objects.equals(${field.name}, that.${field.name})<#if field_has_next>
            && </#if></#list>;
86 87 88
<#else>
        return true;
</#if>
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
    }

    @Override
    public int hashCode() {
<#if fields?has_content>
        return Objects.hash(<#list fields as field>${field.name}<#if field_has_next>, </#if></#list>);
<#else>
        return 0;
</#if>
    }
</#if>

    @Override
    public String toString() {
        StringJoiner joiner = new StringJoiner(", ", "(", ")");
<#if fields?has_content>
<#list fields as field>
106 107 108
<#if MapperUtil.isJavaPrimitive(field.type)>
        joiner.add("${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}));
<#else>
109
        if (${field.name} != null) {
110
            joiner.add("${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}));
111
        }
112
</#if>
113 114 115 116 117 118
</#list>
</#if>
        return joiner.toString();
    }

}