org.scijava.command
Class DefaultCommandService

java.lang.Object
  extended by org.scijava.AbstractContextual
      extended by org.scijava.plugin.AbstractRichPlugin
          extended by org.scijava.service.AbstractService
              extended by org.scijava.plugin.AbstractPTService<Command>
                  extended by org.scijava.command.DefaultCommandService
All Implemented Interfaces:
Comparable<Prioritized>, CommandService, Contextual, Disposable, HasPluginInfo, PTService<Command>, RichPlugin, SciJavaPlugin, Prioritized, SciJavaService, Service

public class DefaultCommandService
extends AbstractPTService<Command>
implements CommandService

Default service for working with Commands. Available commands are obtained from the plugin service. Loading of the actual command classes can be deferred until a particular command's first execution.

Author:
Curtis Rueden
See Also:
Command

Constructor Summary
DefaultCommandService()
           
 
Method Summary
<C extends Command>
CommandInfo
getCommand(Class<C> commandClass)
          Gets the first available command of the given class, or null if none.
 CommandInfo getCommand(String className)
          Gets the first available command of the given class name, or null if none.
 List<CommandInfo> getCommands()
          Gets the list of all available Commands).
<CT extends Command>
List<CommandInfo>
getCommands(List<PluginInfo<CT>> plugins)
          Gets the list of Commands corresponding to the given plugins.
<C extends Command>
List<CommandInfo>
getCommandsOfClass(Class<C> commandClass)
          Gets the list of commands of the given class.
 List<CommandInfo> getCommandsOfClass(String className)
          Gets the list of commands with the given class name.
<CT extends Command>
List<CommandInfo>
getCommandsOfType(Class<CT> type)
          Gets the list of Commands of the given type.
 EventService getEventService()
           
 ModuleService getModuleService()
           
 PluginService getPluginService()
          Gets the service responsible for discovering and managing this service's plugins.
 Class<Command> getPluginType()
          Gets the type of plugins managed by this service.
 void initialize()
          Performs any needed initialization when the service is first loaded.
protected  void onEvent(PluginsAddedEvent event)
           
protected  void onEvent(PluginsRemovedEvent event)
           
<C extends Command>
Future<CommandModule>
run(Class<C> commandClass, boolean process, Map<String,Object> inputMap)
          Executes the first command of the given class.
<C extends Command>
Future<CommandModule>
run(Class<C> commandClass, boolean process, Object... inputs)
          Executes the first command of the given class.
 Future<CommandModule> run(CommandInfo info, boolean process, Map<String,Object> inputMap)
          Executes the given command.
 Future<CommandModule> run(CommandInfo info, boolean process, Object... inputs)
          Executes the given command.
 Future<CommandModule> run(String className, boolean process, Map<String,Object> inputMap)
          Executes the first command of the given class name.
 Future<CommandModule> run(String className, boolean process, Object... inputs)
          Executes the first command of the given class name.
 
Methods inherited from class org.scijava.plugin.AbstractPTService
getPlugins
 
Methods inherited from class org.scijava.service.AbstractService
dispose, getContext, registerEventHandlers, setContext, toString
 
Methods inherited from class org.scijava.plugin.AbstractRichPlugin
compareTo, getInfo, getPriority, setInfo, setPriority
 
Methods inherited from class org.scijava.AbstractContextual
context
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.scijava.plugin.PTService
getPlugins
 
Methods inherited from interface org.scijava.service.Service
registerEventHandlers
 
Methods inherited from interface org.scijava.Contextual
context, getContext, setContext
 
Methods inherited from interface org.scijava.Prioritized
getPriority, setPriority
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface org.scijava.plugin.HasPluginInfo
getInfo, setInfo
 
Methods inherited from interface org.scijava.Disposable
dispose
 

Constructor Detail

DefaultCommandService

public DefaultCommandService()
Method Detail

getEventService

public EventService getEventService()
Specified by:
getEventService in interface CommandService

getPluginService

public PluginService getPluginService()
Description copied from interface: PTService
Gets the service responsible for discovering and managing this service's plugins.

Specified by:
getPluginService in interface PTService<Command>
Overrides:
getPluginService in class AbstractPTService<Command>

getModuleService

public ModuleService getModuleService()
Specified by:
getModuleService in interface CommandService

getCommands

public List<CommandInfo> getCommands()
Description copied from interface: CommandService
Gets the list of all available Commands).

Specified by:
getCommands in interface CommandService

getCommands

public <CT extends Command> List<CommandInfo> getCommands(List<PluginInfo<CT>> plugins)
Description copied from interface: CommandService
Gets the list of Commands corresponding to the given plugins.

Specified by:
getCommands in interface CommandService

getCommandsOfType

public <CT extends Command> List<CommandInfo> getCommandsOfType(Class<CT> type)
Description copied from interface: CommandService
Gets the list of Commands of the given type.

Specified by:
getCommandsOfType in interface CommandService

getCommand

public <C extends Command> CommandInfo getCommand(Class<C> commandClass)
Description copied from interface: CommandService
Gets the first available command of the given class, or null if none.

Specified by:
getCommand in interface CommandService

getCommand

public CommandInfo getCommand(String className)
Description copied from interface: CommandService
Gets the first available command of the given class name, or null if none.

Specified by:
getCommand in interface CommandService

getCommandsOfClass

public <C extends Command> List<CommandInfo> getCommandsOfClass(Class<C> commandClass)
Description copied from interface: CommandService
Gets the list of commands of the given class.

Most classes will have only a single match, but some special classes (such as ImageJ's LegacyCommand) may match many entries.

NB: Classes are matched by strict equality, not assignability; subtypes of the specified class will not match. For this behavior, use CommandService.getCommandsOfType(Class) on a common parent interface.

Specified by:
getCommandsOfClass in interface CommandService

getCommandsOfClass

public List<CommandInfo> getCommandsOfClass(String className)
Description copied from interface: CommandService
Gets the list of commands with the given class name.

Most classes will have only a single match, but some special classes (such as ImageJ's LegacyCommand) may match many entries.

NB: Classes are matched by strict equality, not assignability; subtypes of the specified class will not match. For this behavior, use CommandService.getCommandsOfType(Class) on a common parent interface.

Specified by:
getCommandsOfClass in interface CommandService

run

public Future<CommandModule> run(String className,
                                 boolean process,
                                 Object... inputs)
Description copied from interface: CommandService
Executes the first command of the given class name.

If no command with the given class name is registered with the service, then a default one is created and then executed. This default command is not registered with the service for subsequent usage.

Specified by:
run in interface CommandService
Parameters:
className - Class name of the command to execute.
process - If true, executes the command with pre- and postprocessing steps from all available PreprocessorPlugins and PostprocessorPlugins in the plugin index; if false, executes the command with no pre- or postprocessing. For more fine-grained control, see the ModuleService.run(org.scijava.module.ModuleInfo, boolean, java.lang.Object...) methods.
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.
Returns:
Future of the module instance being executed. Calling Future.get() will block until execution is complete.

run

public Future<CommandModule> run(String className,
                                 boolean process,
                                 Map<String,Object> inputMap)
Description copied from interface: CommandService
Executes the first command of the given class name.

If no command with the given class name is registered with the service, then a default one is created and then executed. This default command is not registered with the service for subsequent usage.

Specified by:
run in interface CommandService
Parameters:
className - Class name of the command to execute.
process - If true, executes the command with pre- and postprocessing steps from all available PreprocessorPlugins and PostprocessorPlugins in the plugin index; if false, executes the command with no pre- or postprocessing. For more fine-grained control, see the ModuleService.run(org.scijava.module.ModuleInfo, boolean, java.lang.Object...) methods.
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.
Returns:
Future of the module instance being executed. Calling Future.get() will block until execution is complete.

run

public <C extends Command> Future<CommandModule> run(Class<C> commandClass,
                                                     boolean process,
                                                     Object... inputs)
Description copied from interface: CommandService
Executes the first command of the given class.

If no command of the given class is registered with the service, then a default one is created and then executed. This default command is not registered with the service for subsequent usage.

Specified by:
run in interface CommandService
Type Parameters:
C - Class of the command to execute.
Parameters:
commandClass - Class object of the command to execute.
process - If true, executes the command with pre- and postprocessing steps from all available PreprocessorPlugins and PostprocessorPlugins in the plugin index; if false, executes the command with no pre- or postprocessing. For more fine-grained control, see the ModuleService.run(org.scijava.module.ModuleInfo, boolean, java.lang.Object...) methods.
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.
Returns:
Future of the module instance being executed. Calling Future.get() will block until execution is complete.

run

public <C extends Command> Future<CommandModule> run(Class<C> commandClass,
                                                     boolean process,
                                                     Map<String,Object> inputMap)
Description copied from interface: CommandService
Executes the first command of the given class.

If no command of the given class is registered with the service, then a default one is created and then executed. This default command is not registered with the service for subsequent usage.

Specified by:
run in interface CommandService
Type Parameters:
C - Class of the command to execute.
Parameters:
commandClass - Class object of the command to execute.
process - If true, executes the command with pre- and postprocessing steps from all available PreprocessorPlugins and PostprocessorPlugins in the plugin index; if false, executes the command with no pre- or postprocessing. For more fine-grained control, see the ModuleService.run(org.scijava.module.ModuleInfo, boolean, java.lang.Object...) methods.
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.
Returns:
Future of the module instance being executed. Calling Future.get() will block until execution is complete.

run

public Future<CommandModule> run(CommandInfo info,
                                 boolean process,
                                 Object... inputs)
Description copied from interface: CommandService
Executes the given command.

Specified by:
run in interface CommandService
Parameters:
info - The command to instantiate and run.
process - If true, executes the command with pre- and postprocessing steps from all available PreprocessorPlugins and PostprocessorPlugins in the plugin index; if false, executes the command with no pre- or postprocessing. For more fine-grained control, see the ModuleService.run(org.scijava.module.ModuleInfo, boolean, java.lang.Object...) methods.
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.
Returns:
Future of the module instance being executed. Calling Future.get() will block until execution is complete.

run

public Future<CommandModule> run(CommandInfo info,
                                 boolean process,
                                 Map<String,Object> inputMap)
Description copied from interface: CommandService
Executes the given command.

Specified by:
run in interface CommandService
Parameters:
info - The command to instantiate and run.
process - If true, executes the command with pre- and postprocessing steps from all available PreprocessorPlugins and PostprocessorPlugins in the plugin index; if false, executes the command with no pre- or postprocessing. For more fine-grained control, see the ModuleService.run(org.scijava.module.ModuleInfo, boolean, java.lang.Object...) methods.
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.
Returns:
Future of the module instance being executed. Calling Future.get() will block until execution is complete.

getPluginType

public Class<Command> getPluginType()
Description copied from interface: PTService
Gets the type of plugins managed by this service.

Specified by:
getPluginType in interface PTService<Command>

initialize

public void initialize()
Description copied from interface: Service
Performs any needed initialization when the service is first loaded.

NB: This method is not intended to be called directly. It is called by the service framework itself (specifically by the ServiceHelper) when initializing the service. It should not be called a second time.

Specified by:
initialize in interface Service
Overrides:
initialize in class AbstractService

onEvent

protected void onEvent(PluginsRemovedEvent event)

onEvent

protected void onEvent(PluginsAddedEvent event)


Copyright © 2009–2014 SciJava. All rights reserved.