diff options
Diffstat (limited to 'v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data')
-rw-r--r-- | v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java | 17 | ||||
-rw-r--r-- | v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java | 3 |
2 files changed, 8 insertions, 12 deletions
diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java index c378365f3..3fddd108c 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java @@ -28,7 +28,6 @@ import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import io.fd.honeycomb.v3po.impl.trans.r.ReaderRegistry; import java.util.Collection; -import java.util.List; import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -90,21 +89,17 @@ public final class VppOperationalDataTree implements ReadableVppDataTree { LOG.debug("VppOperationalDataProxy.read(), yangInstanceIdentifier={}", yangInstanceIdentifier); final InstanceIdentifier<?> path = serializer.fromYangInstanceIdentifier(yangInstanceIdentifier); - if (path == null) { - // TODO try to translate wildcarded identifiers here as a workaround if it is expected to be used that way - // Currently its not possible to read list using wildcarded ID. SO we may not need this at all. - } checkNotNull(path, "Invalid instance identifier %s. Cannot create BA equivalent.", yangInstanceIdentifier); LOG.debug("VppOperationalDataProxy.read(), path={}", path); - final List<? extends DataObject> dataObjects = readerRegistry.read(path); + final Optional<? extends DataObject> dataObject = readerRegistry.read(path); - if (dataObjects.isEmpty()) { - return Futures.immediateCheckedFuture(Optional.<NormalizedNode<?, ?>>absent()); + if (dataObject.isPresent()) { + final NormalizedNode<?, ?> value = toNormalizedNodeFunction(path).apply(dataObject.get()); + return Futures.immediateCheckedFuture(Optional.<NormalizedNode<?, ?>>fromNullable(value)); } - final NormalizedNode<?, ?> value = wrapDataObjects(yangInstanceIdentifier, path, dataObjects); - return Futures.immediateCheckedFuture(Optional.<NormalizedNode<?, ?>>fromNullable(value)); + return Futures.immediateCheckedFuture(Optional.<NormalizedNode<?, ?>>absent()); } private DataSchemaNode getSchemaNode(final @Nonnull YangInstanceIdentifier yangInstanceIdentifier) { @@ -175,7 +170,7 @@ public final class VppOperationalDataTree implements ReadableVppDataTree { public NormalizedNode<?, ?> apply(@Nullable final DataObject dataObject) { LOG.trace("VppOperationalDataProxy.toNormalizedNode(), path={}, dataObject={}", path, dataObject); final Map.Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> entry = - serializer.toNormalizedNode(path, dataObject); + serializer.toNormalizedNode(path, dataObject); LOG.trace("VppOperationalDataProxy.toNormalizedNode(), normalizedNodeEntry={}", entry); return entry.getValue(); diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java index c5d4a8194..df7b6568c 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java @@ -16,6 +16,7 @@ package io.fd.honeycomb.v3po.impl.data; +import com.google.common.base.Optional; import com.google.common.collect.Multimap; import io.fd.honeycomb.v3po.impl.trans.r.ChildVppReader; import io.fd.honeycomb.v3po.impl.trans.r.ReaderRegistry; @@ -100,7 +101,7 @@ public class VppReaderRegistry implements ReaderRegistry { @Nonnull @Override - public List<? extends DataObject> read(@Nonnull final InstanceIdentifier<? extends DataObject> id) { + public Optional<? extends DataObject> read(@Nonnull final InstanceIdentifier<? extends DataObject> id) { return reader.read(id); } |