Fix for Bug 125.
authorMartin Vitez <mvitez@cisco.com>
Mon, 28 Oct 2013 09:55:43 +0000 (10:55 +0100)
committerMartin Vitez <mvitez@cisco.com>
Mon, 28 Oct 2013 09:56:35 +0000 (10:56 +0100)
Fixed bug in grouping definitions sort.

Signed-off-by: Martin Vitez <mvitez@cisco.com>
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/BindingGeneratorImpl.xtend
code-generator/binding-type-provider/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/GroupingDefinitionDependencySort.java

index c0802aecc5be43e0d8d794bc13be66a219966724..0a228da330e18ddd697a5bc19a23cd983e0e2da7 100644 (file)
@@ -70,6 +70,7 @@ import org.opendaylight.yangtools.yang.binding.DataContainer\rimport java.util.It
 import org.opendaylight.yangtools.yang.model.api.AugmentationTarget
 import java.util.Collection
 import org.opendaylight.yangtools.yang.model.api.YangNode
+import java.util.LinkedHashMap
 
 public class BindingGeneratorImpl implements BindingGenerator {\r
     /**\r
@@ -99,7 +100,7 @@ public class BindingGeneratorImpl implements BindingGenerator {
      * Schema node the object of type <code>Type</code> is required. So in this\r
      * case is used this map.\r
      */\r
-    private val allGroupings = new HashMap<SchemaPath, GeneratedType>();\r
+    private val allGroupings = new LinkedHashMap<SchemaPath, GeneratedType>();\r
 \r
     private val yangToJavaMapping = new HashMap<SchemaPath, Type>();\r
 \r
index 2936e31e269658f60751025d8c2eb69a2a625457..1b6ffd9822baf31b9b2fab78b0348c01ec8060ef 100644 (file)
@@ -14,6 +14,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -133,8 +134,14 @@ public class GroupingDefinitionDependencySort {
      */
     private Set<UsesNode> getAllUsesNodes(DataNodeContainer container) {
         Set<UsesNode> ret = new HashSet<>();
-        ret.addAll(container.getUses());
+        Set<UsesNode> usesNodes = container.getUses();
+        ret.addAll(usesNodes);
 
+        for (UsesNode usesNode : usesNodes) {
+            for (AugmentationSchema augment : usesNode.getAugmentations()) {
+                ret.addAll(getAllUsesNodes(augment));
+            }
+        }
         Set<GroupingDefinition> groupings = container.getGroupings();
         for (GroupingDefinition groupingDefinition : groupings) {
             ret.addAll(getAllUsesNodes(groupingDefinition));