Introduce DataNodeContainer.findDataChildByName()
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / ContainerSchemaNodes.java
index 40107f6265c62c8df8d0425d7cd5ab688e0ff10e..9222f3dbc59f13fadfbff4db49218cea3125a237 100644 (file)
@@ -7,6 +7,8 @@
  */
 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.ImmutableSet;
@@ -14,6 +16,7 @@ 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;
@@ -33,7 +36,6 @@ 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
@@ -165,14 +167,14 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public DataSchemaNode getDataChildByName(final 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();
             }
         }
 
@@ -224,8 +226,8 @@ public final class ContainerSchemaNodes {
         }
 
         @Override
-        public DataSchemaNode getDataChildByName(final QName name) {
-            return mapNodes.get(name);
+        public Optional<DataSchemaNode> findDataChildByName(final QName name) {
+            return Optional.ofNullable(mapNodes.get(requireNonNull(name)));
         }
 
         @Override