Refactor yang-model-api child traversal return types
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / ContainerSchemaNodes.java
index 9833ab2092e5359633d00868bd658e4f9b6edbd1..79c02681673845742ce09d1aa25d328811b97cc0 100644 (file)
@@ -11,29 +11,25 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
 import java.util.Collection;
-import java.util.List;
-import java.util.Map;
 import java.util.Optional;
-import java.util.Set;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 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;
 
 /**
@@ -71,7 +67,7 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public Set<UsesNode> getUses() {
+        public Collection<? extends UsesNode> getUses() {
             return ImmutableSet.of();
         }
 
@@ -85,18 +81,11 @@ public final class ContainerSchemaNodes {
             return false;
         }
 
-        @Override
-        public ConstraintDefinition getConstraints() {
-            return EmptyConstraintDefinition.getInstance();
-        }
-
-        @Nonnull
         @Override
         public QName getQName() {
             return schemaNode.getQName();
         }
 
-        @Nonnull
         @Override
         public SchemaPath getPath() {
             return schemaNode.getPath();
@@ -112,21 +101,19 @@ public final class ContainerSchemaNodes {
             return schemaNode.getReference();
         }
 
-        @Nonnull
         @Override
         public Status getStatus() {
             return schemaNode.getStatus();
         }
 
-        @Nonnull
         @Override
-        public List<UnknownSchemaNode> getUnknownSchemaNodes() {
+        public Collection<? extends MustDefinition> getMustConstraints() {
             return ImmutableList.of();
         }
 
         @Override
-        public Collection<MustDefinition> getMustConstraints() {
-            return ImmutableList.of();
+        public Optional<RevisionAwareXPath> getWhenCondition() {
+            return Optional.empty();
         }
     }
 
@@ -140,22 +127,22 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public Set<GroupingDefinition> getGroupings() {
+        public Collection<? extends GroupingDefinition> getGroupings() {
             return rpcDefinition.getGroupings();
         }
 
         @Override
-        public Set<TypeDefinition<?>> getTypeDefinitions() {
+        public Collection<? extends TypeDefinition<?>> getTypeDefinitions() {
             return rpcDefinition.getTypeDefinitions();
         }
 
         @Override
-        public Set<AugmentationSchemaNode> getAvailableAugmentations() {
+        public Collection<? extends AugmentationSchemaNode> getAvailableAugmentations() {
             return ImmutableSet.of();
         }
 
         @Override
-        public Collection<DataSchemaNode> getChildNodes() {
+        public Collection<? extends DataSchemaNode> getChildNodes() {
             final ContainerSchemaNode input = rpcDefinition.getInput();
             final ContainerSchemaNode output = rpcDefinition.getOutput();
             if (input == null && output == null) {
@@ -181,18 +168,19 @@ public final class ContainerSchemaNodes {
             }
         }
 
+        @Deprecated
         @Override
         public boolean isAddedByUses() {
             return false;
         }
 
         @Override
-        public Set<ActionDefinition> getActions() {
+        public Collection<? extends ActionDefinition> getActions() {
             return ImmutableSet.of();
         }
 
         @Override
-        public Set<NotificationDefinition> getNotifications() {
+        public Collection<? extends NotificationDefinition> getNotifications() {
             return ImmutableSet.of();
         }
     }
@@ -200,7 +188,7 @@ public final class ContainerSchemaNodes {
     private static final class NotificationContainerSchemaNode extends AbstractContainerSchemaNode {
 
         private final NotificationDefinition notification;
-        private final Map<QName, DataSchemaNode> mapNodes;
+        private final ImmutableMap<QName, ? extends DataSchemaNode> mapNodes;
 
         private NotificationContainerSchemaNode(final NotificationDefinition notification) {
             super(notification);
@@ -209,27 +197,27 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public Set<NotificationDefinition> getNotifications() {
+        public Collection<? extends NotificationDefinition> getNotifications() {
             return ImmutableSet.of(notification);
         }
 
         @Override
-        public Set<AugmentationSchemaNode> getAvailableAugmentations() {
+        public Collection<? extends AugmentationSchemaNode> getAvailableAugmentations() {
             return notification.getAvailableAugmentations();
         }
 
         @Override
-        public Set<TypeDefinition<?>> getTypeDefinitions() {
+        public Collection<? extends TypeDefinition<?>> getTypeDefinitions() {
             return notification.getTypeDefinitions();
         }
 
         @Override
-        public Collection<DataSchemaNode> getChildNodes() {
+        public Collection<? extends DataSchemaNode> getChildNodes() {
             return notification.getChildNodes();
         }
 
         @Override
-        public Set<GroupingDefinition> getGroupings() {
+        public Collection<? extends GroupingDefinition> getGroupings() {
             return notification.getGroupings();
         }
 
@@ -239,13 +227,14 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
+        @Deprecated
         public boolean isAddedByUses() {
             //FIXME: reference to https://bugs.opendaylight.org/show_bug.cgi?id=6897
             return false;
         }
 
         @Override
-        public Set<ActionDefinition> getActions() {
+        public Collection<? extends ActionDefinition> getActions() {
             return ImmutableSet.of();
         }
     }