Deprecate non-lazy leaf tracking
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / AbstractModifiedNodeBasedCandidateNode.java
index 6e13d2384e5e29eb178aa0b173a675ef40dbbb26..25e44a74fe66935791c2d792f24811abc2633511 100644 (file)
@@ -122,27 +122,22 @@ abstract class AbstractModifiedNodeBasedCandidateNode implements DataTreeCandida
     }
 
     @Override
-    public final DataTreeCandidateNode getModifiedChild(final PathArgument identifier) {
+    public final Optional<DataTreeCandidateNode> getModifiedChild(final PathArgument identifier) {
         switch (mod.getModificationType()) {
             case APPEARED:
             case DISAPPEARED:
             case SUBTREE_MODIFIED:
-                final Optional<ModifiedNode> childMod = mod.getChild(identifier);
-                if (childMod.isPresent()) {
-                    return childNode(childMod.get());
-                }
-                return null;
+                return mod.getChild(identifier).map(this::childNode);
             case UNMODIFIED:
                 if (!canHaveChildren(oldMeta, newMeta)) {
-                    return null;
+                    return Optional.empty();
                 }
-                final Optional<NormalizedNode<?, ?>> maybeChild = getContainer(newMeta != null ? newMeta : oldMeta)
-                        .getChild(identifier);
-                return maybeChild.isPresent() ? DataTreeCandidateNodes.unmodified(maybeChild.get()) : null;
+                return getContainer(newMeta != null ? newMeta : oldMeta).getChild(identifier)
+                        .map(DataTreeCandidateNodes::unmodified);
             case DELETE:
             case WRITE:
                 if (!canHaveChildren(oldMeta, newMeta)) {
-                    return null;
+                    return Optional.empty();
                 }
                 return DataTreeCandidateNodes.containerDelta(getContainer(oldMeta), getContainer(newMeta), identifier);
             default: