X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fapi%2FWriteTransaction.java;h=3c4591a0a34e0cd619b3fd68ac75560ed774d172;hp=a6ba2e2799b99f884c119dae6ef67e44bd85a562;hb=refs%2Fchanges%2F28%2F83828%2F2;hpb=cf5be659d906cc80d52647cb516bbab435156742 diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/md/sal/binding/api/WriteTransaction.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/md/sal/binding/api/WriteTransaction.java index a6ba2e2799..3c4591a0a3 100644 --- a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/md/sal/binding/api/WriteTransaction.java +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/md/sal/binding/api/WriteTransaction.java @@ -14,115 +14,114 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** * A transaction that provides mutation capabilities on a data tree. + * *

* For more information on usage and examples, please see the documentation in {@link AsyncWriteTransaction}. + * + * @deprecated Use {@link org.opendaylight.mdsal.binding.api.WriteTransaction} instead. */ +@Deprecated public interface WriteTransaction extends AsyncWriteTransaction, DataObject> { - /** - * 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. - * *

+ * 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. + * + *

* This method does not automatically create missing parent nodes. It is equivalent to invoking - * {@link #put(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)} - * with createMissingParents set to false. + * {@link #put(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)} with {@code createMissingParents} set + * to false. + * *

* For more information on usage and examples, please see the documentation in {@link AsyncWriteTransaction}. + * *

- * 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. + * 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. * - * @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 - * @throws IllegalStateException - * if the transaction has already been submitted + * @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 + * @throws IllegalStateException if the transaction has already been submitted */ void put(LogicalDatastoreType store, InstanceIdentifier path, 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. + * 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. + * *

- * For more information on usage and examples, please see the documentation - * in {@link AsyncWriteTransaction}. + * For more information on usage and examples, please see the documentation in {@link AsyncWriteTransaction}. + * *

- * 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. + * 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. * - * Note: Using createMissingParents with value true, may - * introduce garbage in data store, or recreate nodes, which were deleted by - * previous transaction. + *

+ * Note: Using createMissingParents with value true, may introduce garbage in data store, or recreate + * nodes, which were deleted by previous transaction. * - * @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 true, any missing parent nodes will be automatically - * created using a merge operation. - * @throws IllegalStateException - * if the transaction has already been submitted + * @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} ({@code true}), any missing parent nodes will be + * automatically created using a merge operation. + * @throws IllegalStateException if the transaction has already been submitted */ void put(LogicalDatastoreType store, InstanceIdentifier path, T data, boolean createMissingParents); /** - * 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. + * 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. + * *

* This method does not automatically create missing parent nodes. It is equivalent to invoking - * {@link #merge(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)} - * with createMissingParents set to false. + * {@link #merge(LogicalDatastoreType, InstanceIdentifier, DataObject, boolean)} with {@code createMissingParents} + * set to false. + * *

* For more information on usage and examples, please see the documentation in {@link AsyncWriteTransaction}. - *

+ * + *

* 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 - * @throws IllegalStateException - * if the transaction has already been submitted + * + * @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 + * @throws IllegalStateException if the transaction has already been submitted */ void merge(LogicalDatastoreType store, InstanceIdentifier path, 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. + * 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. + * *

- * For more information on usage and examples, please see the documentation - * in {@link AsyncWriteTransaction}. + * For more information on usage and examples, please see the documentation in {@link AsyncWriteTransaction}. + * *

* 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 true, any missing parent nodes will be automatically created - * using a merge operation. - * @throws IllegalStateException - * if the transaction has already been submitted + * @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} ({@code true}), any missing parent nodes will be + * automatically created using a merge operation. + * @throws IllegalStateException if the transaction has already been submitted */ void merge(LogicalDatastoreType store, InstanceIdentifier path, T data, boolean createMissingParents); @Override void delete(LogicalDatastoreType store, InstanceIdentifier path); + + /** + * Flag value indicating that missing parents should be created. + */ + boolean CREATE_MISSING_PARENTS = true; + + /** + * Flag value indicating that missing parents should cause an error. + */ + boolean FAIL_ON_MISSING_PARENTS = false; }