Migrate away from DataNodeIterator 16/86916/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 14 Jan 2020 16:09:05 +0000 (17:09 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Jan 2020 08:37:55 +0000 (09:37 +0100)
We do not need to collect the entire analysis, just typedefs
(and containers in a test). Migrate to new SchemaUtils methods which
provide exactly that functionality more efficiently.

Change-Id: Idfbe19c785351f3280eae33c476d533055cb16e6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/BindingGeneratorUtilTest.java

index 59ab7e26ff6841e768be623f67c6d56e565b7edd..678200e2874059cf6b4bfad64b43fd5d5250923c 100644 (file)
@@ -123,7 +123,6 @@ import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.DataNodeIterator;
 import org.opendaylight.yangtools.yang.model.util.ModuleDependencySort;
 import org.opendaylight.yangtools.yang.model.util.SchemaNodeUtils;
 import org.opendaylight.yangtools.yang.model.util.type.CompatUtils;
@@ -262,11 +261,8 @@ abstract class AbstractTypeGenerator {
     private void allTypeDefinitionsToGenTypes(final ModuleContext context) {
         final Module module = context.module();
         checkArgument(module.getName() != null, "Module name cannot be NULL.");
-        final DataNodeIterator it = new DataNodeIterator(module);
-        final List<TypeDefinition<?>> typeDefinitions = it.allTypedefs();
-        checkState(typeDefinitions != null, "Type Definitions for module %s cannot be NULL.", module.getName());
 
-        for (final TypeDefinition<?> typedef : typeDefinitions) {
+        for (final TypeDefinition<?> typedef : SchemaNodeUtils.getAllTypeDefinitions(module)) {
             if (typedef != null) {
                 final Type type = typeProvider.generatedTypeForExtendedDefinitionType(typedef,  typedef);
                 if (type != null) {
index 0d2f426d34e617f0c3217062783e3ed620d2312c..76240b31266d0f463ed52b20cf1208c2fcd2c0c1 100644 (file)
@@ -19,7 +19,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Range;
 import java.io.Serializable;
-import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 import org.junit.Rule;
@@ -43,7 +42,7 @@ import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Int16TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Uint16TypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.BaseConstraints;
-import org.opendaylight.yangtools.yang.model.util.DataNodeIterator;
+import org.opendaylight.yangtools.yang.model.util.SchemaNodeUtils;
 import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.type.DerivedTypes;
 import org.opendaylight.yangtools.yang.model.util.type.InvalidLengthConstraintException;
@@ -86,10 +85,8 @@ public class BindingGeneratorUtilTest {
                 "org.opendaylight.yang.gen.v1.urn.m.o.d.u.l.e.n.a.m.e.t.e.s.t._case._1digit.rev130910", packageName);
 
         // test of the method packageNameForGeneratedType()
-        DataNodeIterator it = new DataNodeIterator(module);
-        List<ContainerSchemaNode> schemaContainers = it.allContainers();
         String subPackageNameForDataNode = "";
-        for (ContainerSchemaNode containerSchemaNode : schemaContainers) {
+        for (ContainerSchemaNode containerSchemaNode : SchemaNodeUtils.getAllContainers(module)) {
             if (containerSchemaNode.getQName().getLocalName().equals("cont-inner")) {
                 subPackageNameForDataNode = BindingGeneratorUtil.packageNameForGeneratedType(packageName,
                         containerSchemaNode.getPath());