1 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
3 import com.google.common.base.Optional;
4 import com.google.common.base.Preconditions;
5 import java.util.Collection;
6 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
7 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
8 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
9 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
10 import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
12 final class RecursiveReplaceCandidateNode extends AbstractDataTreeCandidateNode {
13 private final NormalizedNodeContainer<?, PathArgument, NormalizedNode<?, ?>> oldData;
15 public RecursiveReplaceCandidateNode(final NormalizedNodeContainer<?, PathArgument, NormalizedNode<?, ?>> oldData,
16 final NormalizedNodeContainer<?, PathArgument, NormalizedNode<?, ?>> newData) {
18 this.oldData = Preconditions.checkNotNull(oldData);
22 public ModificationType getModificationType() {
23 return ModificationType.WRITE;
27 public Optional<NormalizedNode<?, ?>> getDataAfter() {
28 return super.dataOptional();
32 public Optional<NormalizedNode<?, ?>> getDataBefore() {
33 return Optional.<NormalizedNode<?, ?>>of(oldData);
37 public DataTreeCandidateNode getModifiedChild(final PathArgument identifier) {
38 return deltaChild(oldData, getData(), identifier);
42 public Collection<DataTreeCandidateNode> getChildNodes() {
43 return deltaChildren(oldData, getData());