Migrate getDataChildByName() users
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / DataSchemaContextNode.java
index 26555b759224f4cee7635aa0123189e73bb30fd9..8070db3c3170e30fa8c917e5408d2be5fb65fabc 100644 (file)
@@ -15,25 +15,25 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Identifiable;
+import org.opendaylight.yangtools.concepts.AbstractIdentifiable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.util.EffectiveAugmentationSchema;
 
 /**
  * Schema derived data providing necessary information for mapping between
@@ -42,12 +42,11 @@ import org.opendaylight.yangtools.yang.model.util.EffectiveAugmentationSchema;
  *
  * @param <T> Path Argument type
  */
-public abstract class DataSchemaContextNode<T extends PathArgument> implements Identifiable<T> {
+public abstract class DataSchemaContextNode<T extends PathArgument> extends AbstractIdentifiable<T> {
     private final DataSchemaNode dataSchemaNode;
-    private final T identifier;
 
     protected DataSchemaContextNode(final T identifier, final SchemaNode schema) {
-        this.identifier = identifier;
+        super(identifier);
         if (schema instanceof DataSchemaNode) {
             this.dataSchemaNode = (DataSchemaNode) schema;
         } else {
@@ -55,11 +54,6 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
         }
     }
 
-    @Override
-    public T getIdentifier() {
-        return identifier;
-    }
-
     public boolean isMixin() {
         return false;
     }
@@ -71,7 +65,7 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
     public abstract boolean isLeaf();
 
     protected Set<QName> getQNameIdentifiers() {
-        return ImmutableSet.of(identifier.getNodeType());
+        return ImmutableSet.of(getIdentifier().getNodeType());
     }
 
     /**
@@ -108,7 +102,7 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
     }
 
     static DataSchemaNode findChildSchemaNode(final DataNodeContainer parent, final QName child) {
-        final DataSchemaNode potential = parent.getDataChildByName(child);
+        final DataSchemaNode potential = parent.dataChildByName(child);
         return potential == null ? findChoice(Iterables.filter(parent.getChildNodes(), ChoiceSchemaNode.class), child)
                 : potential;
     }
@@ -126,7 +120,7 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
     private static ChoiceSchemaNode findChoice(final Iterable<ChoiceSchemaNode> choices, final QName child) {
         for (ChoiceSchemaNode choice : choices) {
             // FIXME: this looks weird: what are we looking for again?
-            for (CaseSchemaNode caze : choice.getCases().values()) {
+            for (CaseSchemaNode caze : choice.getCases()) {
                 if (findChildSchemaNode(caze, child) != null) {
                     return choice;
                 }
@@ -147,21 +141,6 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
             .collect(Collectors.toSet()));
     }
 
-    /**
-     * Returns an AugmentationSchemaNode as effective in a parent node.
-     *
-     * @param schema Augmentation schema
-     * @param parent Parent schema
-     * @return Adjusted Augmentation schema
-     * @throws NullPointerException if any of the arguments is null
-     * @deprecated Use {@link EffectiveAugmentationSchema#create(AugmentationSchemaNode, DataNodeContainer)} instead.
-     */
-    @Deprecated
-    public static AugmentationSchemaNode augmentationProxy(final AugmentationSchemaNode schema,
-            final DataNodeContainer parent) {
-        return EffectiveAugmentationSchema.create(schema, parent);
-    }
-
     /**
      * Returns a DataContextNodeOperation for provided child node
      *
@@ -182,8 +161,8 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
     }
 
     public static @Nullable DataSchemaContextNode<?> fromDataSchemaNode(final DataSchemaNode potential) {
-        if (potential instanceof ContainerSchemaNode) {
-            return new ContainerContextNode((ContainerSchemaNode) potential);
+        if (potential instanceof ContainerLike) {
+            return new ContainerContextNode((ContainerLike) potential);
         } else if (potential instanceof ListSchemaNode) {
             return fromListSchemaNode((ListSchemaNode) potential);
         } else if (potential instanceof LeafSchemaNode) {
@@ -192,8 +171,10 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
             return new ChoiceNodeContextNode((ChoiceSchemaNode) potential);
         } else if (potential instanceof LeafListSchemaNode) {
             return fromLeafListSchemaNode((LeafListSchemaNode) potential);
-        } else if (potential instanceof AnyXmlSchemaNode) {
-            return new AnyXmlContextNode((AnyXmlSchemaNode) potential);
+        } else if (potential instanceof AnydataSchemaNode) {
+            return new AnydataContextNode((AnydataSchemaNode) potential);
+        } else if (potential instanceof AnyxmlSchemaNode) {
+            return new AnyXmlContextNode((AnyxmlSchemaNode) potential);
         }
         return null;
     }
@@ -216,7 +197,7 @@ public abstract class DataSchemaContextNode<T extends PathArgument> implements I
         return new UnorderedLeafListMixinContextNode(potential);
     }
 
-    public static DataSchemaContextNode<?> from(final SchemaContext ctx) {
+    public static DataSchemaContextNode<?> from(final EffectiveModelContext ctx) {
         return new ContainerContextNode(ctx);
     }
 }