Allow list elements to be interleaved
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / OperationAsContainer.java
index 1d2c3faa6379182d6b831fc81f74d2779c14c0c4..2bd59ce28f6b54c842d53294c730f6f98d6c41d4 100644 (file)
@@ -16,7 +16,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
-import java.util.Set;
+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;
@@ -34,18 +34,18 @@ import org.opendaylight.yangtools.yang.model.api.UsesNode;
 
 @Beta
 public class OperationAsContainer extends ForwardingObject implements ContainerSchemaNode, OperationDefinition {
-    private final OperationDefinition delegate;
+    private final @NonNull OperationDefinition delegate;
 
     OperationAsContainer(final OperationDefinition parentNode) {
         delegate = requireNonNull(parentNode);
     }
 
-    public static OperationAsContainer of(final OperationDefinition delegate) {
+    public static @NonNull OperationAsContainer of(final OperationDefinition delegate) {
         return new OperationAsContainer(delegate);
     }
 
     @Override
-    protected final OperationDefinition delegate() {
+    protected final @NonNull OperationDefinition delegate() {
         return delegate;
     }
 
@@ -60,12 +60,12 @@ public class OperationAsContainer extends ForwardingObject implements ContainerS
     }
 
     @Override
-    public final Set<TypeDefinition<?>> getTypeDefinitions() {
+    public final Collection<? extends TypeDefinition<?>> getTypeDefinitions() {
         return delegate.getTypeDefinitions();
     }
 
     @Override
-    public final Set<GroupingDefinition> getGroupings() {
+    public final Collection<? extends GroupingDefinition> getGroupings() {
         return delegate.getGroupings();
     }
 
@@ -90,13 +90,17 @@ public class OperationAsContainer extends ForwardingObject implements ContainerS
     }
 
     @Override
+    @Deprecated
     public final SchemaPath getPath() {
         return delegate.getPath();
     }
 
     @Override
     public final Optional<DataSchemaNode> findDataChildByName(final QName name) {
-        // FIXME: 3.0.0: check QNameModule
+        if (!name.getModule().equals(getQName().getModule())) {
+            return Optional.empty();
+        }
+
         switch (name.getLocalName()) {
             case "input":
                 return Optional.of(delegate.getInput());
@@ -108,12 +112,12 @@ public class OperationAsContainer extends ForwardingObject implements ContainerS
     }
 
     @Override
-    public Set<UsesNode> getUses() {
+    public Collection<? extends UsesNode> getUses() {
         return ImmutableSet.of();
     }
 
     @Override
-    public final Set<AugmentationSchemaNode> getAvailableAugmentations() {
+    public final Collection<? extends AugmentationSchemaNode> getAvailableAugmentations() {
         return ImmutableSet.of();
     }
 
@@ -123,7 +127,7 @@ public class OperationAsContainer extends ForwardingObject implements ContainerS
     }
 
     @Override
-    public final Collection<DataSchemaNode> getChildNodes() {
+    public final Collection<? extends DataSchemaNode> getChildNodes() {
         final List<DataSchemaNode> ret = new ArrayList<>();
         final ContainerSchemaNode input = getInput();
         final ContainerSchemaNode output = getOutput();
@@ -154,17 +158,29 @@ public class OperationAsContainer extends ForwardingObject implements ContainerS
     }
 
     @Override
-    public final Set<ActionDefinition> getActions() {
+    public final Collection<? extends ActionDefinition> getActions() {
         return ImmutableSet.of();
     }
 
     @Override
-    public final Set<NotificationDefinition> getNotifications() {
+    public Optional<ActionDefinition> findAction(final QName qname) {
+        requireNonNull(qname);
+        return Optional.empty();
+    }
+
+    @Override
+    public final Collection<? extends NotificationDefinition> getNotifications() {
         return ImmutableSet.of();
     }
 
     @Override
-    public final Collection<MustDefinition> getMustConstraints() {
+    public Optional<NotificationDefinition> findNotification(final QName qname) {
+        requireNonNull(qname);
+        return Optional.empty();
+    }
+
+    @Override
+    public final Collection<? extends MustDefinition> getMustConstraints() {
         return ImmutableSet.of();
     }