From 96bf08efdbb7901f6eaad6d06db26baaf868ab85 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 17 Sep 2017 11:53:06 +0200 Subject: [PATCH] Do not use Module/Topological sort from yang-parser-impl These utilities have been moved to yangtools.util and yang-model-util, use them from there. Change-Id: Id32189834a254dbe15cf1cf09282ffc8810c1d73 Signed-off-by: Robert Varga --- .../binding/generator/impl/BindingGeneratorImpl.java | 6 ++---- .../yang/types/GroupingDefinitionDependencySort.java | 11 ++++------- .../mdsal/binding/yang/types/NodeWrappedType.java | 2 +- .../mdsal/binding/yang/types/TypeProviderImpl.java | 10 +++------- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/BindingGeneratorImpl.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/BindingGeneratorImpl.java index d8fb01e041..853fad8536 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/BindingGeneratorImpl.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/BindingGeneratorImpl.java @@ -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 contextModules = ModuleDependencySort.sort(modulesArray); + final List contextModules = ModuleDependencySort.sort(context.getModules()); genTypeBuilders = new HashMap<>(); for (final Module contextModule : contextModules) { diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java index e3e90dfbc2..f214d56220 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/GroupingDefinitionDependencySort.java @@ -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.
* * Elements of groupingDefinitions 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 TopologicalSort.
+ * {@link TopologicalSort.Node Node} interfaces and then are sorted by + * {@link TopologicalSort#sort(Set) sort()} method of TopologicalSort.
*
* - * * Definition of dependency relation:
* The first GroupingDefinition object (in this context) * depends on second GroupingDefinition object if the first one diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/NodeWrappedType.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/NodeWrappedType.java index bcc93510d6..e0f2f64471 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/NodeWrappedType.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/NodeWrappedType.java @@ -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 { /** diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java index b7a2666498..caff06f0ef 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java @@ -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 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 modulesSortedByDependency = org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort - .sort(modulesArray); + final List modulesSortedByDependency = ModuleDependencySort.sort(modules); for (final Module module : modulesSortedByDependency) { Map> dateTypeMap = genTypeDefsContextMap.get(module.getName()); -- 2.36.6