use of org.jowidgets.invocation.common.api.IInvocationCallbackService in project jo-client-platform by jo-source.
the class MethodImpl method invoke.
@Override
public void invoke(final Object invocationId, final Object parameter) {
final IInvocationCallbackService invocationCallbackService = invocationServer.getInvocationCallbackService();
cancelService.registerInvocation(invocationId);
final IInvocationCallback<Object> invocationCallback = new IInvocationCallback<Object>() {
@Override
public void addCancelListener(final ICancelListener cancelListener) {
cancelService.registerCancelListener(invocationId, cancelListener);
}
@Override
public void finished(final Object result) {
invocationCallbackService.finished(invocationId, result);
cancelService.unregisterInvocation(invocationId);
}
@Override
public void exeption(final Throwable exception) {
invocationCallbackService.exeption(invocationId, exception);
cancelService.unregisterInvocation(invocationId);
}
};
final IInterimResponseCallback<Object> interimResponseCallback = new IInterimResponseCallback<Object>() {
@Override
public void response(final Object progress) {
invocationCallbackService.interimResponse(invocationId, progress);
}
};
final IInterimRequestCallback<Object, Object> interimRequestCallback = new IInterimRequestCallback<Object, Object>() {
@Override
public void request(final IInterimResponseCallback<Object> callback, final Object question) {
final Object requestId = responseService.register(callback);
invocationCallbackService.interimRequest(invocationId, requestId, question);
}
};
try {
methodInvocationService.invoke(invocationCallback, interimResponseCallback, interimRequestCallback, parameter);
} catch (final Exception e) {
invocationCallback.exeption(e);
}
}
Aggregations