HONEYCOMB-431: add validation support to Writers 22/14022/4
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:58 +0000 (10:17 +0000)
commitd1b102f6fafced3c7badb09ecc78fec590704c8a
treefb9c7041b25cdd36b46cf25e789c850db38f2349
parentfa641a3e06a905cb3222ebd15a2b4ab90b599efc
HONEYCOMB-431: add validation support to Writers

This patch introduces FlatWriterRegistry.validateModifications.
Implementation iterates over writersOrder following bulkUpdate logic
to properly support subtree writers case.

Writers are now cabable of validating modifications.
Commonly used implementations (GenericWriter and GenericListWriter)
delegate validation capbility to Validators.

Change-Id: If7a0bb0838c0b8f2c0393c989f3b03853a2ea679
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
12 files changed:
infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/DataValidationFailedException.java
infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/Validator.java [new file with mode: 0644]
infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/Writer.java
infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericListWriter.java
infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericWriter.java
infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/registry/FlatWriterRegistry.java
infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/registry/SubtreeWriter.java
infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/GenericListWriterTest.java
infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/GenericWriterTest.java
infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/registry/FlatWriterRegistryTest.java
infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/write/WriterCustomizer.java
infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriter.java