public static StatementExecutorInterface decorate(StatementExecutorInterface inner, Integer timeout, ExecutorService service) { return new StatementTimeoutExecutor(inner, timeout, service); }
public static StatementExecutorInterface decorate(StatementExecutorInterface inner, Integer timeout) { return decorate(inner, timeout, newSingleThreadExecutor()); }
@Override public Object call(final String instanceName, final String methodName, final Object... arguments) throws SlimException { Future<Object> submit = service.submit(new Callable<Object>() { @Override public Object call() throws Exception { return inner.call(instanceName, methodName, arguments); } }); return getWithTimeout(submit); }
@Override public Object callAndAssign(final String symbolName, final String instanceName, final String methodsName, final Object... arguments) throws SlimException { Future<Object> submit = service.submit(new Callable<Object>() { @Override public Object call() throws Exception { return inner.callAndAssign(symbolName, instanceName, methodsName, arguments); } }); return getWithTimeout(submit); }
public static StatementExecutorInterface decorate(StatementExecutorInterface inner, Integer timeout) { return decorate(inner, timeout, newSingleThreadExecutor()); }
public static StatementExecutorInterface decorate(StatementExecutorInterface inner, Integer timeout, ExecutorService service) { return new StatementTimeoutExecutor(inner, timeout, service); }
@Override public Object callAndAssign(final String symbolName, final String instanceName, final String methodsName, final Object... arguments) throws SlimException { Future<Object> submit = service.submit(new Callable<Object>() { @Override public Object call() throws Exception { return inner.callAndAssign(symbolName, instanceName, methodsName, arguments); } }); return getWithTimeout(submit); }
@Override public StatementExecutorInterface getStatementExecutor() { StatementExecutorInterface statementExecutor = new StatementExecutor(new SlimExecutionContext(interaction)); if (timeout != null) { statementExecutor = StatementTimeoutExecutor.decorate(statementExecutor, timeout); } return statementExecutor; }
@Override public void create(final String instanceName, final String className, final Object... constructorArgs) throws SlimException { Future<?> submit = service.submit(new Callable<Boolean>() { @Override public Boolean call() throws Exception { inner.create(instanceName, className, constructorArgs); return true; } }); getWithTimeout(submit); }
@Override public StatementExecutorInterface getStatementExecutor() { StatementExecutorInterface statementExecutor = new StatementExecutor(new SlimExecutionContext(interaction)); if (timeout != null) { statementExecutor = StatementTimeoutExecutor.decorate(statementExecutor, timeout); } return statementExecutor; }
@Override public Object call(final String instanceName, final String methodName, final Object... arguments) throws SlimException { Future<Object> submit = service.submit(new Callable<Object>() { @Override public Object call() throws Exception { return inner.call(instanceName, methodName, arguments); } }); return getWithTimeout(submit); }
@Override public void create(final String instanceName, final String className, final Object... constructorArgs) throws SlimException { Future<?> submit = service.submit(new Callable<Boolean>() { @Override public Boolean call() throws Exception { inner.create(instanceName, className, constructorArgs); return true; } }); getWithTimeout(submit); }