Binding generator v2 - augment statement #2 59/60459/2
authorJie Han <han.jie@zte.com.cn>
Mon, 10 Jul 2017 07:07:02 +0000 (15:07 +0800)
committerRobert Varga <nite@hq.sk>
Mon, 17 Jul 2017 09:09:36 +0000 (09:09 +0000)
- fix augment package and class name
Change-Id: I00e5f1d0547fdf15b9c5ee5abc9059c343feccc8
Signed-off-by: Jie Han <han.jie@zte.com.cn>
(cherry picked from commit dd12713af387be01539547adbdc001e7ce2dcc43)

binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java
binding2/mdsal-binding2-generator-impl/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenTypeTest.java
binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/BindingGeneratorUtil.java

index 3b8dd41eee2b3896c53d0c7b9948d026c23f18ca..686aab0dde1b6c3eb2a9a0af26b1c8c295017735 100644 (file)
@@ -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 {
index 05c9c63473bf799b248e8b38f2f0496e1575e9c8..59b7e11aa07e443697a7419b88243dc2a36cc029 100644 (file)
@@ -414,7 +414,7 @@ final class GenHelperUtil {
     }
 
     static Map<Module, ModuleContext> addRawAugmentGenTypeDefinition(final Module module, final String augmentPackageName,
-            final Type targetTypeRef, final List<AugmentationSchema> schemaPathAugmentListEntry,
+            final Type targetTypeRef, final SchemaNode targetNode, final List<AugmentationSchema> schemaPathAugmentListEntry,
             final Map<String, Map<String, GeneratedTypeBuilder>> genTypeBuilders, final Map<Module, ModuleContext> 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));
index 30d5fc64dcaaf491d5e5835ddd5529af3972117f..125df3b830969fb03de3cd69c3525c2fef6804ec 100644 (file)
@@ -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);
index a38a929da9084ad5fd062acc7510b47e9f9204d5..d8cd5bd9419f6b9462a53da1c3edc611afc59e77 100644 (file)
@@ -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('.')