Add "documentation" flags for WriteTransaction 98/25398/6
authorStephen Kitt <skitt@redhat.com>
Tue, 18 Aug 2015 08:37:53 +0000 (10:37 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Fri, 18 Sep 2015 10:55:52 +0000 (10:55 +0000)
In WriteTransaction, the createMissingParents argument to put() and
merge() is a boolean, which results in code like

    ...put(store, path, data, true);

which isn't immediately readable to neophytes. This patch adds two
constants, CREATE_MISSING_PARENTS and FAIL_ON_MISSING_PARENTS, so that
client code can be written as

    ...put(store, path, data, CREATE_MISSING_PARENTS);

instead (but without introducing an enum).

The FAIL_ON_MISSING_PARENTS constant also documents the behaviour in
the other path; I named it based on the pre-condition check in
AbstractWriteTransaction (which results in an IllegalArgumentException
if a parent is missing).

Change-Id: Ic95b5e4f3d8574f0014cdf6a00a77013b94b00cc
Signed-off-by: Stephen Kitt <skitt@redhat.com>
opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/md/sal/binding/api/WriteTransaction.java

index a6ba2e2799b99f884c119dae6ef67e44bd85a562..d99150881ac6f60350379d7f5b78b30e2b184c30 100644 (file)
@@ -67,8 +67,9 @@ public interface WriteTransaction extends AsyncWriteTransaction<InstanceIdentifi
      * @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.
+     *            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
      */
@@ -115,8 +116,9 @@ public interface WriteTransaction extends AsyncWriteTransaction<InstanceIdentifi
      * @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.
+     *            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
      */
@@ -125,4 +127,14 @@ public interface WriteTransaction extends AsyncWriteTransaction<InstanceIdentifi
 
     @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;
 }