Java源码示例:org.scijava.script.ScriptModule

示例1
@Test
public void testReadmesExample() throws Exception {
	// extract the example script
	final File readme = new File("README.md");
	final String contents = new String(FileUtils.readFile(readme), "UTF-8");
	final String telltale = String.format("```python%n");
	final int begin = contents.indexOf(telltale) + telltale.length();
	assertTrue(begin > telltale.length());
	assertTrue(contents.indexOf(telltale, begin) < 0);
	final int end = contents.indexOf(String.format("```%n"), begin);
	assertTrue(end > 0);
	final String snippet = contents.substring(begin, end);
	assertTrue(snippet.startsWith("# @ImageJ ij"));

	final Context context = new Context();
	final ScriptService script = context.getService(ScriptService.class);

	// create mock ImageJ gateway
	script.addAlias("ImageJ", Mock.class);
	final ScriptModule module =
		script.run("op-example.py", snippet, true).get();
	assertNotNull(module);
	module.run();

	final Mock ij = context.getService(Mock.class);
	assertEquals(3, ij.images.size());
	assertEquals(11.906, ij.getPixel("sinusoid", 50, 50), 1e-3);
	assertEquals(100, ij.getPixel("gradient", 50, 50), 1e-3);
	assertEquals(111.906, ij.getPixel("composite", 50, 50), 1e-3);
}
 
示例2
/**
 * Runs a script from a jar file.
 *
 * @param in
 *            the {@link InputStream} loading the script to be executed
 * @param filename
 *            the script filename (or at least its extension)
 * @param inputMap
 *            see {@link ScriptService#run(String, Reader, boolean, Map)}
 */
public void runScript(final InputStream in, final String filename, final Map<String, Object> inputMap) {
	if (in == null) {
		error("Could not find " + filename, IO_ERROR);
		return;
	}
	final Reader reader = new InputStreamReader(in);
	setLoaded(true);
	final Future<ScriptModule> fsm = scriptService.run(filename, reader, true, inputMap);
	if (fsm.isCancelled())
		setStatus(WAS_CANCELED);
	else if (fsm.isDone())
		setStatus(WAS_DONE);
}