Rework NormalizedNode type hierarchy
[yangtools.git] / yang / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / schema / tree / DataTreeSnapshot.java
index ef94071d97c6291b54d82e847b3edf13663a59b0..a471d777b570619ad24675bf69b79c5020406cc9 100644 (file)
@@ -11,20 +11,20 @@ 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.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
 
 /**
  * Read-only snapshot of a {@link DataTree}. The snapshot is stable and isolated, e.g. data tree changes occurring after
  * the snapshot has been taken are not visible through the snapshot.
  */
-public interface DataTreeSnapshot {
+public interface DataTreeSnapshot extends EffectiveModelContextProvider {
     /**
      * Read a particular node from the snapshot.
      *
      * @param path Path of the node
      * @return Optional result encapsulating the presence and value of the node
      */
-    Optional<NormalizedNode<?, ?>> readNode(YangInstanceIdentifier path);
+    Optional<NormalizedNode> readNode(YangInstanceIdentifier path);
 
     /**
      * Create a new data tree modification based on this snapshot, using the
@@ -32,16 +32,5 @@ public interface DataTreeSnapshot {
      *
      * @return A new data tree modification
      */
-    DataTreeModification newModification();
-
-    /**
-     * Return the current {@link SchemaContext}, which is being used for operations.
-     *
-     * @return Current schema context.
-     */
-    // FIXME: 3.0.0: This method provides a strong tie to yang.model.api. It either needs to be removed or inherited
-    //               by extending SchemaContextProvider. This strictly is an implementation detail.
-    default @NonNull SchemaContext getSchemaContext() {
-        throw new UnsupportedOperationException("Not implemented by  " + getClass());
-    }
+    @NonNull DataTreeModification newModification();
 }