public interface ScriptService extends SingletonService<ScriptLanguage>, SciJavaService
Modifier and Type | Field and Description |
---|---|
static String |
SCRIPTS_PATH_PROPERTY
System property for overriding the list of directories to scan for scripts.
|
static String |
SCRIPTS_RESOURCE_DIR
Base directory for discovering scripts, including within classpath
resources as well as beneath the application base directory.
|
Modifier and Type | Method and Description |
---|---|
default void |
addAlias(Class<?> type)
TODO
|
void |
addAlias(String alias,
Class<?> type)
TODO
|
void |
addScriptDirectory(File scriptDirectory)
Adds a base directory to scan for scripts.
|
void |
addScriptDirectory(File scriptDirectory,
MenuPath menuPrefix)
Adds a base directory to scan for scripts, placing discovered scripts
beneath the given menu path prefix.
|
default boolean |
canHandleFile(File file)
TODO
|
default boolean |
canHandleFile(String fileName)
TODO
|
Map<String,Class<?>> |
getAliases()
TODO
|
ScriptLanguageIndex |
getIndex()
Gets the index of available scripting languages.
|
default ScriptLanguage |
getLanguageByExtension(String extension)
Gets the scripting language that handles the given file extension.
|
default ScriptLanguage |
getLanguageByName(String name)
Gets the scripting language with the given name.
|
default List<ScriptLanguage> |
getLanguages()
Gets the available scripting languages.
|
MenuPath |
getMenuPrefix(File scriptDirectory)
Gets the menu path prefix for the given script directory, or null if none.
|
default Class<ScriptLanguage> |
getPluginType()
Gets the type of plugins managed by this service.
|
ScriptInfo |
getScript(File scriptFile)
Gets the cached
ScriptInfo metadata for the script at the given
file, creating it if it does not already exist. |
List<File> |
getScriptDirectories()
Gets the base directories to scan for scripts.
|
Collection<ScriptInfo> |
getScripts()
Gets all available scripts.
|
Class<?> |
lookupClass(String typeName)
TODO
|
void |
removeScriptDirectory(File scriptDirectory)
Removes a base directory to scan for scripts.
|
Future<ScriptModule> |
run(File file,
boolean process,
Map<String,Object> inputMap)
Executes the script in the given file.
|
Future<ScriptModule> |
run(File file,
boolean process,
Object... inputs)
Executes the script in the given file.
|
Future<ScriptModule> |
run(ScriptInfo info,
boolean process,
Map<String,Object> inputMap)
Executes the given script.
|
Future<ScriptModule> |
run(ScriptInfo info,
boolean process,
Object... inputs)
Executes the given script.
|
default Future<ScriptModule> |
run(String path,
Reader reader,
boolean process,
Map<String,Object> inputMap)
Executes the given script.
|
default Future<ScriptModule> |
run(String path,
Reader reader,
boolean process,
Object... inputs)
Executes the given script.
|
default Future<ScriptModule> |
run(String path,
String script,
boolean process,
Map<String,Object> inputMap)
Executes the given script.
|
default Future<ScriptModule> |
run(String path,
String script,
boolean process,
Object... inputs)
Executes the given script.
|
create, filterInstances, getInstance, getInstances, initialize, objectService
getPlugins, getPluginService, pluginService
registerEventHandlers
getIdentifier, log
context, getContext, setContext
compareTo, getPriority, setPriority
getInfo, setInfo
getLocation
getVersion
dispose
static final String SCRIPTS_PATH_PROPERTY
getScriptDirectories()
,
Constant Field Valuesstatic final String SCRIPTS_RESOURCE_DIR
ScriptLanguageIndex getIndex()
default List<ScriptLanguage> getLanguages()
This method does the same thing as SingletonService.getInstances()
.
default ScriptLanguage getLanguageByExtension(String extension)
default ScriptLanguage getLanguageByName(String name)
List<File> getScriptDirectories()
MenuPath getMenuPrefix(File scriptDirectory)
void addScriptDirectory(File scriptDirectory)
void addScriptDirectory(File scriptDirectory, MenuPath menuPrefix)
void removeScriptDirectory(File scriptDirectory)
Collection<ScriptInfo> getScripts()
ScriptInfo getScript(File scriptFile)
ScriptInfo
metadata for the script at the given
file, creating it if it does not already exist.Future<ScriptModule> run(File file, boolean process, Object... inputs) throws FileNotFoundException, ScriptException
file
- File containing the script to execute.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputs
- List of input parameter names and values. The expected order
is in pairs: an input name followed by its value, for each desired
input to populate. Leaving some inputs unpopulated is allowed.
Passing the name of an input that is not valid for the plugin, or
passing a value of a type incompatible with the associated input
parameter, will issue an error and ignore that name/value pair.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.FileNotFoundException
ScriptException
Future<ScriptModule> run(File file, boolean process, Map<String,Object> inputMap) throws FileNotFoundException, ScriptException
file
- File containing the script to execute.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputMap
- Table of input parameter values, with keys matching the
plugin's input parameter names. Passing a value of a type
incompatible with the associated input parameter will issue an
error and ignore that value.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.FileNotFoundException
ScriptException
default Future<ScriptModule> run(String path, String script, boolean process, Object... inputs)
path
- Pseudo-path to the script. This is important mostly for the
path's file extension, which provides an important hint as to the
language of the script.script
- The script itself to execute.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputs
- List of input parameter names and values. The expected order
is in pairs: an input name followed by its value, for each desired
input to populate. Leaving some inputs unpopulated is allowed.
Passing the name of an input that is not valid for the plugin, or
passing a value of a type incompatible with the associated input
parameter, will issue an error and ignore that name/value pair.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.default Future<ScriptModule> run(String path, String script, boolean process, Map<String,Object> inputMap)
path
- Pseudo-path to the script. This is important mostly for the
path's file extension, which provides an important hint as to the
language of the script.script
- The script itself to execute.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputMap
- Table of input parameter values, with keys matching the
plugin's input parameter names. Passing a value of a type
incompatible with the associated input parameter will issue an
error and ignore that value.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.default Future<ScriptModule> run(String path, Reader reader, boolean process, Object... inputs)
path
- Pseudo-path to the script. This is important mostly for the
path's file extension, which provides an important hint as to the
language of the script.reader
- A stream providing the script contents.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputs
- List of input parameter names and values. The expected order
is in pairs: an input name followed by its value, for each desired
input to populate. Leaving some inputs unpopulated is allowed.
Passing the name of an input that is not valid for the plugin, or
passing a value of a type incompatible with the associated input
parameter, will issue an error and ignore that name/value pair.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.default Future<ScriptModule> run(String path, Reader reader, boolean process, Map<String,Object> inputMap)
path
- Pseudo-path to the script. This is important mostly for the
path's file extension, which provides an important hint as to the
language of the script.reader
- A stream providing the script contents.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputMap
- Table of input parameter values, with keys matching the
plugin's input parameter names. Passing a value of a type
incompatible with the associated input parameter will issue an
error and ignore that value.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.Future<ScriptModule> run(ScriptInfo info, boolean process, Object... inputs)
info
- The script to instantiate and run.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputs
- List of input parameter names and values. The expected order
is in pairs: an input name followed by its value, for each desired
input to populate. Leaving some inputs unpopulated is allowed.
Passing the name of an input that is not valid for the plugin, or
passing a value of a type incompatible with the associated input
parameter, will issue an error and ignore that name/value pair.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.Future<ScriptModule> run(ScriptInfo info, boolean process, Map<String,Object> inputMap)
info
- The script to instantiate and run.process
- If true, executes the script with pre- and postprocessing
steps from all available PreprocessorPlugin
s and
PostprocessorPlugin
s in the plugin index; if false,
executes the script with no pre- or postprocessing.inputMap
- Table of input parameter values, with keys matching the
plugin's input parameter names. Passing a value of a type
incompatible with the associated input parameter will issue an
error and ignore that value.Future
of the module instance being executed. Calling
Future.get()
will block until execution is complete.default boolean canHandleFile(File file)
default boolean canHandleFile(String fileName)
default void addAlias(Class<?> type)
Class<?> lookupClass(String typeName) throws ScriptException
ScriptException
default Class<ScriptLanguage> getPluginType()
PTService
getPluginType
in interface PTService<ScriptLanguage>
Copyright © 2015–2022 SciJava. All rights reserved.