import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+import java.util.Collection;
import java.util.Collections;
+import javax.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 org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode;
/**
* Internal utility class for an empty candidate. We instantiate this class
final class NoopDataTreeCandidate extends AbstractDataTreeCandidate {
private static final DataTreeCandidateNode ROOT = new DataTreeCandidateNode() {
@Override
+ @Nonnull
public ModificationType getModificationType() {
return ModificationType.UNMODIFIED;
}
@Override
- public Iterable<DataTreeCandidateNode> getChildNodes() {
+ public Collection<DataTreeCandidateNode> getChildNodes() {
return Collections.emptyList();
}
@Override
+ @Nonnull
public PathArgument getIdentifier() {
throw new IllegalStateException("Attempted to read identifier of the no-operation change");
}
@Override
+ @Nonnull
public Optional<NormalizedNode<?, ?>> getDataAfter() {
return Optional.absent();
}
@Override
+ @Nonnull
public Optional<NormalizedNode<?, ?>> getDataBefore() {
return Optional.absent();
}
return null;
}
};
+ private final TreeNode afterRoot;
- protected NoopDataTreeCandidate(final YangInstanceIdentifier rootPath, final ModifiedNode modificationRoot) {
+ protected NoopDataTreeCandidate(final YangInstanceIdentifier rootPath, final ModifiedNode modificationRoot, final TreeNode afterRoot) {
super(rootPath);
- Preconditions.checkArgument(modificationRoot.getType() == ModificationType.UNMODIFIED);
+ Preconditions.checkArgument(modificationRoot.getOperation() == LogicalOperation.NONE);
+ this.afterRoot = Preconditions.checkNotNull(afterRoot);
}
@Override
public DataTreeCandidateNode getRootNode() {
return ROOT;
}
+
+ @Override
+ @Nonnull
+ protected TreeNode getTipRoot() {
+ return afterRoot;
+ }
}