package com.ibm.streamsx.topology.internal.context.remote;
import java.util.concurrent.Future;
import com.google.gson.JsonObject;
import com.ibm.streamsx.topology.context.remote.RemoteContext;
public abstract class RemoteContextImpl<T> implements RemoteContext<T> {
@Override
public Future<T> submit(JsonObject submission) throws Exception {
preSubmit(submission);
return postSubmit(submission, _submit(submission));
}
public Future<T> _submit(JsonObject submission) throws Exception {
throw new UnsupportedOperationException();
}
/**
* Pre-submit hook when submitting a Topology.
*/
void preSubmit(JsonObject submission){
}
/**
* Post-submit hook when submitting a Topology.
*/
Future<T> postSubmit(JsonObject submission, Future<T> future) throws Exception{
RemoteContexts.writeResultsToFile(submission);
return future;
}
}