import org.opendaylight.controller.md.sal.dom.api.DOMRpcIdentifier;
import org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementation;
import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDataAware;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.RpcService;
}
private DataObject deserialize(final SchemaPath rpcPath, final NormalizedNode<?, ?> input) {
- if (input instanceof LazySerializedContainerNode) {
- return ((LazySerializedContainerNode) input).bindingData();
+ if (input instanceof BindingDataAware) {
+ return ((BindingDataAware) input).bindingData();
}
final SchemaPath inputSchemaPath = rpcPath.createChild(inputQname);
return codec.fromNormalizedNodeRpcData(inputSchemaPath, (ContainerNode) input);
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.controller.md.sal.binding.impl;
import com.google.common.base.Preconditions;
import org.opendaylight.controller.md.sal.dom.api.DOMRpcException;
import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult;
import org.opendaylight.controller.md.sal.dom.spi.DefaultDOMRpcResult;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingRpcFutureAware;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.opendaylight.yangtools.yang.binding.DataContainer;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-final class LazyDOMRpcResultFuture implements CheckedFuture<DOMRpcResult, DOMRpcException> {
+final class LazyDOMRpcResultFuture implements CheckedFuture<DOMRpcResult, DOMRpcException>, BindingRpcFutureAware {
private final ListenableFuture<RpcResult<?>> bindingFuture;
private final BindingNormalizedNodeSerializer codec;
return new LazyDOMRpcResultFuture(bindingResult, codec);
}
- ListenableFuture<RpcResult<?>> getBindingFuture() {
+ @Override
+ public ListenableFuture<RpcResult<?>> getBindingFuture() {
return bindingFuture;
}
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDataAware;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
// FIXME: Should be this moved to binding-data-codec?
-class LazySerializedContainerNode implements ContainerNode {
+class LazySerializedContainerNode implements ContainerNode, BindingDataAware {
private final NodeIdentifier identifier;
private final DataObject bindingData;
return delegate().getAttributeValue(name);
}
- final DataObject bindingData() {
+ @Override
+ public final DataObject bindingData() {
return bindingData;
}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.controller.md.sal.binding.impl;
import com.google.common.base.Preconditions;
import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult;
import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
import org.opendaylight.controller.md.sal.dom.broker.spi.rpc.RpcRoutingStrategy;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingRpcFutureAware;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.opendaylight.yangtools.yang.binding.DataContainer;
import org.opendaylight.yangtools.yang.binding.DataObject;
ListenableFuture<RpcResult<?>> invoke0(final SchemaPath schemaPath, final NormalizedNode<?, ?> input) {
final CheckedFuture<DOMRpcResult, DOMRpcException> result = delegate.invokeRpc(schemaPath, input);
- if (result instanceof LazyDOMRpcResultFuture) {
- return ((LazyDOMRpcResultFuture) result).getBindingFuture();
+ if (result instanceof BindingRpcFutureAware) {
+ return ((BindingRpcFutureAware) result).getBindingFuture();
}
return transformFuture(schemaPath, result, codec.getCodecFactory());