1 package org.opendaylight.yangtools.sal.java.api.generator;
\r
3 import java.io.IOException;
\r
4 import java.io.StringWriter;
\r
5 import java.io.Writer;
\r
7 import org.opendaylight.yangtools.binding.generator.util.Types;
\r
8 import org.opendaylight.yangtools.sal.java.api.generator.BuilderTemplate;
\r
9 import org.opendaylight.yangtools.sal.binding.model.api.CodeGenerator;
\r
10 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
\r
11 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
\r
12 import org.opendaylight.yangtools.sal.binding.model.api.Type;
\r
13 import org.opendaylight.yangtools.yang.binding.DataObject;
\r
15 public final class BuilderGenerator extends AbstractCodeGenerator {
\r
17 public static final String FILE_NAME_SUFFIX = "Builder";
\r
20 public Writer generate(Type type) throws IOException {
\r
21 final Writer writer = new StringWriter();
\r
22 if (type instanceof GeneratedType && isAcceptable((GeneratedType )type)) {
\r
23 final GeneratedType genType = (GeneratedType) type;
\r
24 final BuilderTemplate template = new BuilderTemplate(genType);
\r
25 writer.write(template.generate().toString());
\r
30 public boolean isAcceptable(Type type) {
\r
31 return super.isAcceptable(type) && type instanceof GeneratedType
\r
32 && ((GeneratedType )type).getImplements().contains(Types.typeForClass(DataObject.class));
\r