2.17.2: 2011-06-17

net.sf.basedb.core.plugin
Class NamespaceParameterValuesWrapper

java.lang.Object
  extended by net.sf.basedb.core.plugin.NamespaceParameterValuesWrapper
All Implemented Interfaces:
ParameterValues

public class NamespaceParameterValuesWrapper
extends Object
implements ParameterValues

A helper class that wraps a parameter values object with a namespace. All write operations will be made to the specified namespace. Eg, the 'name' parameter is replaced with the namespace + dot + the original name. For example, if namespace="export" and name="toDir", the resulting name is "export.toDir". Read operations will first check the namespace if the parameter exists, otherwise the parameter in the global namespace is used. All other methods simply forward to the parent parameter values object.

The main usage for this class is when a master plug-in needs to use other child plug-ins. By wrapping the parameter values with an instance of this class it makes it possible to store all parameters together without having to worry about name clashes among the children.

Since:
2.15
Author:
nicklas
See Also:
NamespacePluginParameter, NamespaceRequestWrapper
Last modified
$Date $

Field Summary
private  String namespace
           
private  ParameterValues parent
           
 
Constructor Summary
NamespaceParameterValuesWrapper(ParameterValues parent, String namespace)
          Create a new namespace wrapper for the parent parameter values.
 
Method Summary
 int getId()
          Get the ID of the job or configuration the parameters comes from.
 Job getJob()
          Get the job that we are executing/configuring.
 PluginConfiguration getPluginConfiguration()
          Get the configuration that we are using/configuring.
 PluginDefinition getPluginDefinition()
          Get the plugin that we are executing/configuring.
 Object getValue(String name)
          Get a single value for a specific parameter.
 List<?> getValues(String name)
          Get a List of values for a specific parameter.
<T> void
setValue(String name, ParameterType<T> type, T value)
          Set a single value for a parameter.
<T> void
setValues(String name, ParameterType<T> type, List<T> values)
          Set a list of values for a parameter.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

namespace

private final String namespace

parent

private final ParameterValues parent
Constructor Detail

NamespaceParameterValuesWrapper

public NamespaceParameterValuesWrapper(ParameterValues parent,
                                       String namespace)
Create a new namespace wrapper for the parent parameter values.

Parameters:
parent - The parent parameter values, null is not allowed
namespace - The namespace, null is not allowed
Method Detail

getId

public int getId()
Description copied from interface: ParameterValues
Get the ID of the job or configuration the parameters comes from.

Specified by:
getId in interface ParameterValues

getJob

public Job getJob()
Description copied from interface: ParameterValues
Get the job that we are executing/configuring.

Specified by:
getJob in interface ParameterValues
Returns:
A Job or null if not known

getPluginConfiguration

public PluginConfiguration getPluginConfiguration()
Description copied from interface: ParameterValues
Get the configuration that we are using/configuring.

Specified by:
getPluginConfiguration in interface ParameterValues
Returns:
A PluginConfiguration or null if not known

getPluginDefinition

public PluginDefinition getPluginDefinition()
Description copied from interface: ParameterValues
Get the plugin that we are executing/configuring.

Specified by:
getPluginDefinition in interface ParameterValues
Returns:
A PluginDefinition or null if not known

getValue

public Object getValue(String name)
                throws PermissionDeniedException,
                       BaseException
Description copied from interface: ParameterValues
Get a single value for a specific parameter. If the parameter has more then one value only the first value is returned. Use ParameterValues.getValues(String) to return all values as a list.

Specified by:
getValue in interface ParameterValues
Parameters:
name - the name of the parameter
Returns:
The value or null if no parameter with that name is found
Throws:
PermissionDeniedException - If the logged in user doesn't have permission to read the value
BaseException - If there is another error

getValues

public List<?> getValues(String name)
                  throws PermissionDeniedException,
                         BaseException
Description copied from interface: ParameterValues
Get a List of values for a specific parameter.

Specified by:
getValues in interface ParameterValues
Parameters:
name - The name of the parameter
Returns:
The values or null if no parameter with that name is found
Throws:
PermissionDeniedException - If the logged in user doesn't have permission to read the values
BaseException - If there is another error

setValue

public <T> void setValue(String name,
                         ParameterType<T> type,
                         T value)
              throws PermissionDeniedException,
                     InvalidDataException,
                     BaseException
Description copied from interface: ParameterValues
Set a single value for a parameter. The core will store the value at the appropriate place in the database. Ie. as a configuration value to either the plugin or job configuration. If the configuration settings are write protected because the plugin received an execute command the settings will not be changed. If the value is null, but the parameter type doesn't allow null values, the default value is used. If the default value is null, an exception will be thrown.

Specified by:
setValue in interface ParameterValues
Parameters:
name - The name of the parameter
type - The type of the value
value - The value to be set
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If the value is invalid according to the settings in the type
BaseException - If there is another error

setValues

public <T> void setValues(String name,
                          ParameterType<T> type,
                          List<T> values)
               throws PermissionDeniedException,
                      InvalidDataException,
                      BaseException
Description copied from interface: ParameterValues
Set a list of values for a parameter. The core will store the values at the appropriate place in the database. Ie. as a configuration value to either the plugin or job configuration. If the configuration settings are write protected because the plugin received an execute command the settings will not be changed.

Specified by:
setValues in interface ParameterValues
Parameters:
name - The name of the parameter
type - The type of the value
values - A list containing the values
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If any of the values is invalid according to the settings in the type
BaseException - If there is another error

2.17.2: 2011-06-17