X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fyang%2Fyang-model-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fmodel%2Futil%2FDataNodeIterator.java;h=7c26531f37efbddd520b31623539d011511719f7;hb=ff1b4a79cca00743a00c3b0b1100bd0ab2b2fb31;hp=df111acf0854603d453f1c1bd6cefb40a449d48c;hpb=0b33d4dc79b1a60b3a62e1bfc848c352cf5acdb9;p=controller.git diff --git a/opendaylight/sal/yang-prototype/yang/yang-model-util/src/main/java/org/opendaylight/controller/yang/model/util/DataNodeIterator.java b/opendaylight/sal/yang-prototype/yang/yang-model-util/src/main/java/org/opendaylight/controller/yang/model/util/DataNodeIterator.java index df111acf08..7c26531f37 100644 --- a/opendaylight/sal/yang-prototype/yang/yang-model-util/src/main/java/org/opendaylight/controller/yang/model/util/DataNodeIterator.java +++ b/opendaylight/sal/yang-prototype/yang/yang-model-util/src/main/java/org/opendaylight/controller/yang/model/util/DataNodeIterator.java @@ -8,29 +8,30 @@ import java.util.Set; import org.opendaylight.controller.yang.model.api.ContainerSchemaNode; import org.opendaylight.controller.yang.model.api.DataNodeContainer; import org.opendaylight.controller.yang.model.api.DataSchemaNode; +import org.opendaylight.controller.yang.model.api.GroupingDefinition; import org.opendaylight.controller.yang.model.api.LeafListSchemaNode; import org.opendaylight.controller.yang.model.api.LeafSchemaNode; import org.opendaylight.controller.yang.model.api.ListSchemaNode; public class DataNodeIterator implements Iterator { - + private final DataNodeContainer container; private List allLists; private List allContainers; private List allLeafs; private List allLeafLists; private List allChilds; - + public DataNodeIterator(final DataNodeContainer container) { if (container == null) { throw new IllegalArgumentException("Data Node Container MUST be specified and cannot be NULL!"); } - + init(); this.container = container; traverse(this.container); } - + private void init() { this.allContainers = new ArrayList(); this.allLists = new ArrayList(); @@ -38,28 +39,28 @@ public class DataNodeIterator implements Iterator { this.allLeafLists = new ArrayList(); this.allChilds = new ArrayList(); } - + public List allContainers() { return allContainers; } - + public List allLists() { return allLists; } - + public List allLeafs() { return allLeafs; } - + public List allLeafLists() { return allLeafLists; } - + private void traverse(final DataNodeContainer dataNode) { if (dataNode == null) { return; } - + final Set childs = dataNode.getChildNodes(); if (childs != null) { for (DataSchemaNode childNode : childs) { @@ -83,15 +84,21 @@ public class DataNodeIterator implements Iterator { allLeafLists.add(leafList); } } - return; + } + + final Set groupings = dataNode.getGroupings(); + if(groupings != null) { + for(GroupingDefinition grouping : groupings) { + traverse(grouping); + } } } - + @Override public boolean hasNext() { if (container.getChildNodes() != null) { Set childs = container.getChildNodes(); - + if ((childs != null) && !childs.isEmpty()) { return childs.iterator().hasNext(); }