From: Robert Varga Date: Wed, 8 Apr 2020 13:16:45 +0000 (+0200) Subject: Remove WriteOperations.put()/merge() with ensure parents X-Git-Tag: v6.0.0~73 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=c024926fdd24d983b8a2efc9db7e302ea4772f8c;p=mdsal.git Remove WriteOperations.put()/merge() with ensure parents These methods have been deprecated in favor of their explicit counterparts, mergeParentStructurePut() and mergeParentStructureMerge(). While all users have not been migrated, force that migration to happen now. Change-Id: Ia5ae9f0f82c3b64e11e7a828ff614045029ed5ba Signed-off-by: Robert Varga --- diff --git a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/WriteOperations.java b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/WriteOperations.java index 956b9b4beb..12bca936a2 100644 --- a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/WriteOperations.java +++ b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/WriteOperations.java @@ -35,42 +35,6 @@ public interface WriteOperations { void put(@NonNull LogicalDatastoreType store, @NonNull InstanceIdentifier path, @NonNull T data); - /** - * Stores a piece of data at the specified path. This acts as an add / replace operation, which is to say that whole - * subtree will be replaced by the specified data. - * - *

- * If you need to make sure that a parent object exists but you do not want modify its pre-existing state by using - * put, consider using {@link #merge} instead. - * - * WARNING: Using this method may introduce garbage in data store, or recreate nodes, which were deleted by - * a previous transaction. It is not necessary in most scenarios and has a significantly higher cost - * than {@link #put(LogicalDatastoreType, InstanceIdentifier, DataObject)} and should only be used - * when absolutely necessary. - * - * @param store the logical data store which should be modified - * @param path the data object path - * @param data the data object to be written to the specified path - * @param createMissingParents if {@link #CREATE_MISSING_PARENTS}, any missing parent nodes will be automatically - * created using a merge operation. WARNING: using this option is not needed - * in most scenarios and has a significant performance cost and should be avoided - * whenever possible. - * @throws IllegalStateException if the transaction has already been submitted - * @throws NullPointerException if any of the arguments is null - * @deprecated Use {@link #put(LogicalDatastoreType, InstanceIdentifier, DataObject)} or - * {@link #mergeParentStructurePut(LogicalDatastoreType, InstanceIdentifier, DataObject)} - * instead. - */ - @Deprecated(forRemoval = true) - default void put(@NonNull LogicalDatastoreType store, @NonNull InstanceIdentifier path, - @NonNull T data, boolean createMissingParents) { - if (createMissingParents) { - mergeParentStructurePut(store, path, data); - } else { - put(store, path, data); - } - } - /** * Stores a piece of data at the specified path. This acts as an add / replace operation, which is to say that whole * subtree will be replaced by the specified data. Unlike @@ -114,36 +78,6 @@ public interface WriteOperations { void merge(@NonNull LogicalDatastoreType store, @NonNull InstanceIdentifier path, @NonNull T data); - /** - * Merges a piece of data with the existing data at a specified path. Any pre-existing data which is not explicitly - * overwritten will be preserved. This means that if you store a container, its child lists will be merged. - * - *

- * If you require an explicit replace operation, use {@link #put} instead. - * - * @param store the logical data store which should be modified - * @param path the data object path - * @param data the data object to be merged to the specified path - * @param createMissingParents if {@link #CREATE_MISSING_PARENTS}, any missing parent nodes will be automatically - * created using a merge operation. WARNING: using this option is not needed - * in most scenarios and has a significant performance cost and should be avoided - * whenever possible. - * @throws IllegalStateException if the transaction has already been submitted - * @throws NullPointerException if any of the arguments is null - * @deprecated Use {@link #merge(LogicalDatastoreType, InstanceIdentifier, DataObject)} or - * {@link #mergeParentStructureMerge(LogicalDatastoreType, InstanceIdentifier, DataObject)} - * instead. - */ - @Deprecated(forRemoval = true) - default void merge(@NonNull LogicalDatastoreType store, @NonNull InstanceIdentifier path, - @NonNull T data, boolean createMissingParents) { - if (createMissingParents) { - mergeParentStructureMerge(store, path, data); - } else { - merge(store, path, data); - } - } - /** * Merges a piece of data with the existing data at a specified path. Any pre-existing data which is not explicitly * overwritten will be preserved. This means that if you store a container, its child lists will be merged. Unlike @@ -178,27 +112,4 @@ public interface WriteOperations { * @throws IllegalStateException if the transaction was committed or canceled. */ void delete(@NonNull LogicalDatastoreType store, @NonNull InstanceIdentifier path); - - /** - * Flag value indicating that missing parents should be created. - * - *

- * WARNING: Using this flag may introduce garbage in data store, or recreate nodes, which were deleted by - * a previous transaction. It is not necessary in most scenarios and also has a significantly higher - * cost than {@link #FAIL_ON_MISSING_PARENTS} and should only be used when absolutely necessary. - * - * @deprecated To be removed with {@link #merge(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)} - * and {@link #put(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)}. - */ - @Deprecated(forRemoval = true) - boolean CREATE_MISSING_PARENTS = true; - - /** - * Flag value indicating that missing parents should cause an error. - * - * @deprecated To be removed with {@link #merge(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)} - * and {@link #put(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)}. - */ - @Deprecated(forRemoval = true) - boolean FAIL_ON_MISSING_PARENTS = false; } diff --git a/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingReadWriteTransaction.java b/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingReadWriteTransaction.java index 5950cd9514..d421a8cefc 100644 --- a/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingReadWriteTransaction.java +++ b/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingReadWriteTransaction.java @@ -39,13 +39,6 @@ public class ForwardingReadWriteTransaction extends ForwardingTransaction implem delegate.put(store, path, data); } - @Override - @Deprecated - public void put(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - delegate.put(store, path, data, createMissingParents); - } - @Override public void mergeParentStructurePut(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { @@ -74,13 +67,6 @@ public class ForwardingReadWriteTransaction extends ForwardingTransaction implem delegate.merge(store, path, data); } - @Override - @Deprecated - public void merge(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - delegate.merge(store, path, data, createMissingParents); - } - @Override public void mergeParentStructureMerge(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { diff --git a/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingWriteTransaction.java b/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingWriteTransaction.java index 814a24b11e..7fbc69c9ec 100644 --- a/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingWriteTransaction.java +++ b/binding/mdsal-binding-spi/src/main/java/org/opendaylight/mdsal/binding/spi/ForwardingWriteTransaction.java @@ -38,13 +38,6 @@ public class ForwardingWriteTransaction extends ForwardingTransaction implements delegate.put(store, path, data); } - @Override - @Deprecated - public void put(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - delegate.put(store, path, data, createMissingParents); - } - @Override public void mergeParentStructurePut(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { @@ -57,13 +50,6 @@ public class ForwardingWriteTransaction extends ForwardingTransaction implements delegate.merge(store, path, data); } - @Override - @Deprecated - public void merge(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - delegate.merge(store, path, data, createMissingParents); - } - @Override public void mergeParentStructureMerge(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { diff --git a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TransactionAdapter.java b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TransactionAdapter.java index c24f36342e..27b6c533b2 100644 --- a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TransactionAdapter.java +++ b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TransactionAdapter.java @@ -86,14 +86,6 @@ public final class TransactionAdapter { delegate.put(path, data); } - @Override - @Deprecated - public void put(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - checkStore(store); - delegate.put(path, data, createMissingParents); - } - @Override public void mergeParentStructurePut(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { @@ -108,14 +100,6 @@ public final class TransactionAdapter { delegate.merge(path, data); } - @Override - @Deprecated - public void merge(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - checkStore(store); - delegate.merge(path, data, createMissingParents); - } - @Override public void mergeParentStructureMerge(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { diff --git a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransaction.java b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransaction.java index 5bf4938bf8..7782e79712 100644 --- a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransaction.java +++ b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransaction.java @@ -33,29 +33,6 @@ public interface TypedWriteTransaction extends Transaction */ void put(InstanceIdentifier path, T data); - /** - * Writes an object to the given path, creating missing parents if requested. - * - * @see WriteOperations#put(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean) - * - * @param path The path to write to. - * @param data The object to write. - * @param createMissingParents {@link WriteOperations#CREATE_MISSING_PARENTS} to create missing parents, - * {@link WriteOperations#FAIL_ON_MISSING_PARENTS} to fail if parents are missing. - * @param The type of the provided object. - * @deprecated Use {@link #put(InstanceIdentifier, DataObject)} or - * {@link #mergeParentStructurePut(InstanceIdentifier, DataObject)} instead. - */ - @Deprecated - default void put(final InstanceIdentifier path, final T data, - final boolean createMissingParents) { - if (createMissingParents) { - mergeParentStructurePut(path, data); - } else { - put(path, data); - } - } - /** * Writes an object to the given path, creating significant parents, like presence containers and list entries, * if needed. @@ -81,34 +58,10 @@ public interface TypedWriteTransaction extends Transaction */ void merge(InstanceIdentifier path, T data); - /** - * Merges an object with the data already present at the given path, creating significant parents, like presence - * containers and list entries, if needed. - * - * @see WriteOperations#merge(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean) - * - * @param path The path to write to. - * @param data The object to merge. - * @param createMissingParents {@link WriteOperations#CREATE_MISSING_PARENTS} to create missing parents, - * {@link WriteOperations#FAIL_ON_MISSING_PARENTS} to fail if parents are missing. - * @param The type of the provided object. - * @deprecated Use {@link #merge(InstanceIdentifier, DataObject)} or - * {@link #mergeParentStructureMerge(InstanceIdentifier, DataObject)} instead. - */ - @Deprecated - default void merge(final InstanceIdentifier path, final T data, - final boolean createMissingParents) { - if (createMissingParents) { - mergeParentStructureMerge(path, data); - } else { - merge(path, data); - } - } - /** * Merges an object with the data already present at the given path, creating missing parents if requested. * - * @see WriteOperations#merge(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean) + * @see WriteOperations#merge(LogicalDatastoreType, InstanceIdentifier, DataObject) * * @param path The path to write to. * @param data The object to merge. diff --git a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransactionImpl.java b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransactionImpl.java index 409cb02800..77a95088fb 100644 --- a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransactionImpl.java +++ b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/TypedWriteTransactionImpl.java @@ -29,14 +29,6 @@ class TypedWriteTransactionImpl postOperation(); } - @Override - @Deprecated - public final void put(final InstanceIdentifier path, final T data, - final boolean createMissingParents) { - delegate().put(getDatastoreType(), path, data, createMissingParents); - postOperation(); - } - @Override public final void mergeParentStructurePut(final InstanceIdentifier path, final T data) { @@ -50,14 +42,6 @@ class TypedWriteTransactionImpl postOperation(); } - @Override - @Deprecated - public final void merge(final InstanceIdentifier path, final T data, - final boolean createMissingParents) { - delegate().merge(getDatastoreType(), path, data, createMissingParents); - postOperation(); - } - @Override public final void mergeParentStructureMerge(final InstanceIdentifier path, final T data) { diff --git a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingReadWriteTransaction.java b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingReadWriteTransaction.java index 26030a80ce..b5110be16a 100644 --- a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingReadWriteTransaction.java +++ b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingReadWriteTransaction.java @@ -33,14 +33,6 @@ final class WriteTrackingReadWriteTransaction extends ForwardingReadWriteTransac written = true; } - @Override - @Deprecated - public void put(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - super.put(store, path, data, createMissingParents); - written = true; - } - @Override public void mergeParentStructurePut(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { @@ -55,14 +47,6 @@ final class WriteTrackingReadWriteTransaction extends ForwardingReadWriteTransac written = true; } - @Override - @Deprecated - public void merge(final LogicalDatastoreType store, final InstanceIdentifier path, - final T data, final boolean createMissingParents) { - super.merge(store, path, data, createMissingParents); - written = true; - } - @Override public void mergeParentStructureMerge(final LogicalDatastoreType store, final InstanceIdentifier path, final T data) { diff --git a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingWriteTransaction.java b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingWriteTransaction.java index 9d21fdb2bd..c99a07a571 100644 --- a/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingWriteTransaction.java +++ b/binding/mdsal-binding-util/src/main/java/org/opendaylight/mdsal/binding/util/WriteTrackingWriteTransaction.java @@ -20,38 +20,26 @@ class WriteTrackingWriteTransaction extends ForwardingWriteTransaction implement // This is only ever read *after* changes to the transaction are complete private boolean written; - WriteTrackingWriteTransaction(WriteTransaction delegate) { + WriteTrackingWriteTransaction(final WriteTransaction delegate) { super(delegate); } @Override - public void put(LogicalDatastoreType store, InstanceIdentifier path, T data) { + public void put(final LogicalDatastoreType store, final InstanceIdentifier path, + final T data) { super.put(store, path, data); written = true; } @Override - public void put(LogicalDatastoreType store, InstanceIdentifier path, T data, - boolean createMissingParents) { - super.put(store, path, data, createMissingParents); - written = true; - } - - @Override - public void merge(LogicalDatastoreType store, InstanceIdentifier path, T data) { + public void merge(final LogicalDatastoreType store, final InstanceIdentifier path, + final T data) { super.merge(store, path, data); written = true; } @Override - public void merge(LogicalDatastoreType store, InstanceIdentifier path, T data, - boolean createMissingParents) { - super.merge(store, path, data, createMissingParents); - written = true; - } - - @Override - public void delete(LogicalDatastoreType store, InstanceIdentifier path) { + public void delete(final LogicalDatastoreType store, final InstanceIdentifier path) { super.delete(store, path); written = true; }