Fix implementation nullness guarantees
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / ContainerSchemaNodes.java
index 52ac098b0d6cfa8b3e9d33cd058c1b0b6d1d5c42..8010b84fbb395a1b1b16c00a40a0d99012e54099 100644 (file)
@@ -16,21 +16,24 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
 import java.util.Collection;
 import java.util.Optional;
+import org.eclipse.jdt.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.ContainerSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
+import org.opendaylight.yangtools.yang.model.api.InputSchemaNode;
 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.OutputSchemaNode;
 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.UsesNode;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
 
 /**
  * yang-data-util
@@ -44,28 +47,22 @@ public final class ContainerSchemaNodes {
     }
 
     @Beta
-    public static ContainerSchemaNode forNotification(final NotificationDefinition notification) {
+    public static ContainerLike forNotification(final NotificationDefinition notification) {
         return new NotificationContainerSchemaNode(notification);
     }
 
     @Beta
-    public static ContainerSchemaNode forRPC(final RpcDefinition rpc) {
+    public static ContainerLike forRPC(final RpcDefinition rpc) {
         return new RpcContainerSchemaNode(rpc);
     }
 
-    private abstract static class AbstractContainerSchemaNode implements ContainerSchemaNode {
-
+    private abstract static class AbstractContainerSchemaNode implements ContainerLike {
         private final SchemaNode schemaNode;
 
         private AbstractContainerSchemaNode(final SchemaNode schemaNode) {
             this.schemaNode = schemaNode;
         }
 
-        @Override
-        public boolean isPresenceContainer() {
-            return false;
-        }
-
         @Override
         public Collection<? extends UsesNode> getUses() {
             return ImmutableSet.of();
@@ -77,8 +74,8 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public boolean isConfiguration() {
-            return false;
+        public Optional<Boolean> effectiveConfig() {
+            return Optional.empty();
         }
 
         @Override
@@ -108,12 +105,12 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public Collection<? extends MustDefinition> getMustConstraints() {
+        public Collection<? extends @NonNull MustDefinition> getMustConstraints() {
             return ImmutableList.of();
         }
 
         @Override
-        public Optional<RevisionAwareXPath> getWhenCondition() {
+        public Optional<? extends QualifiedBound> getWhenCondition() {
             return Optional.empty();
         }
     }
@@ -144,8 +141,8 @@ public final class ContainerSchemaNodes {
 
         @Override
         public Collection<? extends DataSchemaNode> getChildNodes() {
-            final ContainerSchemaNode input = rpcDefinition.getInput();
-            final ContainerSchemaNode output = rpcDefinition.getOutput();
+            final InputSchemaNode input = rpcDefinition.getInput();
+            final OutputSchemaNode output = rpcDefinition.getOutput();
             if (input == null && output == null) {
                 return ImmutableList.of();
             } else if (input != null && output != null) {