summaryrefslogtreecommitdiffstats
path: root/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java
diff options
context:
space:
mode:
authorMaros Marsalek <mmarsale@cisco.com>2016-11-08 10:13:36 +0100
committerMaros Marsalek <mmarsale@cisco.com>2016-11-08 13:17:57 +0100
commit757222979bc02d0aaba1870eea36413383d15bde (patch)
tree3fe2a502026fbfa9a4ae5627e1a453a057f6c1fa /infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java
parent03a638b95da83e150d4f69451c8733b5f09c37aa (diff)
HONEYCOMB-270 Add isPresent() to Readers/Customizers
So that they can influence whether empty data is to be considered as present + Move registries implementations from util to impl + Introduce DelegatingReader trait + Extend GenericReader where possible to reduce duplication Change-Id: I5a416acd0c4eab1fbc30fcbe585719991dbe9215 Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Diffstat (limited to 'infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java')
-rw-r--r--infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java b/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java
index e76b6e9a3..2bf439f82 100644
--- a/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java
+++ b/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/read/GenericReader.java
@@ -22,6 +22,7 @@ import io.fd.honeycomb.translate.read.ReadFailedException;
import io.fd.honeycomb.translate.read.Reader;
import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
import io.fd.honeycomb.translate.util.read.AbstractGenericReader;
+import io.fd.honeycomb.translate.util.read.ReflexiveReaderCustomizer;
import javax.annotation.Nonnull;
import javax.annotation.concurrent.ThreadSafe;
import org.opendaylight.yangtools.concepts.Builder;
@@ -73,4 +74,14 @@ public class GenericReader<C extends DataObject, B extends Builder<C>>
customizer.merge(parentBuilder, readValue);
}
+ @Override
+ public boolean isPresent(final InstanceIdentifier<C> id, final C built, final ReadContext ctx)
+ throws ReadFailedException {
+ return customizer.isPresent(id, built, ctx);
+ }
+
+ public static <C extends DataObject, B extends Builder<C>> Reader<C, B> createReflexive(
+ final InstanceIdentifier<C> id, Class<B> builderClass) {
+ return new GenericReader<>(id, new ReflexiveReaderCustomizer<>(id.getTargetType(), builderClass));
+ }
}