Fix license header violations in yang-parser-impl
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / RecursiveReplaceCandidateNode.java
1 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
2
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;
11
12 final class RecursiveReplaceCandidateNode extends AbstractDataTreeCandidateNode {
13     private final NormalizedNodeContainer<?, PathArgument, NormalizedNode<?, ?>> oldData;
14
15     public RecursiveReplaceCandidateNode(final NormalizedNodeContainer<?, PathArgument, NormalizedNode<?, ?>> oldData,
16             final NormalizedNodeContainer<?, PathArgument, NormalizedNode<?, ?>> newData) {
17         super(newData);
18         this.oldData = Preconditions.checkNotNull(oldData);
19     }
20
21     @Override
22     public ModificationType getModificationType() {
23         return ModificationType.WRITE;
24     }
25
26     @Override
27     public Optional<NormalizedNode<?, ?>> getDataAfter() {
28         return super.dataOptional();
29     }
30
31     @Override
32     public Optional<NormalizedNode<?, ?>> getDataBefore() {
33         return Optional.<NormalizedNode<?, ?>>of(oldData);
34     }
35
36     @Override
37     public DataTreeCandidateNode getModifiedChild(final PathArgument identifier) {
38         return deltaChild(oldData, getData(), identifier);
39     }
40
41     @Override
42     public Collection<DataTreeCandidateNode> getChildNodes() {
43         return deltaChildren(oldData, getData());
44     }
45 }