import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeSnapshot;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshotCursor;
import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
final class InMemoryDataTreeSnapshot extends AbstractCursorAware implements CursorAwareDataTreeSnapshot,
- SchemaContextProvider {
+ EffectiveModelContextProvider {
private final @NonNull RootApplyStrategy applyOper;
- private final @NonNull SchemaContext schemaContext;
+ private final @NonNull EffectiveModelContext schemaContext;
private final @NonNull TreeNode rootNode;
- InMemoryDataTreeSnapshot(final SchemaContext schemaContext, final TreeNode rootNode,
+ InMemoryDataTreeSnapshot(final EffectiveModelContext schemaContext, final TreeNode rootNode,
final RootApplyStrategy applyOper) {
this.schemaContext = requireNonNull(schemaContext);
this.rootNode = requireNonNull(rootNode);
}
@Override
- public SchemaContext getSchemaContext() {
+ public EffectiveModelContext getEffectiveModelContext() {
return schemaContext;
}
}
@Override
- public DataTreeSnapshotCursor createCursor(final YangInstanceIdentifier path) {
- final Optional<NormalizedNode<?, ?>> maybeRoot = NormalizedNodes.findNode(rootNode.getData(), path);
- if (!maybeRoot.isPresent()) {
- return null;
- }
-
- final NormalizedNode<?, ?> root = maybeRoot.get();
- checkArgument(root instanceof NormalizedNodeContainer, "Child %s is not a container", path);
- return openCursor(new InMemoryDataTreeSnapshotCursor(this, path, (NormalizedNodeContainer<?, ?, ?>)root));
+ public Optional<DataTreeSnapshotCursor> openCursor(final YangInstanceIdentifier path) {
+ return NormalizedNodes.findNode(rootNode.getData(), path).map(root -> {
+ checkArgument(root instanceof NormalizedNodeContainer, "Child %s is not a container", path);
+ return openCursor(new InMemoryDataTreeSnapshotCursor(this, path, (NormalizedNodeContainer<?, ?, ?>)root));
+ });
}
@Override