diff options
author | Maros Marsalek <mmarsale@cisco.com> | 2016-03-21 17:46:04 +0100 |
---|---|---|
committer | Maros Marsalek <mmarsale@cisco.com> | 2016-03-31 12:47:53 +0000 |
commit | b00acbf091afd00d3fa0cd62de02997ea5f36425 (patch) | |
tree | 9dc056322965a9730a1120964e7afe701a4b405e /v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/trans/r/impl/CompositeListVppReader.java | |
parent | 691e4695f547b3f12d13f38b730a814414904fb3 (diff) |
Add base logging to composite readers
Change-Id: I6340787f39b9f88fff99190271f74e991b5a7888
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Diffstat (limited to 'v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/trans/r/impl/CompositeListVppReader.java')
-rw-r--r-- | v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/trans/r/impl/CompositeListVppReader.java | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/trans/r/impl/CompositeListVppReader.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/trans/r/impl/CompositeListVppReader.java index bc49a8fc7..74ca40696 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/trans/r/impl/CompositeListVppReader.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/trans/r/impl/CompositeListVppReader.java @@ -20,11 +20,10 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.collect.Lists; import io.fd.honeycomb.v3po.impl.trans.r.ChildVppReader; import io.fd.honeycomb.v3po.impl.trans.r.impl.spi.ListVppReaderCustomizer; import io.fd.honeycomb.v3po.impl.trans.r.util.VppRWUtils; +import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; import javax.annotation.concurrent.ThreadSafe; @@ -35,6 +34,8 @@ import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Composite implementation of {@link ChildVppReader} able to place the read result into @@ -48,6 +49,8 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class CompositeListVppReader<C extends DataObject & Identifiable<K>, K extends Identifier<C>, B extends Builder<C>> extends AbstractCompositeVppReader<C, B> implements ChildVppReader<C> { + private static final Logger LOG = LoggerFactory.getLogger(CompositeListVppReader.class); + private final ListVppReaderCustomizer<C, K, B> customizer; /** @@ -101,19 +104,22 @@ public final class CompositeListVppReader<C extends DataObject & Identifiable<K> } private List<C> readList(@Nonnull final InstanceIdentifier<C> id) { - return Lists.transform(customizer.getAllIds(id), new Function<K, C>() { - @Override - public C apply(final K key) { - final InstanceIdentifier.IdentifiableItem<C, K> currentBdItem = - VppRWUtils.getCurrentIdItem(id, key); - final InstanceIdentifier<C> keyedId = VppRWUtils.replaceLastInId(id, currentBdItem); - final List<? extends DataObject> read = read(keyedId); - checkState(read.size() == 1); - final DataObject singleItem = read.get(0); - checkArgument(getManagedDataObjectType().getTargetType().isAssignableFrom(singleItem.getClass())); - return getManagedDataObjectType().getTargetType().cast(singleItem); - } - }); + LOG.trace("{}: Reading all list entries", this); + final List<K> allIds = customizer.getAllIds(id); + LOG.debug("{}: Reading list entries for: {}", this, allIds); + + final ArrayList<C> allEntries = new ArrayList<>(allIds.size()); + for (K key : allIds) { + final InstanceIdentifier.IdentifiableItem<C, K> currentBdItem = + VppRWUtils.getCurrentIdItem(id, key); + final InstanceIdentifier<C> keyedId = VppRWUtils.replaceLastInId(id, currentBdItem); + final List<? extends DataObject> read = readCurrent(keyedId); + checkState(read.size() == 1); + final DataObject singleItem = read.get(0); + checkArgument(getManagedDataObjectType().getTargetType().isAssignableFrom(singleItem.getClass())); + allEntries.add(getManagedDataObjectType().getTargetType().cast(singleItem)); + } + return allEntries; } private boolean shouldReadAll(@Nonnull final InstanceIdentifier<? extends DataObject> id) { |