import static org.opendaylight.mdsal.binding.model.util.BindingTypes.choiceIn;
import static org.opendaylight.mdsal.binding.model.util.BindingTypes.identifiable;
import static org.opendaylight.mdsal.binding.model.util.BindingTypes.identifier;
+import static org.opendaylight.mdsal.binding.model.util.BindingTypes.rpcResult;
import static org.opendaylight.mdsal.binding.model.util.Types.BOOLEAN;
import static org.opendaylight.mdsal.binding.model.util.Types.FUTURE;
import static org.opendaylight.mdsal.binding.model.util.Types.typeForClass;
import org.opendaylight.yangtools.yang.binding.BindingMapping;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
method.addParameter(
createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getInput())), "input");
method.setReturnType(Types.parameterizedTypeFor(FUTURE,
- Types.parameterizedTypeFor(Types.typeForClass(RpcResult.class),
- createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getOutput())))));
+ rpcResult(createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getOutput())))));
}
}
import org.opendaylight.yangtools.yang.binding.NotificationListener;
import org.opendaylight.yangtools.yang.binding.RpcService;
import org.opendaylight.yangtools.yang.binding.annotations.RoutingContext;
+import org.opendaylight.yangtools.yang.common.RpcResult;
public final class BindingTypes {
private static final ConcreteType CHILD_OF = typeForClass(ChildOf.class);
private static final ConcreteType CHOICE_IN = typeForClass(ChoiceIn.class);
+ private static final ConcreteType RPC_RESULT = typeForClass(RpcResult.class);
private BindingTypes() {
public static ParameterizedType identifiable(final Type type) {
return parameterizedTypeFor(IDENTIFIABLE, type);
}
+
+ /**
+ * Type specializing {@link RpcResult} for a particular type.
+ *
+ * @param type Type for which to specialize
+ * @return A parameterized type corresponding to {@code RpcResult<Type>}
+ * @throws NullPointerException if {@code type} is null
+ */
+ public static ParameterizedType rpcResult(final Type type) {
+ return parameterizedTypeFor(RPC_RESULT, type);
+ }
}