X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Futil%2FDataNodeIterator.java;h=025c11c1e26b3fd53d1f7b99b28be84fcb65f59c;hb=3ec537875d4414720ae9e3c9f3710f81302cbf3e;hp=ed1db9a31505fc3ca961704e002862268975ca9f;hpb=3c2966103237d8c6c270105562cc4eda3871859a;p=yangtools.git diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/DataNodeIterator.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/DataNodeIterator.java index ed1db9a315..025c11c1e2 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/DataNodeIterator.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/DataNodeIterator.java @@ -8,6 +8,7 @@ package org.opendaylight.yangtools.yang.model.util; import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -24,6 +25,15 @@ import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; +/** + * DataNodeIterator is iterator, which walks down whole YANG DataNodeContainer + * and walks all instances of {@link DataSchemaNode} present in subtree. + * + * Iterator instance is eagerly created, walking happens on initialization. + * + * Iteration is not ordered. + * + */ public class DataNodeIterator implements Iterator { private final DataNodeContainer container; @@ -50,22 +60,47 @@ public class DataNodeIterator implements Iterator { traverse(this.container); } + /** + * Returns list all containers present in subtree. + * + * @return Returns list all containers present in subtree. + */ public List allContainers() { return allContainers; } + /** + * Returns list all lists present in subtree. + * + * @return Returns list all containers present in subtree. + */ public List allLists() { return allLists; } + /** + * Returns list all choices present in subtree. + * + * @return Returns list all containers present in subtree. + */ public List allChoices() { return allChoices; } + /** + * Returns list all groupings present in subtree. + * + * @return Returns list all containers present in subtree. + */ public List allGroupings() { return allGroupings; } + /** + * Returns list all typedefs present in subtree. + * + * @return Returns list all containers present in subtree. + */ public List> allTypedefs() { return allTypedefs; } @@ -75,7 +110,7 @@ public class DataNodeIterator implements Iterator { return; } - final Set childNodes = dataNode.getChildNodes(); + final Iterable childNodes = dataNode.getChildNodes(); if (childNodes != null) { for (DataSchemaNode childNode : childNodes) { if (childNode.isAugmenting()) { @@ -109,7 +144,7 @@ public class DataNodeIterator implements Iterator { } - private void traverseModule(DataNodeContainer dataNode) { + private void traverseModule(final DataNodeContainer dataNode) { final Module module; if (dataNode instanceof Module) { module = (Module) dataNode; @@ -136,7 +171,7 @@ public class DataNodeIterator implements Iterator { } } - private void traverseGroupings(DataNodeContainer dataNode) { + private void traverseGroupings(final DataNodeContainer dataNode) { final Set groupings = dataNode.getGroupings(); if (groupings != null) { for (GroupingDefinition grouping : groupings) { @@ -149,7 +184,7 @@ public class DataNodeIterator implements Iterator { @Override public boolean hasNext() { if (container.getChildNodes() != null) { - final Set childNodes = container.getChildNodes(); + final Collection childNodes = container.getChildNodes(); if ((childNodes != null) && !childNodes.isEmpty()) { return childNodes.iterator().hasNext();