From: Robert Varga Date: Thu, 22 Nov 2018 21:34:12 +0000 (+0100) Subject: Make InMemoryDataTreeSnapshot implement SchemaContextProvider X-Git-Tag: v2.1.4~9 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=ccdb5a655b07693eedbe96d4d5215ff52cbfd671;p=yangtools.git Make InMemoryDataTreeSnapshot implement SchemaContextProvider Note DataTreeSnapshot's duplication of getSchemaContext(), which is indicative of a coupling to yang.model.api. This is fine for now, as this coupling already exists through xpath interfaces, but it needs to be revisited and cleaned by either removing the method, or making it a non-default (and inherited from SchemaContextProvider). Change-Id: If335f178e9e086b8b5185044a06d4296f81b2a74 Signed-off-by: Robert Varga --- diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeSnapshot.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeSnapshot.java index e31750f453..ef94071d97 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeSnapshot.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeSnapshot.java @@ -39,7 +39,8 @@ public interface DataTreeSnapshot { * * @return Current schema context. */ - // FIXME: 3.0.0: Make this method non-default. + // 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()); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeModification.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeModification.java index a2caa98e54..54a3b5a587 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeModification.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeModification.java @@ -23,10 +23,12 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNodes; import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -final class InMemoryDataTreeModification extends AbstractCursorAware implements CursorAwareDataTreeModification { +final class InMemoryDataTreeModification extends AbstractCursorAware implements CursorAwareDataTreeModification, + SchemaContextProvider { private static final AtomicIntegerFieldUpdater SEALED_UPDATER = AtomicIntegerFieldUpdater.newUpdater(InMemoryDataTreeModification.class, "sealed"); private static final Logger LOG = LoggerFactory.getLogger(InMemoryDataTreeModification.class); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeSnapshot.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeSnapshot.java index 8491eed4f1..ac68e4eda8 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeSnapshot.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeSnapshot.java @@ -21,8 +21,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeS 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; -final class InMemoryDataTreeSnapshot extends AbstractCursorAware implements CursorAwareDataTreeSnapshot { +final class InMemoryDataTreeSnapshot extends AbstractCursorAware implements CursorAwareDataTreeSnapshot, + SchemaContextProvider { private final @NonNull RootModificationApplyOperation applyOper; private final @NonNull SchemaContext schemaContext; private final @NonNull TreeNode rootNode;