HONEYCOMB-431: delegate DataModification.validate to WriterRegistry 18/14018/3
authorMarek Gradzki <mgradzki@cisco.com>
Fri, 13 Apr 2018 11:38:16 +0000 (13:38 +0200)
committerMarek Gradzki <mgradzki@cisco.com>
Fri, 17 Aug 2018 10:17:15 +0000 (10:17 +0000)
commitfa641a3e06a905cb3222ebd15a2b4ab90b599efc
tree2043bcea16a4105a7b93aaf057e17e34adf1d607
parent2be001c5014010698ed930236496bb939df89cde
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>
infra/data-api/src/main/java/io/fd/honeycomb/data/DataModification.java
infra/data-impl/src/main/java/io/fd/honeycomb/data/impl/ModifiableDataTreeDelegator.java
infra/data-impl/src/main/java/io/fd/honeycomb/data/impl/ModifiableDataTreeManager.java
infra/data-impl/src/main/java/io/fd/honeycomb/data/impl/WriteTransaction.java
infra/data-impl/src/test/java/io/fd/honeycomb/data/impl/ModifiableDataTreeDelegatorTest.java
infra/data-impl/src/test/java/io/fd/honeycomb/data/impl/WriteTransactionTest.java
infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/DataValidationFailedException.java [new file with mode: 0644]
infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java