Do not use Module/Topological sort from yang-parser-impl 01/63201/1
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 17 Sep 2017 09:53:06 +0000 (11:53 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 17 Sep 2017 09:53:06 +0000 (11:53 +0200)
These utilities have been moved to yangtools.util and yang-model-util,
use them from there.

Change-Id: Id32189834a254dbe15cf1cf09282ffc8810c1d73
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/BindingGeneratorImpl.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/NodeWrappedType.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java

index d8fb01e041d66bb13ba5e8a011928539177f5454..853fad8536d6879e74ccec4fee7e3d40cea55b50 100644 (file)
@@ -105,10 +105,10 @@ 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.UnionTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.DataNodeIterator;
+import org.opendaylight.yangtools.yang.model.util.ModuleDependencySort;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
 import org.opendaylight.yangtools.yang.model.util.SchemaNodeUtils;
 import org.opendaylight.yangtools.yang.model.util.type.CompatUtils;
-import org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -250,9 +250,7 @@ public class BindingGeneratorImpl implements BindingGenerator {
 
         schemaContext = context;
         typeProvider = new TypeProviderImpl(context);
-        final Module[] modulesArray = new Module[context.getModules().size()];
-        context.getModules().toArray(modulesArray);
-        final List<Module> contextModules = ModuleDependencySort.sort(modulesArray);
+        final List<Module> contextModules = ModuleDependencySort.sort(context.getModules());
         genTypeBuilders = new HashMap<>();
 
         for (final Module contextModule : contextModules) {
index e3e90dfbc2c9d3deeae94c111542c28056cc9f00..f214d56220bf92827a7480149687773b7629d108 100644 (file)
@@ -15,6 +15,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import org.opendaylight.yangtools.util.TopologicalSort;
+import org.opendaylight.yangtools.util.TopologicalSort.Node;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
@@ -23,8 +25,6 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.util.TopologicalSort;
-import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.Node;
 
 public class GroupingDefinitionDependencySort {
 
@@ -33,13 +33,10 @@ public class GroupingDefinitionDependencySort {
      * dependencies.<br>
      *
      * Elements of <code>groupingDefinitions</code> are firstly transformed to
-     * {@link org.opendaylight.yangtools.yang.parser.util.TopologicalSort.Node
-     * Node} interfaces and then are sorted by
-     * {@link org.opendaylight.yangtools.yang.parser.util.TopologicalSort#sort(Set)
-     * sort()} method of <code>TopologicalSort</code>.<br>
+     * {@link TopologicalSort.Node Node} interfaces and then are sorted by
+     * {@link TopologicalSort#sort(Set) sort()} method of <code>TopologicalSort</code>.<br>
      * <br>
      *
-     *
      * <i>Definition of dependency relation:<br>
      * The first <code>GroupingDefinition</code> object (in this context)
      * depends on second <code>GroupingDefinition</code> object if the first one
index bcc93510d6675936246feaa0eb31f766a5972b19..e0f2f64471c289b4ffc51fb4affd302310256750 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.mdsal.binding.yang.types;
 
-import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.NodeImpl;
+import org.opendaylight.yangtools.util.TopologicalSort.NodeImpl;
 
 public final class NodeWrappedType extends NodeImpl {
     /**
index b7a2666498557a538601dd1ae6d0e1c36bcd3193..caff06f0efde6679cbf7cdb4c61bd9bed58b35e2 100644 (file)
@@ -11,6 +11,7 @@ import static org.opendaylight.mdsal.binding.model.util.BindingGeneratorUtil.enc
 import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNode;
 import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNodeForRelativeXPath;
 import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findParentModule;
+
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
@@ -80,6 +81,7 @@ import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
+import org.opendaylight.yangtools.yang.model.util.ModuleDependencySort;
 import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
 import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
@@ -683,13 +685,7 @@ public final class TypeProviderImpl implements TypeProvider {
     private void resolveTypeDefsFromContext() {
         final Set<Module> modules = schemaContext.getModules();
         Preconditions.checkArgument(modules != null, "Set of Modules cannot be NULL!");
-        final Module[] modulesArray = new Module[modules.size()];
-        int i = 0;
-        for (final Module modul : modules) {
-            modulesArray[i++] = modul;
-        }
-        final List<Module> modulesSortedByDependency = org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort
-                .sort(modulesArray);
+        final List<Module> modulesSortedByDependency = ModuleDependencySort.sort(modules);
 
         for (final Module module : modulesSortedByDependency) {
             Map<Date, Map<String, Type>> dateTypeMap = genTypeDefsContextMap.get(module.getName());