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

${generatedAnnotation!}
@SuppressWarnings({"all", "PMD"})
public class ${className} implements ${operationsPackage}.${interfaceName}
{
	private final String document;

	@Override
	public String getOperationName() {
		return null;
	}

	@Override
	public String getDocument() {
		return document;
	}

	@Override
	public java.util.Map<String, Object> getVariables() {
		return java.util.Collections.emptyMap();
	}

	@Override
	public Class<${resultsPackage}.${typeName}Result> getResultClass() {
		return ${resultsPackage}.${typeName}Result.class;
	}

	public ${className}(java.util.function.Consumer<${selectorsPackage}.${typeName}Selector> selector) {
		StringBuilder documentBuilder = new StringBuilder("${operation} {");
		selector.accept(new ${selectorsPackage}.${typeName}Selector(documentBuilder));
		this.document = documentBuilder.append(" }").toString();
	}

	<@classMembers.addToString fields=[{'name':'document'}] indent='\t'/>
}
//CHECKSTYLE:ON
