2.17.2: 2011-06-17

net.sf.basedb.util.extensions.xml
Class VariableConverter

java.lang.Object
  extended by net.sf.basedb.util.extensions.xml.VariableConverter
All Implemented Interfaces:
ValueConverter

public class VariableConverter
extends Object
implements ValueConverter

A value converter that can be used on all setter methods that has been annotated with the VariableSetter annotation. The input string will be scanned for parts that match $VARIABLE$ and have that part replaced by the actual value of a defined variable. Undefined variables are not replaced. See setVariable(String, String) for more details.

Web client note! The web client application defines the variables ROOT and HOME which are the paths to the web application root directory (/base2) and the home directory (/base2/extensions/xxxx) of the current extension. This means that the XML configuration file may contain values like $ROOT$/images/copy.gif. The $ROOT$ portion will automatically be replaced with the correct path if the factory method is annotated with the VariableSetter annotation.

Version:
2.7
Author:
nicklas
Last modified
$Date:2008-03-20 12:15:25 +0100 (Thu, 20 Mar 2008) $

Field Summary
private static Pattern VARIABLE
           
private  Map<String,String> variables
           
 
Constructor Summary
VariableConverter()
          Create a new variable converter.
 
Method Summary
 String convert(String in, Method method)
          Convert a value.
 String getVariable(String name)
          Get the value of a variable.
 void setVariable(String name, String value)
          Set the value of a variable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VARIABLE

private static final Pattern VARIABLE

variables

private Map<String,String> variables
Constructor Detail

VariableConverter

public VariableConverter()
Create a new variable converter. Use setVariable(String, String) to define variables and XmlLoader.addValueConverter(ValueConverter) to register this converter with an XML loader.

Method Detail

convert

public String convert(String in,
                      Method method)
Description copied from interface: ValueConverter
Convert a value.

Specified by:
convert in interface ValueConverter
Parameters:
in - The value to convert
method - The factory setter method
Returns:
The converted or original value

setVariable

public void setVariable(String name,
                        String value)
Set the value of a variable. If a setter method of a factory class (ActionFactory or RendererFactory) is annotated with the VariableSetter annotation the XML loader will scan the value from the XML file for replacement tags, $VARIABLE$, and replace the tag with the value of the variable. If the variable doesn't exists, the tag is left untouched.

Parameters:
name - The name of the variable
value - The value of the variable, or null to remove the variable

getVariable

public String getVariable(String name)
Get the value of a variable.

Parameters:
name - The variable's name
Returns:
The value, or null if it doesn't exists

2.17.2: 2011-06-17