From: Jie Han Date: Mon, 10 Jul 2017 07:07:02 +0000 (+0800) Subject: Binding generator v2 - augment statement #2 X-Git-Tag: release/carbon-sr2~50 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=17cf88e778a524965aa4653004595909ed6b3b45 Binding generator v2 - augment statement #2 - fix augment package and class name Change-Id: I00e5f1d0547fdf15b9c5ee5abc9059c343feccc8 Signed-off-by: Jie Han (cherry picked from commit dd12713af387be01539547adbdc001e7ce2dcc43) --- 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 3b8dd41eee..686aab0dde 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 @@ -239,12 +239,12 @@ final class AugmentToGenType { throw new NullPointerException("Target type not yet generated: " + targetSchemaNode); } - final String augmentNamespacePackageName = - BindingGeneratorUtil.packageNameForAugmentedGeneratedType(basePackageName, targetPath); + final String augmentPackageName = + BindingGeneratorUtil.packageNameWithNamespacePrefix(basePackageName, BindingNamespaceType.Data); if (!(targetSchemaNode instanceof ChoiceSchemaNode)) { - genCtx = GenHelperUtil.addRawAugmentGenTypeDefinition(module, augmentNamespacePackageName, - targetTypeBuilder.toInstance(), schemaPathAugmentListEntry.getValue(), genTypeBuilders, genCtx, + genCtx = GenHelperUtil.addRawAugmentGenTypeDefinition(module, augmentPackageName, + targetTypeBuilder.toInstance(), targetSchemaNode, schemaPathAugmentListEntry.getValue(), genTypeBuilders, genCtx, schemaContext, verboseClassComments, typeProvider, BindingNamespaceType.Data); } else { genCtx = generateTypesFromAugmentedChoiceCases(schemaContext, module, basePackageName, @@ -299,7 +299,7 @@ final class AugmentToGenType { (AugmentationSchema)usesNodeParent); } genCtx = GenHelperUtil.addRawAugmentGenTypeDefinition(module, packageName, - targetTypeBuilder.toInstance(), schemaPathAugmentListEntry, genTypeBuilders, genCtx, + targetTypeBuilder.toInstance(), targetSchemaNode, schemaPathAugmentListEntry, genTypeBuilders, genCtx, schemaContext, verboseClassComments, typeProvider, namespaceType); return genCtx; } else { 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 05c9c63473..59b7e11aa0 100644 --- 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 @@ -414,7 +414,7 @@ final class GenHelperUtil { } static Map addRawAugmentGenTypeDefinition(final Module module, final String augmentPackageName, - final Type targetTypeRef, final List schemaPathAugmentListEntry, + final Type targetTypeRef, final SchemaNode targetNode, final List schemaPathAugmentListEntry, final Map> genTypeBuilders, final Map genCtx, final SchemaContext schemaContext, final boolean verboseClassComments, final TypeProvider typeProvider, final BindingNamespaceType namespaceType) { @@ -432,14 +432,13 @@ final class GenHelperUtil { break; } - boolean isTypeNormalized = false; if (augIdentifier == null) { - augIdentifier = augGenTypeName(augmentBuilders, targetTypeRef.getName()); - isTypeNormalized = true; + augIdentifier = new StringBuilder(module.getName()) + .append('_').append(targetNode.getQName().getLocalName()).toString(); } GeneratedTypeBuilderImpl augTypeBuilder = new GeneratedTypeBuilderImpl(augmentPackageName, augIdentifier, - false, isTypeNormalized); + true, false); augTypeBuilder.addImplementsType(BindingTypes.TREE_NODE); augTypeBuilder.addImplementsType(parameterizedTypeFor(BindingTypes.INSTANTIABLE, augTypeBuilder)); diff --git a/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenTypeTest.java b/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenTypeTest.java index 30d5fc64dc..125df3b830 100644 --- a/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenTypeTest.java +++ b/binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenTypeTest.java @@ -693,6 +693,7 @@ public class AugmentToGenTypeTest { final DataSchemaNode origSchNode = mock(DataSchemaNode.class); when(origSchNode.getPath()).thenReturn(path); when(origSchNode.isAddedByUses()).thenReturn(true); + when(origSchNode.getQName()).thenReturn(QName.create("test", "2017-04-04", "aug-node")); final Optional optionalSchemaNode = Optional.of(origSchNode); when(targetSchNode.getOriginal()).thenReturn(optionalSchemaNode); when(moduleAug.getDataChildByName(qnamePath)).thenReturn(targetSchNode); @@ -723,7 +724,7 @@ public class AugmentToGenTypeTest { assertNotNull(result); final ModuleContext moduleContext = result.get(moduleAug); assertTrue(moduleContext.getAugmentations().get(0).getName().contains("Augm")); - assertEquals("pckg.name.data.aug", moduleContext.getAugmentations().get(0).getPackageName()); + assertEquals("pckg.name.data", moduleContext.getAugmentations().get(0).getPackageName()); assertTrue(moduleContext.getChildNode(path).getName().contains("Augm")); assertEquals("pckg.name", moduleContext.getChildNode(path).getPackageName()); } @@ -899,6 +900,7 @@ public class AugmentToGenTypeTest { when(groupingDefinition.getQName()).thenReturn(qnamePath); final DataSchemaNode schNode = mock(DataSchemaNode.class); when(schNode.getPath()).thenReturn(path); + when(schNode.getQName()).thenReturn(QName.create("test", "2017-04-04", "aug-node")); when(groupingDefinition.getDataChildByName(qnamePath)).thenReturn(schNode); groupings.add(groupingDefinition); when(moduleAug.getGroupings()).thenReturn(groupings); @@ -948,6 +950,7 @@ public class AugmentToGenTypeTest { when(groupingDefinition.getQName()).thenReturn(qnamePath); final ChoiceSchemaNode schNode = mock(ChoiceSchemaNode.class); when(schNode.getPath()).thenReturn(path); + when(schNode.getQName()).thenReturn(QName.create("test", "2017-04-04", "aug-node")); when(groupingDefinition.getDataChildByName(qnamePath)).thenReturn(schNode); groupings.add(groupingDefinition); when(moduleAug.getGroupings()).thenReturn(groupings); diff --git a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/BindingGeneratorUtil.java b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/BindingGeneratorUtil.java index a38a929da9..d8cd5bd941 100644 --- a/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/BindingGeneratorUtil.java +++ b/binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/BindingGeneratorUtil.java @@ -198,8 +198,8 @@ public final class BindingGeneratorUtil { * @return string with valid JAVA package name * @throws NullPointerException if any of the arguments are null */ - public static String packageNameWithNamespacePrefix(final String basePackageName, final - BindingNamespaceType namespaceType) { + public static String packageNameWithNamespacePrefix(final String basePackageName, + final BindingNamespaceType namespaceType) { final StringBuilder sb = new StringBuilder(); sb.append(basePackageName) .append('.')