Revert "BUG-1196: fixed bug in choice case codec."
[yangtools.git] / code-generator / binding-generator-impl / src / main / java / org / opendaylight / yangtools / sal / binding / generator / impl / BindingGeneratorImpl.xtend
index 82a191eb44288371129f55d67c3ae9b4be6d3320..8a41bef08f88a24889e712412508735e47227f87 100644 (file)
@@ -866,18 +866,17 @@ public class BindingGeneratorImpl implements BindingGenerator {
             return null;
         }
 
-        val String targetSchemaNodeName = result.QName.localName;
         var boolean fromUses = (result as DataSchemaNode).addedByUses
         var Iterator<UsesNode> groupingUses = grouping.uses.iterator;
-        while (fromUses) {
-            if (groupingUses.hasNext()) {
-                grouping = findNodeInSchemaContext(schemaContext, groupingUses.next().groupingPath.path) as GroupingDefinition;
-                result = grouping.getDataChildByName(targetSchemaNodeName);
-                fromUses = (result as DataSchemaNode).addedByUses;
-            } else {
-                throw new NullPointerException("Failed to generate code for augment in " + parentUsesNode);
+        while (groupingUses.hasNext && fromUses) {
+            result = findOriginalTargetFromGrouping(targetPath, groupingUses.next);
+            if (result != null) {
+                fromUses = (result as DataSchemaNode).addedByUses
             }
         }
+        if (fromUses) {
+            throw new NullPointerException("Failed to generate code for augment in " + parentUsesNode);
+        }
 
         return result as DataSchemaNode
     }
@@ -1156,7 +1155,7 @@ public class BindingGeneratorImpl implements BindingGenerator {
                     val List<QName> nodeNames = nodeSp.path
                     val List<QName> nodeNewNames = new ArrayList(nodeNames)
                     nodeNewNames.remove(nodeNewNames.size - 1)
-                    val SchemaPath nodeNewSp = new SchemaPath(nodeNewNames, nodeSp.absolute)
+                    val SchemaPath nodeNewSp = SchemaPath.create(nodeNewNames, nodeSp.absolute)
                     parentNode = findDataSchemaNode(schemaContext, nodeNewSp)
 
                     var SchemaNode parent
@@ -1179,7 +1178,7 @@ public class BindingGeneratorImpl implements BindingGenerator {
                         val List<QName> names = sp.path
                         val List<QName> newNames = new ArrayList(names)
                         newNames.remove(newNames.size - 1)
-                        val SchemaPath newSp = new SchemaPath(newNames, sp.absolute)
+                        val SchemaPath newSp = SchemaPath.create(newNames, sp.absolute)
                         parent = findDataSchemaNode(schemaContext, newSp)
                     }
                     var GeneratedTypeBuilder childOfType = findChildNodeByPath(parent.path)
@@ -1233,7 +1232,7 @@ public class BindingGeneratorImpl implements BindingGenerator {
                 val List<QName> nodeNames = nodeSp.path
                 val List<QName> nodeNewNames = new ArrayList(nodeNames)
                 nodeNewNames.remove(nodeNewNames.size - 1)
-                val SchemaPath nodeNewSp = new SchemaPath(nodeNewNames, nodeSp.absolute)
+                val SchemaPath nodeNewSp = SchemaPath.create(nodeNewNames, nodeSp.absolute)
                 parent = findDataSchemaNode(schemaContext, nodeNewSp)
 
                 var GeneratedTypeBuilder childOfType = null;
@@ -1571,7 +1570,6 @@ public class BindingGeneratorImpl implements BindingGenerator {
     private def GeneratedTypeBuilder addDefaultInterfaceDefinition(String packageName, SchemaNode schemaNode,
         Type parent) {
         val it = addRawInterfaceDefinition(packageName, schemaNode, "");
-        qnameConstant(BindingMapping.QNAME_STATIC_FIELD_NAME,schemaNode.QName);
         if (parent === null) {
             addImplementsType(DATA_OBJECT);
         } else {
@@ -1643,6 +1641,7 @@ public class BindingGeneratorImpl implements BindingGenerator {
 
         //FIXME: Validation of name conflict
         val newType = new GeneratedTypeBuilderImpl(packageName, genTypeName);
+        qnameConstant(newType,BindingMapping.QNAME_STATIC_FIELD_NAME,schemaNode.QName);
         newType.addComment(schemaNode.getDescription());
         if (!genTypeBuilders.containsKey(packageName)) {
             val Map<String, GeneratedTypeBuilder> builders = new HashMap();