static Object run(final Module module) { module.run(); final List<Object> outputs = new ArrayList<>(); for (final ModuleItem<?> output : module.getInfo().outputs()) { final Object value = output.getValue(module); outputs.add(value); } return outputs.size() == 1 ? outputs.get(0) : outputs; } }
public <C extends Command> Module executeCommand(final Class<C> cmdClass, final Map<String, Object> inputs) { final Module module = moduleService.createModule(cmdService.getCommand(cmdClass)); try { module.initialize(); } catch (final MethodCallException ex) { ex.printStackTrace(); } if (inputs != null) { inputs.forEach((k, v) -> { module.setInput(k, v); module.resolveInput(k); }); } cmdService.run(cmdClass, true, inputs); module.run(); final Future<Module> run = moduleService.run(module, true, inputs); try { run.get(); } catch (final InterruptedException ex) { ex.printStackTrace(); } catch (final ExecutionException ex) { ex.printStackTrace(); } return module; }
/** Tests {@link OpService#module(Class, Object...)}. */ @Test public void testModuleByType() { final DoubleType value = new DoubleType(123.456); final Module module = ops.module(InfinityOp.class, value); assertSame(value, module.getInput("arg")); assertFalse(Double.isInfinite(value.get())); module.run(); assertTrue(Double.isInfinite(value.get())); }
/** Tests {@link OpService#module(Class, Object...)}. */ @Test public void testModuleByName() { final DoubleType value = new DoubleType(123.456); final Module module = ops.module("test.infinity", value); assertSame(value, module.getInput("arg")); assertFalse(Double.isInfinite(value.get())); module.run(); assertTrue(Double.isInfinite(value.get())); }
/** Tests {@link OpService#module(Op, Object...)}. */ @Test public void testModuleByOp() { final DoubleType value = new DoubleType(123.456); final Module module = ops.module(new InfinityOp(), value); assertSame(InfinityOp.class, module.getDelegateObject().getClass()); assertSame(value, module.getInput("arg")); assertFalse(Double.isInfinite(value.get())); module.run(); assertTrue(Double.isInfinite(value.get())); }
/** Tests {@link OpMatchingService#findMatch}. */ @Test public void testFindMatch() { final DoubleType value = new DoubleType(123.456); final Module moduleByName = matcher.findMatch(ops, OpRef.create("test.nan", value)).getModule(); assertSame(value, moduleByName.getInput("arg")); assertFalse(Double.isNaN(value.get())); moduleByName.run(); assertTrue(Double.isNaN(value.get())); value.set(987.654); final Module moduleByType = matcher.findMatch(ops, OpRef.create(NaNOp.class, value)).getModule(); assertSame(value, moduleByType.getInput("arg")); assertFalse(Double.isNaN(value.get())); moduleByType.run(); assertTrue(Double.isNaN(value.get())); }
module.run(); if (isCanceled()) {
module.run(); if (isCanceled()) {