From fa641a3e06a905cb3222ebd15a2b4ab90b599efc Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Fri, 13 Apr 2018 13:38:16 +0200 Subject: 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 --- .../fd/honeycomb/translate/write/registry/WriterRegistry.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java') 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. -- cgit 1.2.3-korg