import com.google.common.annotations.Beta;
import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.BuilderRenderer;
+
import org.opendaylight.mdsal.binding.javav2.model.api.CodeGenerator;
-import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTransferObject;
import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedType;
+import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTypeForBuilder;
import org.opendaylight.mdsal.binding.javav2.model.api.Type;
import org.opendaylight.mdsal.binding.javav2.model.api.UnitName;
-import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentable;
-import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentation;
import org.opendaylight.yangtools.concepts.Identifier;
/**
@Beta
public final class BuilderGenerator implements CodeGenerator {
+ /**
+ * Constant used as suffix for builder name.
+ */
+ public static final String BUILDER = "Builder";
+
@Override
public String generate(Type type) {
- if ((type instanceof GeneratedType) && !(type instanceof GeneratedTransferObject)) {
+ if (type instanceof GeneratedTypeForBuilder) {
final GeneratedType genType = (GeneratedType) type;
return new BuilderRenderer(genType).generateTemplate();
} else {
@Override
public boolean isAcceptable(Type type) {
- if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
- for (Type t : ((GeneratedType) type).getImplements()) {
- // "rpc" and "grouping" elements do not implement Augmentable
- if (t.getFullyQualifiedName().equals(Augmentable.class.getName())) {
- return true;
- } else if (t.getFullyQualifiedName().equals(Augmentation.class.getName())) {
- return true;
- }
-
- }
- }
- return false;
+ return type instanceof GeneratedTypeForBuilder;
}
@Override
public Identifier getUnitName(Type type) {
- return new UnitName(type.getName());
+ return new UnitName(type.getName() + BUILDER);
}
}