Changed interface sal.binding.model.api.CodeGenerator
[yangtools.git] / code-generator / binding-java-api-generator / src / main / java / org / opendaylight / yangtools / sal / java / api / generator / BuilderGenerator.java
1 package org.opendaylight.yangtools.sal.java.api.generator;\r
2 \r
3 import org.opendaylight.yangtools.sal.binding.model.api.CodeGenerator;\r
4 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;\r
5 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;\r
6 import org.opendaylight.yangtools.sal.binding.model.api.Type;\r
7 import org.opendaylight.yangtools.yang.binding.Augmentable;\r
8 \r
9 public final class BuilderGenerator implements CodeGenerator {\r
10 \r
11     public static final String BUILDER = "Builder";\r
12 \r
13     @Override\r
14     public boolean isAcceptable(Type type) {\r
15         if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {\r
16             for (Type t : ((GeneratedType) type).getImplements()) {\r
17                 // "rpc" and "grouping" elements do not implement Augmentable\r
18                 if (t.getFullyQualifiedName().equals(Augmentable.class.getName())) {\r
19                     return true;\r
20                 }\r
21             }\r
22         }\r
23         return false;\r
24     }\r
25 \r
26     @Override\r
27     public String generate(Type type) {\r
28         if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {\r
29             final GeneratedType genType = (GeneratedType) type;\r
30             final BuilderTemplate template = new BuilderTemplate(genType);\r
31             return template.generate();\r
32         }\r
33         return "";\r
34     }\r
35 \r
36     @Override\r
37     public String getUnitName(Type type) {\r
38         return type.getName() + BUILDER;\r
39     }\r
40 \r
41 }\r