Remove JSR305 annotations from yang-data-util
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / ContainerSchemaNodes.java
index c8241d5e753f0954e5f6a82da450b6cd10692ec5..588c81a5f807e77ff9de8e911f61b30f5b9dc240 100644 (file)
@@ -7,33 +7,32 @@
  */
 package org.opendaylight.yangtools.yang.data.util;
 
+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 javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
-import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
+import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 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;
 
-
 /**
  * yang-data-util
  * org.opendaylight.yangtools.yang.data.util
@@ -83,46 +82,40 @@ public final class ContainerSchemaNodes {
             return false;
         }
 
-        @Override
-        public ConstraintDefinition getConstraints() {
-            return EmptyConstraintDefinition.create(false);
-        }
-
-        @Nonnull
         @Override
         public QName getQName() {
             return schemaNode.getQName();
         }
 
-        @Nonnull
         @Override
         public SchemaPath getPath() {
             return schemaNode.getPath();
         }
 
-        @Nullable
         @Override
-        public String getDescription() {
+        public Optional<String> getDescription() {
             return schemaNode.getDescription();
         }
 
-        @Nullable
         @Override
-        public String getReference() {
+        public Optional<String> getReference() {
             return schemaNode.getReference();
         }
 
-        @Nonnull
         @Override
         public Status getStatus() {
             return schemaNode.getStatus();
         }
 
-        @Nonnull
         @Override
-        public List<UnknownSchemaNode> getUnknownSchemaNodes() {
+        public Collection<MustDefinition> getMustConstraints() {
             return ImmutableList.of();
         }
+
+        @Override
+        public Optional<RevisionAwareXPath> getWhenCondition() {
+            return Optional.empty();
+        }
     }
 
     private static final class RpcContainerSchemaNode extends AbstractContainerSchemaNode {
@@ -145,7 +138,7 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public Set<AugmentationSchema> getAvailableAugmentations() {
+        public Set<AugmentationSchemaNode> getAvailableAugmentations() {
             return ImmutableSet.of();
         }
 
@@ -165,27 +158,38 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public DataSchemaNode getDataChildByName(QName name) {
+        public Optional<DataSchemaNode> findDataChildByName(final QName name) {
             switch (name.getLocalName()) {
                 case "input":
-                    return rpcDefinition.getInput();
+                    return Optional.of(rpcDefinition.getInput());
                 case "output":
-                    return rpcDefinition.getOutput();
+                    return Optional.of(rpcDefinition.getOutput());
                 default:
-                    return null;
+                    return Optional.empty();
             }
         }
 
+        @Deprecated
         @Override
         public boolean isAddedByUses() {
             return false;
         }
+
+        @Override
+        public Set<ActionDefinition> getActions() {
+            return ImmutableSet.of();
+        }
+
+        @Override
+        public Set<NotificationDefinition> getNotifications() {
+            return ImmutableSet.of();
+        }
     }
 
     private static final class NotificationContainerSchemaNode extends AbstractContainerSchemaNode {
 
         private final NotificationDefinition notification;
-        private final Map<QName, DataSchemaNode> mapNodes;
+        private final ImmutableMap<QName, DataSchemaNode> mapNodes;
 
         private NotificationContainerSchemaNode(final NotificationDefinition notification) {
             super(notification);
@@ -194,7 +198,12 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public Set<AugmentationSchema> getAvailableAugmentations() {
+        public Set<NotificationDefinition> getNotifications() {
+            return ImmutableSet.of(notification);
+        }
+
+        @Override
+        public Set<AugmentationSchemaNode> getAvailableAugmentations() {
             return notification.getAvailableAugmentations();
         }
 
@@ -214,14 +223,20 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public DataSchemaNode getDataChildByName(QName name) {
-            return mapNodes.get(name);
+        public Optional<DataSchemaNode> findDataChildByName(final QName name) {
+            return Optional.ofNullable(mapNodes.get(requireNonNull(name)));
         }
 
         @Override
+        @Deprecated
         public boolean isAddedByUses() {
             //FIXME: reference to https://bugs.opendaylight.org/show_bug.cgi?id=6897
             return false;
         }
+
+        @Override
+        public Set<ActionDefinition> getActions() {
+            return ImmutableSet.of();
+        }
     }
 }