Make Validator.validateXXX methods optional 27/14427/1
authorMarek Gradzki <mgradzki@cisco.com>
Thu, 23 Aug 2018 06:24:00 +0000 (08:24 +0200)
committerMarek Gradzki <mgradzki@cisco.com>
Thu, 23 Aug 2018 06:36:14 +0000 (08:36 +0200)
Some of the writers do not support update,
also write/delete might not require validation.

Therefore, in order to reduce amount of boilerplate code,
make validateXXX methods default with empty implementation.

Change-Id: Id205b478900024c59834a6e6cb18bdbeb9b43792
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/Validator.java

index 2044757..470daa2 100644 (file)
@@ -41,10 +41,11 @@ public interface Validator<D extends DataObject> {
      * @param writeContext Write context that provides information about current state of DataTree.
      * @throws CreateValidationFailedException if write validation failed
      */
-    void validateWrite(
-        @Nonnull final InstanceIdentifier<D> id,
-        @Nonnull final D dataAfter,
-        @Nonnull final WriteContext writeContext) throws CreateValidationFailedException;
+    default void validateWrite(@Nonnull final InstanceIdentifier<D> id,
+                               @Nonnull final D dataAfter,
+                               @Nonnull final WriteContext writeContext) throws CreateValidationFailedException {
+        // Validation on write is optional
+    }
 
     /**
      * Validates update operation.
@@ -55,8 +56,12 @@ public interface Validator<D extends DataObject> {
      * @param writeContext Write context that provides information about current state of DataTree.
      * @throws UpdateValidationFailedException if update validation failed
      */
-    void validateUpdate(InstanceIdentifier<D> id, D dataBefore, D dataAfter, WriteContext writeContext)
-        throws UpdateValidationFailedException;
+    default void validateUpdate(@Nonnull InstanceIdentifier<D> id,
+                                @Nonnull D dataBefore,
+                                @Nonnull D dataAfter,
+                                @Nonnull WriteContext writeContext) throws UpdateValidationFailedException {
+        // Validation on update is optional
+    }
 
     /**
      * Validates delete operation.
@@ -66,6 +71,9 @@ public interface Validator<D extends DataObject> {
      * @param writeContext Write context that provides information about current state of DataTree.
      * @throws DeleteValidationFailedException if delete validation failed
      */
-    void validateDelete(InstanceIdentifier<D> id, D dataBefore, WriteContext writeContext)
-        throws DeleteValidationFailedException;
+    default void validateDelete(@Nonnull InstanceIdentifier<D> id,
+                                @Nonnull D dataBefore,
+                                @Nonnull WriteContext writeContext) throws DeleteValidationFailedException {
+        // Validation on delete is optional
+    }
 }