diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2018-04-13 13:38:16 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2018-08-17 10:17:15 +0000 |
commit | fa641a3e06a905cb3222ebd15a2b4ab90b599efc (patch) | |
tree | 2043bcea16a4105a7b93aaf057e17e34adf1d607 /infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java | |
parent | 2be001c5014010698ed930236496bb939df89cde (diff) |
HONEYCOMB-431: delegate DataModification.validate to WriterRegistry
This patch introduces ModifiableDataTreeDelegator.validateCandidate
that translates DataTreeCandidate to DataObjectUpdates
and delegates validation to WriterRegistry (similarly as for bulk update).
ModifiableDataTreeManager.commit implementation
invokes validation before bulk update.
To make it efficient, DataObjectUpdates are computed once
and stored in DataTreeContext.
Change-Id: If4bd558e64ed84c11c9c50c7a98a2aaa8db841bb
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java')
-rw-r--r-- | infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java b/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java index e2924f84a..aae62e1fe 100644 --- a/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java +++ b/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java @@ -21,6 +21,7 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import io.fd.honeycomb.translate.TranslationException; import io.fd.honeycomb.translate.write.DataObjectUpdate; +import io.fd.honeycomb.translate.write.DataValidationFailedException; import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.Writer; import java.util.Set; @@ -34,6 +35,16 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; */ @Beta public interface WriterRegistry { + /** + * Validates provided DataObject updates. + * + * @param updates Updates to be validated + * @param ctx Write context that provides information about current state of DataTree. + * @throws DataValidationFailedException if validation failed. + */ + default void validateModifications(@Nonnull DataObjectUpdates updates, @Nonnull WriteContext ctx) throws + DataValidationFailedException { + } /** * Performs bulk update. |