Adjust to yangtools-2.0.0 changes
[mdsal.git] / binding / mdsal-binding-generator-impl / src / main / java / org / opendaylight / mdsal / binding / generator / impl / BindingSchemaContextUtils.java
index 68c2dd18d6c4a3dee5ca2d6be2568e6caf54d3e5..02c16f7c04435df7a31acbca8ca533ca310009d5 100644 (file)
@@ -22,9 +22,10 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
 import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
-import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
+import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -99,7 +100,7 @@ public final class BindingSchemaContextUtils {
 
         for (DataSchemaNode child : ctx.getChildNodes()) {
             if (child instanceof ChoiceSchemaNode) {
-                DataNodeContainer potential = findInCases(((ChoiceSchemaNode) child), targetQName);
+                DataNodeContainer potential = findInCases((ChoiceSchemaNode) child, targetQName);
                 if (potential != null) {
                     return Optional.of(potential);
                 }
@@ -116,7 +117,7 @@ public final class BindingSchemaContextUtils {
     }
 
     private static DataNodeContainer findInCases(final ChoiceSchemaNode choiceNode, final QName targetQName) {
-        for (ChoiceCaseNode caze : choiceNode.getCases()) {
+        for (CaseSchemaNode caze : choiceNode.getCases().values()) {
             Optional<DataNodeContainer> potential = findDataNodeContainer(caze, targetQName);
             if (potential.isPresent()) {
                 return potential.get();
@@ -137,7 +138,7 @@ public final class BindingSchemaContextUtils {
 
         for(RpcDefinition rpc : ctx.getOperations()) {
             String rpcNamespace = rpc.getQName().getNamespace().toString();
-            String rpcRevision = rpc.getQName().getFormattedRevision();
+            String rpcRevision = rpc.getQName().getRevision().map(Revision::toString).orElse(null);
             if(moduleInfo.getNamespace().equals(rpcNamespace) && moduleInfo.getRevision().equals(rpcRevision)) {
                 Optional<DataNodeContainer> potential = findInputOutput(rpc,targetType.getSimpleName());
                 if(potential.isPresent()) {
@@ -160,8 +161,9 @@ public final class BindingSchemaContextUtils {
        return Optional.absent();
     }
 
-    public static Set<AugmentationSchema> collectAllAugmentationDefinitions(final SchemaContext currentSchema, final AugmentationTarget ctxNode) {
-        HashSet<AugmentationSchema> augmentations = new HashSet<>();
+    public static Set<AugmentationSchemaNode> collectAllAugmentationDefinitions(final SchemaContext currentSchema,
+            final AugmentationTarget ctxNode) {
+        HashSet<AugmentationSchemaNode> augmentations = new HashSet<>();
         augmentations.addAll(ctxNode.getAvailableAugmentations());
         if(ctxNode instanceof DataSchemaNode && ((DataSchemaNode) ctxNode).isAddedByUses()) {
 
@@ -172,11 +174,13 @@ public final class BindingSchemaContextUtils {
         return augmentations;
     }
 
-    public static Optional<ChoiceSchemaNode> findInstantiatedChoice(final DataNodeContainer parent, final Class<?> choiceClass) {
+    public static Optional<ChoiceSchemaNode> findInstantiatedChoice(final DataNodeContainer parent,
+            final Class<?> choiceClass) {
         return findInstantiatedChoice(parent, BindingReflections.findQName(choiceClass));
     }
 
-    public static Optional<ChoiceSchemaNode> findInstantiatedChoice(final DataNodeContainer ctxNode, final QName choiceName) {
+    public static Optional<ChoiceSchemaNode> findInstantiatedChoice(final DataNodeContainer ctxNode,
+            final QName choiceName) {
         DataSchemaNode potential = ctxNode.getDataChildByName(choiceName);
         if (potential instanceof ChoiceSchemaNode) {
             return Optional.of((ChoiceSchemaNode) potential);
@@ -185,8 +189,9 @@ public final class BindingSchemaContextUtils {
         return Optional.absent();
     }
 
-    public static Optional<ChoiceCaseNode> findInstantiatedCase(final ChoiceSchemaNode instantiatedChoice, final ChoiceCaseNode originalDefinition) {
-        ChoiceCaseNode potential = instantiatedChoice.getCaseNodeByName(originalDefinition.getQName());
+    public static Optional<CaseSchemaNode> findInstantiatedCase(final ChoiceSchemaNode instantiatedChoice,
+            final CaseSchemaNode originalDefinition) {
+        CaseSchemaNode potential = instantiatedChoice.getCaseNodeByName(originalDefinition.getQName());
         if(originalDefinition.equals(potential)) {
             return Optional.of(potential);
         }
@@ -196,6 +201,7 @@ public final class BindingSchemaContextUtils {
                 return Optional.of(potential);
             }
         }
+
         // We try to find case by name, then lookup its root definition
         // and compare it with original definition
         // This solves case, if choice was inside grouping
@@ -205,9 +211,10 @@ public final class BindingSchemaContextUtils {
         // Still we need to check equality of definition, because local name is not
         // sufficient to uniquelly determine equality of cases
         //
-        potential = instantiatedChoice.getCaseNodeByName(originalDefinition.getQName().getLocalName());
-        if(potential != null && (originalDefinition.equals(SchemaNodeUtils.getRootOriginalIfPossible(potential)))) {
-            return Optional.of(potential);
+        for (CaseSchemaNode caze : instantiatedChoice.findCaseNodes(originalDefinition.getQName().getLocalName())) {
+            if (originalDefinition.equals(SchemaNodeUtils.getRootOriginalIfPossible(caze))) {
+                return Optional.of(caze);
+            }
         }
         return Optional.absent();
     }