X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FAbstractForwardedTransaction.java;h=1184d395828dee8abd2fd23353257245897f6c79;hb=refs%2Fchanges%2F94%2F64194%2F1;hp=e5e1e300c17437e52962218f168da911b3f54526;hpb=b2e6c299fad844633c8b40a2e180780f5774a4ae;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedTransaction.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedTransaction.java index e5e1e300c1..1184d39582 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedTransaction.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedTransaction.java @@ -7,22 +7,23 @@ */ package org.opendaylight.controller.md.sal.binding.impl; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.Futures; import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadTransaction; +import org.opendaylight.mdsal.common.api.MappingCheckedFuture; import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.Identifiable; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - - -abstract class AbstractForwardedTransaction>> +abstract class AbstractForwardedTransaction>> implements Delegator, Identifiable { private final T delegate; @@ -45,7 +46,7 @@ abstract class AbstractForwardedTransaction>> S getDelegateChecked(final Class txType) { + protected final >> S getDelegateChecked(final Class txType) { Preconditions.checkState(txType.isInstance(delegate)); return (S) delegate; } @@ -54,8 +55,14 @@ abstract class AbstractForwardedTransaction> doRead(final DOMDataReadTransaction readTx, - final LogicalDatastoreType store, final org.opendaylight.yangtools.yang.binding.InstanceIdentifier path) { - return Futures.transform(readTx.read(store, codec.toNormalized(path)), codec.deserializeFunction(path)); + protected final CheckedFuture,ReadFailedException> doRead( + final DOMDataReadTransaction readTx, final LogicalDatastoreType store, + final InstanceIdentifier path) { + Preconditions.checkArgument(!path.isWildcarded(), "Invalid read of wildcarded path %s", path); + + return MappingCheckedFuture.create( + Futures.transform(readTx.read(store, codec.toYangInstanceIdentifierBlocking(path)), + codec.deserializeFunction(path)), + ReadFailedException.MAPPER); } }