package org.rhq.cassandra.schema.migration;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.ResultSetFuture;
import com.datastax.driver.core.querybuilder.Batch;
import com.google.common.util.concurrent.AbstractFuture;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
/**
* @author John Sanda
*/
public class BatchInsertFuture extends AbstractFuture<BatchResult> {
public BatchInsertFuture(final Batch batch, final ResultSetFuture insertFuture) {
Futures.addCallback(insertFuture, new FutureCallback<ResultSet>() {
@Override
public void onSuccess(ResultSet resultSet) {
set(new BatchResult(null, true));
}
@Override
public void onFailure(Throwable t) {
if (isCancelled()) {
return;
}
try {
set(new BatchResult(batch, false));
} catch (Throwable t1) {
setException(t1);
}
}
});
}
}