From: Jie Han Date: Sun, 11 Feb 2018 03:23:47 +0000 (+0800) Subject: Extend BindingNamespaceType X-Git-Tag: v3.0.0~46 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=65ef0ef867f8c98b8e324168739c957635fd4c17;p=mdsal.git Extend BindingNamespaceType - Extend BindingNamespaceType with 'Notification' and 'Operation' to distinguish data nodes from notifications and operations. It's useful to guide renderers to generate code like 'getInstanceIdentifier' which is only needed by tree data nodes. - Make binding namespace type of augmented nodes inherit target type's. Change-Id: I5b7b598d1db40b8d2b70707b0d3ba6f41f9b9fd3 Signed-off-by: Jie Han --- diff --git a/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/GeneratedType.java b/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/GeneratedType.java index c37fbd0c9d..0293d63388 100755 --- a/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/GeneratedType.java +++ b/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/GeneratedType.java @@ -11,6 +11,7 @@ package org.opendaylight.mdsal.binding.javav2.model.api; import com.google.common.annotations.Beta; import java.util.List; import java.util.Optional; +import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType; /** * Every Java interface has to be specified with: @@ -128,4 +129,11 @@ public interface GeneratedType extends Type, DocumentedType { * @return YANG source definition, or empty when unavailable. */ Optional getYangSourceDefinition(); + + /** + * Get the BindingNamespaceType. + * + * @return BindingNamespaceType which type belongs to. + */ + BindingNamespaceType getBindingNamespaceType(); } diff --git a/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/type/builder/GeneratedTypeBuilderBase.java b/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/type/builder/GeneratedTypeBuilderBase.java index 070f329827..9060ec1e66 100644 --- a/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/type/builder/GeneratedTypeBuilderBase.java +++ b/binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/type/builder/GeneratedTypeBuilderBase.java @@ -17,6 +17,7 @@ import org.opendaylight.mdsal.binding.javav2.model.api.Constant; import org.opendaylight.mdsal.binding.javav2.model.api.Type; import org.opendaylight.mdsal.binding.javav2.model.api.TypeComment; import org.opendaylight.mdsal.binding.javav2.model.api.YangSourceDefinition; +import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType; import org.opendaylight.yangtools.yang.common.QName; @Beta @@ -154,6 +155,13 @@ public interface GeneratedTypeBuilderBase> */ Type setParentTypeForBuilder(Type type); + /** + * Get the BindingNamespaceType. + * + * @return BindingNamespaceType which type belongs to. + */ + BindingNamespaceType getBindingNamespaceType(); + List getMethodDefinitions(); /** @@ -256,4 +264,11 @@ public interface GeneratedTypeBuilderBase> * @param definition YANG source definition, must not be null */ void setYangSourceDefinition(@NonNull YangSourceDefinition definition); + + /** + * Set the BindingNamespaceType. + * + * @param namespaceType BindingNamespaceType which type belongs to, must not be null + */ + void setBindingNamespaceType(@NonNull BindingNamespaceType namespaceType); } diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java index f0d6355cc5..30a85e9b84 100644 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java @@ -241,13 +241,14 @@ final class AugmentToGenType { if (!(targetSchemaNode instanceof ChoiceSchemaNode)) { genCtx = GenHelperUtil.addRawAugmentGenTypeDefinition(module, augmentPackageName, - targetTypeBuilder.toInstance(), targetSchemaNode, schemaPathAugmentListEntry.getValue(), - genTypeBuilders, genCtx, schemaContext, verboseClassComments, typeProvider, BindingNamespaceType.Data); + targetTypeBuilder, targetSchemaNode, schemaPathAugmentListEntry.getValue(), + genTypeBuilders, genCtx, schemaContext, verboseClassComments, typeProvider, + targetTypeBuilder.getBindingNamespaceType()); } else { genCtx = generateTypesFromAugmentedChoiceCases(schemaContext, module, basePackageName, targetTypeBuilder.toInstance(), (ChoiceSchemaNode) targetSchemaNode, schemaPathAugmentListEntry.getValue(),genCtx, verboseClassComments, genTypeBuilders, typeProvider, - BindingNamespaceType.Data); + targetTypeBuilder.getBindingNamespaceType()); } return genCtx; } diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java old mode 100644 new mode 100755 index 919f8c021a..0f1792534d --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AuxiliaryGenUtils.java @@ -150,7 +150,7 @@ final class AuxiliaryGenUtils { } public static boolean hasBuilderClass(final SchemaNode schemaNode, final BindingNamespaceType namespaceType) { - return (namespaceType.equals(BindingNamespaceType.Data) + return (BindingNamespaceType.isData(namespaceType) && (schemaNode instanceof ContainerSchemaNode || schemaNode instanceof ListSchemaNode || schemaNode instanceof RpcDefinition || schemaNode instanceof NotificationDefinition || schemaNode instanceof CaseSchemaNode)); diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java index 316deadec2..21f578da23 100755 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java @@ -309,10 +309,10 @@ final class GenHelperUtil { type.addImplementsType(superType); if (superChildNode instanceof ListSchemaNode && !((ListSchemaNode) superChildNode).getKeyDefinition().isEmpty()) { - if (namespaceType.equals(BindingNamespaceType.Grouping)) { + if (BindingNamespaceType.isGrouping(namespaceType)) { genCtx.get(module).getKeyType(childNode.getPath()) .addImplementsType(genCtx.get(superModule).getKeyType(superChildNode.getPath())); - } else if (namespaceType.equals(BindingNamespaceType.Data)) { + } else if (BindingNamespaceType.isData(namespaceType)) { genCtx.get(module).getKeyGenTO(childNode.getPath()) .addImplementsType(genCtx.get(superModule).getKeyType(superChildNode.getPath())); } @@ -401,7 +401,7 @@ final class GenHelperUtil { } static Map addRawAugmentGenTypeDefinition(final Module module, - final String augmentPackageName, final Type targetTypeRef, final SchemaNode targetNode, + final String augmentPackageName, final GeneratedTypeBuilder targetTypeBuilder, final SchemaNode targetNode, final List schemaPathAugmentListEntry, final Map> genTypeBuilders, final Map genCtx, final SchemaContext schemaContext, @@ -433,9 +433,10 @@ final class GenHelperUtil { augTypeBuilder.addImplementsType(BindingTypes.TREE_NODE); augTypeBuilder.addImplementsType(parameterizedTypeFor(BindingTypes.INSTANTIABLE, augTypeBuilder)); - augTypeBuilder.addImplementsType(Types.augmentationTypeFor(targetTypeRef)); + augTypeBuilder.addImplementsType(Types.augmentationTypeFor(targetTypeBuilder.toInstance())); augTypeBuilder.setBasePackageName(BindingMapping.getRootPackageName(module)); augTypeBuilder.setWithBuilder(true); + augTypeBuilder.setBindingNamespaceType(namespaceType); annotateDeprecatedIfNecessary(augSchema.getStatus(), augTypeBuilder); //produces getters for augTypeBuilder eventually @@ -444,7 +445,7 @@ final class GenHelperUtil { addImplementedInterfaceFromUses(aug, augTypeBuilder, genCtx); augSchemaNodeToMethods(module, BindingMapping.getRootPackageName(module), augTypeBuilder, augTypeBuilder, aug.getChildNodes(), genCtx, schemaContext, verboseClassComments, typeProvider, genTypeBuilders, - namespaceType); + targetTypeBuilder.getBindingNamespaceType()); } augmentBuilders.put(augTypeBuilder.getName(), augTypeBuilder); @@ -526,13 +527,12 @@ final class GenHelperUtil { GeneratedTypeBuilder it = addRawInterfaceDefinition(basePackageName, schemaNode, schemaContext, "", "", verboseClassComments, genTypeBuilders, namespaceType, genCtx.get(module)); - - if (namespaceType.equals(BindingNamespaceType.Data)) { + if (BindingNamespaceType.isData(namespaceType)) { if (childOf == null) { it.addImplementsType(BindingTypes.TREE_NODE); } else { if (!(schemaNode instanceof ListSchemaNode) || - ((ListSchemaNode) schemaNode).getKeyDefinition().isEmpty()) { + ((ListSchemaNode) schemaNode).getKeyDefinition().isEmpty()) { it.addImplementsType(parameterizedTypeFor(BindingTypes.TREE_CHILD_NODE, childOf, parameterizedTypeFor(BindingTypes.ITEM, it))); } @@ -543,8 +543,6 @@ final class GenHelperUtil { } it.addImplementsType(BindingTypes.augmentable(it)); - } else { - it.addImplementsType(BindingTypes.TREE_NODE); } if (schemaNode instanceof DataNodeContainer) { @@ -562,7 +560,7 @@ final class GenHelperUtil { genTypeBuilders, final TypeProvider typeProvider, final Map genCtx) { final GeneratedTypeBuilder notificationInterface = addDefaultInterfaceDefinition (basePackageName, notification, null, module, genCtx, schemaContext, - verboseClassComments, genTypeBuilders, typeProvider, BindingNamespaceType.Data); + verboseClassComments, genTypeBuilders, typeProvider, BindingNamespaceType.Notification); annotateDeprecatedIfNecessary(notification.getStatus(), notificationInterface); notificationInterface.addImplementsType(NOTIFICATION); genCtx.get(module).addChildNodeType(notification, notificationInterface); @@ -570,7 +568,7 @@ final class GenHelperUtil { // Notification object resolveDataSchemaNodes(module, basePackageName, notificationInterface, notificationInterface, notification.getChildNodes(), genCtx, schemaContext, - verboseClassComments, genTypeBuilders, typeProvider, BindingNamespaceType.Data); + verboseClassComments, genTypeBuilders, typeProvider, BindingNamespaceType.Notification); //in case of tied notification, incorporate parent's localName final StringBuilder sb = new StringBuilder("on_"); @@ -644,6 +642,7 @@ final class GenHelperUtil { newType.setModuleName(module.getName()); newType.setBasePackageName(BindingMapping.getRootPackageName(module)); newType.setWithBuilder(AuxiliaryGenUtils.hasBuilderClass(schemaNode, namespaceType)); + newType.setBindingNamespaceType(namespaceType); if (!genTypeBuilders.containsKey(packageName)) { final Map builders = new HashMap<>(); @@ -724,7 +723,7 @@ final class GenHelperUtil { constructGetter(parent, choiceNode.getQName().getLocalName(), choiceNode.getDescription().orElse(null), choiceTypeBuilder, choiceNode.getStatus()); choiceTypeBuilder.setParentTypeForBuilder(childOf); - if (namespaceType.equals(BindingNamespaceType.Data)) { + if (BindingNamespaceType.isData(namespaceType)) { choiceTypeBuilder.addImplementsType(parameterizedTypeFor(BindingTypes.INSTANTIABLE, choiceTypeBuilder)); } annotateDeprecatedIfNecessary(choiceNode.getStatus(), choiceTypeBuilder); @@ -762,7 +761,7 @@ final class GenHelperUtil { final String nodeName = node.getQName().getLocalName(); Type getterReturnType = Types.listTypeFor(genType); - if (namespaceType.equals(BindingNamespaceType.Grouping)) { + if (BindingNamespaceType.isGrouping(namespaceType)) { getterReturnType = Types.listTypeFor(wildcardTypeFor(genType.getPackageName(), genType.getName(), true, true, null)); } @@ -772,7 +771,7 @@ final class GenHelperUtil { final String packageName = new StringBuilder(packageNameForGeneratedType(basePackageName, node.getPath(), BindingNamespaceType.Key)).append('.').append(nodeName).toString(); //FIXME: Is it neccessary to generate interface of key and implemented by class? - if (namespaceType.equals(BindingNamespaceType.Grouping)) { + if (BindingNamespaceType.isGrouping(namespaceType)) { final GeneratedTypeBuilder genTypeBuilder = resolveListKeyTypeBuilder(packageName, node, genCtx.get(module)); for (final DataSchemaNode schemaNode : node.getChildNodes()) { if (resolveDataSchemaNodesCheck(module, schemaContext, schemaNode)) { @@ -791,9 +790,10 @@ final class GenHelperUtil { final Type identifiableMarker = Types.parameterizedTypeFor(IDENTIFIABLE, genTOBuilder); genTOBuilder.addImplementsType(IDENTIFIER); genType.addImplementsType(identifiableMarker); - genType.addImplementsType(parameterizedTypeFor(BindingTypes.TREE_CHILD_NODE, childOf, parameterizedTypeFor - (BindingTypes.IDENTIFIABLE_ITEM, genType, genTOBuilder))); - + if (BindingNamespaceType.isData(namespaceType)) { + genType.addImplementsType(parameterizedTypeFor(BindingTypes.TREE_CHILD_NODE, childOf, + parameterizedTypeFor(BindingTypes.IDENTIFIABLE_ITEM, genType, genTOBuilder))); + } } for (final DataSchemaNode schemaNode : node.getChildNodes()) { @@ -822,7 +822,7 @@ final class GenHelperUtil { checkArgument(typeBuilder != null, "Generated Type Builder cannot be NULL."); if (keyType != null) { Type returnKeyType = keyType; - if (namespaceType.equals(BindingNamespaceType.Grouping)) { + if (BindingNamespaceType.isGrouping(namespaceType)) { returnKeyType = wildcardTypeFor(keyType.getPackageName(), keyType.getName(), true, true, null); } @@ -1076,7 +1076,7 @@ final class GenHelperUtil { caseTypeBuilder.setParentTypeForBuilder(refChoiceType.getParentTypeForBuilder()); annotateDeprecatedIfNecessary(caseNode.getStatus(), caseTypeBuilder); genCtx.get(module).addCaseType(caseNode.getPath(), caseTypeBuilder); - if (namespaceType.equals(BindingNamespaceType.Data)) { + if (BindingNamespaceType.isData(namespaceType)) { genCtx.get(module).addChoiceToCaseMapping(refChoiceType, caseTypeBuilder, caseNode); } @@ -1263,7 +1263,10 @@ final class GenHelperUtil { node.getReference().ifPresent(genType::setReference); } genType.setSchemaPath((List) node.getPath().getPathFromRoot()); - genType.setParentTypeForBuilder(childOf); + if (BindingNamespaceType.isData(namespaceType)) { + genType.setParentTypeForBuilder(childOf); + } + if (node instanceof DataNodeContainer) { genCtx.get(module).addChildNodeType(node, genType); } diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/ModuleToGenType.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/ModuleToGenType.java old mode 100644 new mode 100755 index 8be9e735aa..991b6a51d6 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/ModuleToGenType.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/ModuleToGenType.java @@ -189,7 +189,7 @@ final class ModuleToGenType { if (notification != null) { resolveNotification(listenerInterface, null, basePackageName, notification, module, schemaContext, verboseClassComments, genTypeBuilders, typeProvider, genCtx); - processUsesImplements(notification, module, schemaContext, genCtx, BindingNamespaceType.Data); + processUsesImplements(notification, module, schemaContext, genCtx, BindingNamespaceType.Notification); } } @@ -206,7 +206,7 @@ final class ModuleToGenType { resolveNotification(listenerInterface, potential.getQName().getLocalName(), basePackageName, tiedNotification, module, schemaContext, verboseClassComments, genTypeBuilders, typeProvider, genCtx); - processUsesImplements(tiedNotification, module, schemaContext, genCtx, BindingNamespaceType.Data); + processUsesImplements(tiedNotification, module, schemaContext, genCtx, BindingNamespaceType.Notification); } } } diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java old mode 100644 new mode 100755 index 66260fb8fb..5bcb0e8a4a --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java @@ -107,7 +107,7 @@ final class RpcActionGenHelper { for (DataSchemaNode potential : potentials) { if (resolveDataSchemaNodesCheck(module, schemaContext,potential)) { BindingNamespaceType namespaceType1 = namespaceType; - if (namespaceType.equals(BindingNamespaceType.Data)) { + if (BindingNamespaceType.isData(namespaceType)) { if (potential instanceof GroupingDefinition) { namespaceType1 = BindingNamespaceType.Grouping; } @@ -146,7 +146,7 @@ final class RpcActionGenHelper { checkModuleAndModuleName(module); resolveActions(module, module, schemaContext, verboseClassComments, genTypeBuilders, genCtx, typeProvider, - BindingNamespaceType.Data); + BindingNamespaceType.Operation); return genCtx; } @@ -186,7 +186,7 @@ final class RpcActionGenHelper { for (final RpcDefinition rpc : rpcDefinitions) { final GeneratedTypeBuilder typeBuilder = resolveOperation(null, rpc, module, schemaContext, verboseClassComments, genTypeBuilders, genCtx, typeProvider, false, - BindingNamespaceType.Data); + BindingNamespaceType.Operation); genCtx.get(module).addTopLevelNodeType(typeBuilder); genCtx.get(module).addTypeToSchema(typeBuilder, rpc); } @@ -297,8 +297,10 @@ final class RpcActionGenHelper { final GeneratedTypeBuilder nodeType = addRawInterfaceDefinition(basePackageName, operationNode, schemaContext, operationName, "", verboseClassComments, genTypeBuilders, namespaceType, genCtx.get(module)); addImplementedInterfaceFromUses(operationNode, nodeType, genCtx); + nodeType.addImplementsType(parameterizedTypeFor(BindingTypes.TREE_CHILD_NODE, parent, parameterizedTypeFor - (BindingTypes.ITEM, nodeType))); + (BindingTypes.ITEM, nodeType))); + if (isInput) { nodeType.addImplementsType(parameterizedTypeFor(INPUT, nodeType)); } else { diff --git a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedType.java b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedType.java index 5450d6e79f..fcde49fc84 100755 --- a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedType.java +++ b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedType.java @@ -32,6 +32,7 @@ import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedPro import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTypeBuilder; import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.MethodSignatureBuilder; +import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType; @Beta abstract class AbstractGeneratedType extends AbstractBaseType implements GeneratedType { @@ -48,6 +49,7 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat private final List properties; private final boolean isAbstract; private final YangSourceDefinition definition; + private final BindingNamespaceType namespaceType; public AbstractGeneratedType(final AbstractGeneratedTypeBuilder builder) { super(builder.getPackageName(), builder.getName(), true, null); @@ -64,28 +66,7 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat this.properties = toUnmodifiableProperties(builder.getProperties()); this.isAbstract = builder.isAbstract(); this.definition = builder.getYangSourceDefinition().orElse(null); - } - - public AbstractGeneratedType(final Type parent, final String packageName, final String name, final TypeComment comment, - final List annotationBuilders, final boolean isAbstract, - final List implementsTypes, final List enclosedGenTypeBuilders, - final List enclosedGenTOBuilders, final List enumBuilders, - final List constants, final List methodBuilders, - final List propertyBuilders, final Type parentTypeForBuilder) { - //TODO: not called by actual codebase, fix this up (provide context) if needed - 07/20/2017 - super(packageName, name, null); - this.parent = parent; - this.parentTypeForBuilder = parentTypeForBuilder; - this.comment = comment; - this.annotations = toUnmodifiableAnnotations(annotationBuilders); - this.implementsTypes = makeUnmodifiable(implementsTypes); - this.constants = makeUnmodifiable(constants); - this.enumerations = toUnmodifiableEnumerations(enumBuilders); - this.methodSignatures = toUnmodifiableMethods(methodBuilders); - this.enclosedTypes = toUnmodifiableEnclosedTypes(enclosedGenTypeBuilders, enclosedGenTOBuilders); - this.properties = toUnmodifiableProperties(propertyBuilders); - this.isAbstract = isAbstract; - this.definition = null; + this.namespaceType = builder.getBindingNamespaceType(); } protected static final List makeUnmodifiable(final List list) { @@ -193,6 +174,11 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat return Optional.ofNullable(definition); } + @Override + public BindingNamespaceType getBindingNamespaceType() { + return this.namespaceType; + } + @Override public String toString() { final StringBuilder builder = new StringBuilder(); diff --git a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedTypeBuilder.java b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedTypeBuilder.java index c2a31fdab9..569addbf50 100755 --- a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedTypeBuilder.java +++ b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedTypeBuilder.java @@ -28,6 +28,7 @@ import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTOB import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTypeBuilder; import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTypeBuilderBase; import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.MethodSignatureBuilder; +import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType; import org.opendaylight.yangtools.util.LazyCollections; @Beta @@ -46,6 +47,7 @@ abstract class AbstractGeneratedTypeBuilder