Example usage for com.google.common.util.concurrent Futures addCallback

List of usage examples for com.google.common.util.concurrent Futures addCallback

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Futures addCallback.

Prototype

public static <V> void addCallback(ListenableFuture<V> future, FutureCallback<? super V> callback) 

Source Link

Document

Registers separate success and failure callbacks to be run when the Future 's computation is java.util.concurrent.Future#isDone() complete or, if the computation is already complete, immediately.

Usage

From source file:org.opendaylight.ocpplugin.impl.services.SalConfigMgmtServiceImpl.java

@Override
public Future<RpcResult<GetParamOutput>> getParam(final GetParamInput input) {
    ListenableFuture<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetParamOutput>> future = getParam
            .handleServiceCall(input);//from ww w .  j  a  v a 2 s  .co m
    final SettableFuture<RpcResult<GetParamOutput>> finalFuture = SettableFuture.create();
    Futures.addCallback(future,
            new FutureCallback<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetParamOutput>>() {
                @Override
                public void onSuccess(
                        final RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetParamOutput> result) {
                    org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetParamOutput output = result
                            .getResult();
                    GetParamOutputBuilder builder = new GetParamOutputBuilder();
                    builder.setObj(output.getObj());
                    builder.setResult(output.getResult());
                    RpcResultBuilder<GetParamOutput> rpcResultBuilder = RpcResultBuilder.success(builder);
                    finalFuture.set(rpcResultBuilder.build());
                }

                @Override
                public void onFailure(final Throwable t) {
                    RpcResultBuilder<GetParamOutput> rpcResultBuilder = RpcResultBuilder.failed();
                    finalFuture.set(rpcResultBuilder.build());
                }
            });

    return finalFuture;
}

From source file:org.hawkular.metrics.api.jaxrs.handler.CounterHandler.java

@POST
@Path("/")
@ApiOperation(value = "List of counter definitions", hidden = true)
public void updateCountersForGroups(@Suspended final AsyncResponse asyncResponse,
        Collection<Counter> counters) {
    ListenableFuture<Void> future = metricsService.updateCounters(counters);
    Futures.addCallback(future, new NoDataCallback<>(asyncResponse));
}

From source file:com.android.camera.one.v2.sharedimagereader.metadatasynchronizer.MetadataPoolImpl.java

@Nonnull
@Override/*from  ww w.j a  v a2 s .  c  om*/
public ListenableFuture<TotalCaptureResultProxy> removeMetadataFuture(final long timestamp) {
    ListenableFuture<TotalCaptureResultProxy> future = getOrCreateFuture(timestamp);
    // Remove the future from the map when it is done to free the memory.
    Futures.addCallback(future, new FutureCallback<TotalCaptureResultProxy>() {
        @Override
        public void onSuccess(TotalCaptureResultProxy totalCaptureResultProxy) {
            synchronized (mLock) {
                mMetadataFutures.remove(timestamp);
            }
        }

        @Override
        public void onFailure(Throwable throwable) {
            throw new UnsupportedOperationException();
        }
    });
    return Futures2.nonCancellationPropagating(future);
}

From source file:com.microsoftopentechnologies.auth.samples.swingapp.AADAuthSample.java

public AADAuthSample() {
    setContentPane(panelControls);/*ww w.ja v a2s .  c  om*/
    promptValue.setModel(new DefaultComboBoxModel(
            new String[] { PromptValue.login, PromptValue.refreshSession, PromptValue.attemptNone }));

    authority.setText("login.windows.net");
    tenantName.setText("common");
    resource.setText("https://management.core.windows.net/");

    signIn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                result.setText("(loading...)");

                AuthenticationContext context = new AuthenticationContext(authority.getText());
                ListenableFuture<AuthenticationResult> future = context.acquireTokenInteractiveAsync(
                        tenantName.getText(), resource.getText(), clientID.getText(), redirectURI.getText(),
                        (String) promptValue.getSelectedItem());

                Futures.addCallback(future, new FutureCallback<AuthenticationResult>() {
                    @Override
                    public void onSuccess(AuthenticationResult authenticationResult) {
                        String resultText = "Authentication cancelled.";

                        if (authenticationResult != null) {
                            Gson gson = new GsonBuilder().setPrettyPrinting().create();
                            resultText = gson.toJson(authenticationResult);
                        }

                        result.setText(resultText);
                    }

                    @Override
                    public void onFailure(Throwable t) {
                        showError(t);
                        result.setText("ERROR: " + t.toString());
                    }
                });
            } catch (IOException e1) {
                showError(e1);
            }
        }
    });
}

From source file:dao.ClientCassandra.java

public static void saveNewConnection(Connection_Cassandra msg) {
    PreparedStatement ps = session.prepare(insertConnection);
    BatchStatement batch = new BatchStatement();

    batch.add(ps.bind(msg.getConnection_id(), msg.getConnection_timestamp().getTime(), msg.getDb_id(),
            msg.getDb_user_name()));//  w  ww . j  a v a2 s. c  o m

    Futures.addCallback(session.executeAsync(batch), callback());

}

From source file:org.opendaylight.ocpplugin.impl.services.SalObjectLifecycleServiceImpl.java

@Override
public Future<RpcResult<CreateObjOutput>> createObj(final CreateObjInput input) {
    ListenableFuture<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.CreateObjOutput>> future = createObj
            .handleServiceCall(input);//from w  ww  .j  a  va  2 s.  c  om
    final SettableFuture<RpcResult<CreateObjOutput>> finalFuture = SettableFuture.create();
    Futures.addCallback(future,
            new FutureCallback<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.CreateObjOutput>>() {
                @Override
                public void onSuccess(
                        final RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.CreateObjOutput> result) {
                    org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.CreateObjOutput output = result
                            .getResult();
                    CreateObjOutputBuilder builder = new CreateObjOutputBuilder();
                    builder.setObjId(output.getObjId());
                    builder.setParam(output.getParam());
                    builder.setGlobResult(output.getGlobResult());
                    RpcResultBuilder<CreateObjOutput> rpcResultBuilder = RpcResultBuilder.success(builder);
                    finalFuture.set(rpcResultBuilder.build());
                }

                @Override
                public void onFailure(final Throwable t) {
                    RpcResultBuilder<CreateObjOutput> rpcResultBuilder = RpcResultBuilder.failed();
                    finalFuture.set(rpcResultBuilder.build());
                }
            });

    return finalFuture;
}

From source file:io.crate.executor.transport.executionphases.InterceptingRowReceiver.java

InterceptingRowReceiver(UUID jobId, RowReceiver rowReceiver, InitializationTracker jobsInitialized,
        TransportKillJobsNodeAction transportKillJobsNodeAction) {
    this.jobId = jobId;
    this.rowReceiver = rowReceiver;
    this.transportKillJobsNodeAction = transportKillJobsNodeAction;
    Futures.addCallback(jobsInitialized.future, this);
}

From source file:org.opendaylight.ocpplugin.impl.services.SalObjectStateMgmtServiceImpl.java

@Override
public Future<RpcResult<GetStateOutput>> getState(final GetStateInput input) {
    ListenableFuture<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetStateOutput>> future = getState
            .handleServiceCall(input);/* w w w  . j  a v a 2 s.co m*/
    final SettableFuture<RpcResult<GetStateOutput>> finalFuture = SettableFuture.create();
    Futures.addCallback(future,
            new FutureCallback<RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetStateOutput>>() {
                @Override
                public void onSuccess(
                        final RpcResult<org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetStateOutput> result) {
                    org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.protocol.rev150811.GetStateOutput output = result
                            .getResult();
                    GetStateOutputBuilder builder = new GetStateOutputBuilder();
                    builder.setObj(output.getObj());
                    builder.setResult(output.getResult());
                    RpcResultBuilder<GetStateOutput> rpcResultBuilder = RpcResultBuilder.success(builder);
                    finalFuture.set(rpcResultBuilder.build());
                }

                @Override
                public void onFailure(final Throwable t) {
                    RpcResultBuilder<GetStateOutput> rpcResultBuilder = RpcResultBuilder.failed();
                    finalFuture.set(rpcResultBuilder.build());
                }
            });

    return finalFuture;
}

From source file:com.microsoft.office365.SharepointClient.java

protected ListenableFuture<String> getFormDigest() {

    HttpConnection connection = Platform.createHttpConnection();
    Request request = new Request("POST");
    request.setUrl(getSiteUrl() + "_api/contextinfo");
    prepareRequest(request);//from  w  ww.  ja v a 2 s  .  c om

    log("Generate request for getFormDigest", LogLevel.Verbose);
    request.log(getLogger());

    final SettableFuture<String> result = SettableFuture.create();
    ListenableFuture<Response> future = connection.execute(request);

    Futures.addCallback(future, new FutureCallback<Response>() {
        @Override
        public void onFailure(Throwable t) {
            result.setException(t);
        }

        @Override
        public void onSuccess(Response response) {
            try {
                int statusCode = response.getStatus();
                if (isValidStatus(statusCode)) {
                    String responseContent = response.readToEnd();

                    JSONObject json = new JSONObject(responseContent);

                    result.set(json.getJSONObject("d").getJSONObject("GetContextWebInformation")
                            .getString("FormDigestValue"));
                } else {
                    result.setException(
                            new Exception("Invalid status code " + statusCode + ": " + response.readToEnd()));
                }
            } catch (Exception e) {
                log(e);
            }
        }
    });

    return result;
}

From source file:io.crate.executor.task.LocalCollectTask.java

@Override
public void start() {
    Futures.addCallback(collectOperation.collect(collectNode, ramAccountingContext),
            new FutureCallback<Object[][]>() {
                @Override//from w w w  . jav a2 s.co  m
                public void onSuccess(@Nullable Object[][] rows) {
                    result.set(new QueryResult(rows));
                }

                @Override
                public void onFailure(@Nonnull Throwable t) {
                    result.setException(t);
                }
            });
}