<#import "import/classMemberTemplates" as classMembers/>
//CHECKSTYLE:OFF
package ${schemaTypesPackage};

import static ${operationsPackage}.GraphQlAppender.*;

<#list importPackages as i>
import ${i}.*;
</#list>

${generatedAnnotation!}
@SuppressWarnings({"all", "PMD"})
public class ${name}
<#if members?has_content>
implements ${members?join(", ")}
</#if>
{
	<@classMembers.addFields className=name fields=fields indent='\t'/>
	<@classMembers.addEquals className=name fields=fields indent='\t'/>
	<@classMembers.addHashCode fields=fields indent='\t'/>
	<@classMembers.addToGraphQlString fields=fields indent='\t'/>
	<#if dtoConstructor>
		<@classMembers.addConstructor className=name fields=fields indent='\t'/>
	</#if>
	<#if dtoBuilder>
		<@classMembers.addBuilderMethod indent='\t'/>
		<#lt/>	public static class Builder
		<#lt/>	{
		<#lt/>		private Builder() { }
		<@classMembers.addBuilderFields className='Builder' fields=fields indent='\t\t'/>
		<@classMembers.addBuildMethod resultClassName=name fields=fields indent='\t\t'/>
		<#lt/>	}
	</#if>
}
//CHECKSTYLE:ON
