*/
package org.opendaylight.yangtools.yang.data.impl.schema.tree;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.collect.ImmutableList;
+import java.util.Collection;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType;
-
-import java.util.Collections;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode;
/**
* Internal utility class for an empty candidate. We instantiate this class
}
@Override
- public Iterable<DataTreeCandidateNode> getChildNodes() {
- return Collections.emptyList();
+ public Collection<DataTreeCandidateNode> getChildNodes() {
+ return ImmutableList.of();
}
@Override
@Override
public Optional<NormalizedNode<?, ?>> getDataAfter() {
- return Optional.absent();
+ return Optional.empty();
}
@Override
public Optional<NormalizedNode<?, ?>> getDataBefore() {
- return Optional.absent();
+ return Optional.empty();
+ }
+
+ @Override
+ public Optional<DataTreeCandidateNode> getModifiedChild(final PathArgument identifier) {
+ return Optional.empty();
}
};
- protected NoopDataTreeCandidate(final YangInstanceIdentifier rootPath, final ModifiedNode modificationRoot) {
+ private final @NonNull TreeNode afterRoot;
+
+ protected NoopDataTreeCandidate(final YangInstanceIdentifier rootPath, final ModifiedNode modificationRoot,
+ final TreeNode afterRoot) {
super(rootPath);
- Preconditions.checkArgument(modificationRoot.getType() == ModificationType.UNMODIFIED);
+ checkArgument(modificationRoot.getOperation() == LogicalOperation.NONE);
+ this.afterRoot = requireNonNull(afterRoot);
}
@Override
public DataTreeCandidateNode getRootNode() {
return ROOT;
}
+
+ @Override
+ protected TreeNode getTipRoot() {
+ return afterRoot;
+ }
}