2.17.2: 2011-06-17

net.sf.basedb.core
Class PluginRequest<P extends Plugin>

java.lang.Object
  extended by net.sf.basedb.core.PluginRequest<P>
Direct Known Subclasses:
PluginConfigurationRequest, PluginExecutionRequest

abstract class PluginRequest<P extends Plugin>
extends Object

Configures or executes a plugin. You will get an instance of a subclass to this class when:

  1. You want to configure a plugin: PluginConfiguration.configure()
  2. You want to configure a job: Job.configure(GuiContext)
  3. You want to execute a job: Job.execute(ProgressReporter, String)

Version:
2.0
Author:
Nicklas
See Also:
PluginConfigurationRequest, PluginExecutionRequest
Last modified
$Date$

Nested Class Summary
(package private)  class PluginRequest.RequestImpl
          An implementation of the Request interface that is passed to the plugin.
 
Field Summary
private  String command
           
private  ParameterValuesImpl configurationParameters
           
private  Job job
           
private  ParameterValuesImpl jobParameters
           
private  Map<String,PluginParameter<?>> parameterInfo
           
private  P plugin
           
private  PluginConfiguration pluginConfiguration
           
private  PluginDefinition pluginDefinition
           
private  Map<String,List<?>> requestParameters
           
private  SessionControl sc
           
 
Constructor Summary
PluginRequest(PluginRequest<? extends P> copyFrom, String command)
           
PluginRequest(SessionControl sc, P plugin, String command, PluginConfiguration pluginConfiguration, ParameterValuesImpl configurationParameters, Job job, ParameterValuesImpl jobParameters, PluginDefinition pluginDefinition)
           
 
Method Summary
 void done()
          Aborts the execution of the plugin.
 String getCommand()
          Get the command this request will issue to the plugin when invoke() is called.
 List<?> getCurrentConfigurationParameterValues(String name)
          Get the values that are currently stored in the plugin configuration related to this request.
 List<?> getCurrentJobParameterValues(String name)
          Get the values that are currently stored in the job related to this request.
 Object getCurrentParameterValue(String name)
           
 List<?> getCurrentParameterValues(String name)
          Get the values that are currently stored in the job or plugin configuration related to this request.
(package private)  Job getJob()
          Get the job for the request or null if we are not configuring/executing a job.
 P getPlugin()
          Get the plugin object.
 SessionControl getSessionControl()
           
abstract  PluginResponse invoke()
          Invoke the plugin and let it do it's work.
(package private)  void registerParameters(List<PluginParameter<?>> parameters)
          Keep track of all parameters so that we can save label and description in the ParameterValuesImpl.saveParameters(Job, Map) method.
(package private)  void saveParameters(DbControl dc, GuiContext context)
          Save all parameters that have got values in this request/response session.
(package private)  void setNextCommand(String command)
          Sets the next command in a configuration sequence.
 void setParameterValue(String name, Object value)
          Set the value of a request parameter to a single value.
 void setParameterValues(String name, List<?> values)
          Set the value of a request parameter to a list of values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sc

private final SessionControl sc

command

private String command

requestParameters

private final Map<String,List<?>> requestParameters

plugin

private final P extends Plugin plugin

configurationParameters

private final ParameterValuesImpl configurationParameters

pluginConfiguration

private final PluginConfiguration pluginConfiguration

pluginDefinition

private final PluginDefinition pluginDefinition

jobParameters

private final ParameterValuesImpl jobParameters

parameterInfo

private final Map<String,PluginParameter<?>> parameterInfo

job

private final Job job
Constructor Detail

PluginRequest

PluginRequest(SessionControl sc,
              P plugin,
              String command,
              PluginConfiguration pluginConfiguration,
              ParameterValuesImpl configurationParameters,
              Job job,
              ParameterValuesImpl jobParameters,
              PluginDefinition pluginDefinition)

PluginRequest

PluginRequest(PluginRequest<? extends P> copyFrom,
              String command)
Method Detail

getSessionControl

public SessionControl getSessionControl()
Returns:
The SessionControl used in this request
Since:
2.11

getCommand

public String getCommand()
Get the command this request will issue to the plugin when invoke() is called.


setParameterValue

public void setParameterValue(String name,
                              Object value)
Set the value of a request parameter to a single value. Normally a plugin validates the value using the information available in the RequestInformation object.

Parameters:
name - The name of the parameter
value - The value of the parameter
See Also:
PluginConfigurationRequest.getRequestInformation()

setParameterValues

public void setParameterValues(String name,
                               List<?> values)
Set the value of a request parameter to a list of values. Normally a plugin validates the value using the information available in the RequestInformation object.

Parameters:
name - The name of the parameter
values - The values of the parameter
See Also:
PluginConfigurationRequest.getRequestInformation()

getCurrentParameterValue

public Object getCurrentParameterValue(String name)

getCurrentParameterValues

public List<?> getCurrentParameterValues(String name)
Get the values that are currently stored in the job or plugin configuration related to this request. This method will first check the job and then the plugin configuration.

Parameters:
name - The name of the parameter
Returns:
The parameter values, or null if no parameter with the given name exists

getCurrentConfigurationParameterValues

public List<?> getCurrentConfigurationParameterValues(String name)
Get the values that are currently stored in the plugin configuration related to this request.

Parameters:
name - The name of the parameter
Returns:
The parameter values, or null if no parameter with the given name exists or if this request isn't associated with a plugin configuration

getCurrentJobParameterValues

public List<?> getCurrentJobParameterValues(String name)
Get the values that are currently stored in the job related to this request.

Parameters:
name - The name of the parameter
Returns:
The parameter values, or null if no parameter with the given name exists or if this request isn't associated with a job

invoke

public abstract PluginResponse invoke()
Invoke the plugin and let it do it's work. Note that this method doesn't throw any exceptions. If an exception occurs during the execution of a plugin, the response status will be set to Response.Status.ERROR and the error messages will be available in the PluginResponse.getMessage() and PluginResponse.getErrorList() methods.

Returns:
A PluginResponse object

done

public void done()
Aborts the execution of the plugin.


registerParameters

void registerParameters(List<PluginParameter<?>> parameters)
Keep track of all parameters so that we can save label and description in the ParameterValuesImpl.saveParameters(Job, Map) method.

Parameters:
parameters -

saveParameters

void saveParameters(DbControl dc,
                    GuiContext context)
Save all parameters that have got values in this request/response session.


setNextCommand

void setNextCommand(String command)
Sets the next command in a configuration sequence.


getPlugin

public P getPlugin()
Get the plugin object.

Since:
2.6 (was not public before)

getJob

Job getJob()
Get the job for the request or null if we are not configuring/executing a job.

Since:
2.2

2.17.2: 2011-06-17