Remove SchemaPath from TypeDefinition implementations
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / EffectiveAugmentationSchema.java
index af7762a997f53deacc6f1fe34f647f3c7d998708..0813e676d7b468933b9a4dba6f3b85ad77e800d9 100644 (file)
@@ -11,9 +11,9 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
@@ -24,23 +24,24 @@ import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
-import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
 
 /**
  * Proxy for AugmentationSchema. Child node schemas are replaced with actual schemas from parent.
  */
+// FIXME: 7.0.0: re-evaluate the need for this class and potentially its effective statement replacement
 public final class EffectiveAugmentationSchema implements AugmentationSchemaNode {
     private final AugmentationSchemaNode delegate;
     private final ImmutableSet<DataSchemaNode> realChildSchemas;
     private final ImmutableMap<QName, DataSchemaNode> mappedChildSchemas;
 
     public EffectiveAugmentationSchema(final AugmentationSchemaNode augmentSchema,
-            final Set<DataSchemaNode> realChildSchemas) {
+            final Collection<? extends DataSchemaNode> realChildSchemas) {
         this.delegate = requireNonNull(augmentSchema);
         this.realChildSchemas = ImmutableSet.copyOf(realChildSchemas);
 
@@ -69,7 +70,7 @@ public final class EffectiveAugmentationSchema implements AugmentationSchemaNode
     }
 
     @Override
-    public Optional<RevisionAwareXPath> getWhenCondition() {
+    public Optional<? extends QualifiedBound> getWhenCondition() {
         return delegate.getWhenCondition();
     }
 
@@ -89,37 +90,32 @@ public final class EffectiveAugmentationSchema implements AugmentationSchemaNode
     }
 
     @Override
-    public SchemaPath getTargetPath() {
-        return delegate.getTargetPath();
-    }
-
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
+    public Collection<? extends UnknownSchemaNode> getUnknownSchemaNodes() {
         return delegate.getUnknownSchemaNodes();
     }
 
     @Override
-    public Set<TypeDefinition<?>> getTypeDefinitions() {
+    public Collection<? extends TypeDefinition<?>> getTypeDefinitions() {
         return delegate.getTypeDefinitions();
     }
 
     @Override
-    public Set<DataSchemaNode> getChildNodes() {
+    public Collection<? extends DataSchemaNode> getChildNodes() {
         return realChildSchemas;
     }
 
     @Override
-    public Set<GroupingDefinition> getGroupings() {
+    public Collection<? extends GroupingDefinition> getGroupings() {
         return delegate.getGroupings();
     }
 
     @Override
-    public Optional<DataSchemaNode> findDataChildByName(final QName name) {
-        return Optional.ofNullable(mappedChildSchemas.get(requireNonNull(name)));
+    public DataSchemaNode dataChildByName(final QName name) {
+        return mappedChildSchemas.get(requireNonNull(name));
     }
 
     @Override
-    public Set<UsesNode> getUses() {
+    public Collection<? extends UsesNode> getUses() {
         return delegate.getUses();
     }
 
@@ -129,7 +125,7 @@ public final class EffectiveAugmentationSchema implements AugmentationSchemaNode
     }
 
     @Override
-    public Set<ActionDefinition> getActions() {
+    public Collection<? extends ActionDefinition> getActions() {
         return delegate.getActions();
     }
 
@@ -139,7 +135,7 @@ public final class EffectiveAugmentationSchema implements AugmentationSchemaNode
     }
 
     @Override
-    public Set<NotificationDefinition> getNotifications() {
+    public Collection<? extends NotificationDefinition> getNotifications() {
         return delegate.getNotifications();
     }
 
@@ -147,4 +143,9 @@ public final class EffectiveAugmentationSchema implements AugmentationSchemaNode
     public Optional<NotificationDefinition> findNotification(final QName qname) {
         return delegate.findNotification(qname);
     }
+
+    @Override
+    public AugmentEffectiveStatement asEffectiveStatement() {
+        return delegate.asEffectiveStatement();
+    }
 }