|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.lang.text.StrLookup
org.apache.commons.configuration.interpol.ConfigurationInterpolator
public class ConfigurationInterpolator
A class that handles interpolation (variable substitution) for configuration objects.
Each instance of AbstractConfiguration
is associated with an
object of this class. Each interpolation tasks are delegated to this object.
ConfigurationInterpolator
works together with the
StrSubstitutor
class from Commons Lang. By extending
StrLookup
it is able to provide values for variables that
appear in expressions.
The basic idea of this class is that it can maintain a set of primitive
StrLookup
objects, each of which are identified by a special
prefix. The variables to be processed have the form
${prefix:name}
. ConfigurationInterpolator
will
extract the prefix and determine, which primitive lookup object is registered
for it. Then the name of the variable is passed to this object to obtain the
actual value. It is also possible to define a default lookup object, which
will be used for variables that do not have a prefix.
When a new instance of this class is created it is initialized with a default
set of primitive lookup objects. This set can be customized using the static
methods registerGlobalLookup()
and
deregisterGlobalLookup()
. Per default it contains the
following standard lookup objects:
Prefix | Lookup object |
---|---|
sys | With this prefix a lookup object is associated that is able to resolve system properties. |
const | The const prefix indicates that a variable is to be
interpreted as a constant member field of a class (i.e. a field with the
static final modifiers). The name of the variable must be of the form
<full qualified class name>.<field name> , e.g.
org.apache.commons.configuration.interpol.ConfigurationInterpolator.PREFIX_CONSTANTS
. |
After an instance has been created the current set of lookup objects can be
modified using the registerLookup()
and
deregisterLookup()
methods. The default lookup object (that is
invoked for variables without a prefix) can be set with the
setDefaultLookup()
method. (If a
ConfigurationInterpolator
instance is created by a
configuration object, this lookup points to the configuration itself, so that
variables are resolved using the configuration's properties. This ensures
backward compatibility to earlier version of Commons Configuration.)
Implementation node: Instances of this class are not thread-safe related to
modifications of their current set of registered lookup objects. It is
intended that each instance is associated with a single
Configuration
object and used for its interpolation tasks.
- Since:
- 1.4
- Version:
- $Id: ConfigurationInterpolator.java 491243 2006-12-30 16:04:03Z oheger $
- Author:
- Commons
Configuration team
Field Summary
static String
PREFIX_CONSTANTS
Constant for the prefix of the standard lookup object for resolving
constant values.
static String
PREFIX_SYSPROPERTIES
Constant for the prefix of the standard lookup object for resolving
system properties.
Constructor Summary
ConfigurationInterpolator()
Creates a new instance of ConfigurationInterpolator
.
Method Summary
static boolean
deregisterGlobalLookup(String prefix)
Deregisters the global lookup object for the specified prefix.
boolean
deregisterLookup(String prefix)
Deregisters the lookup object for the specified prefix at this instance.
protected StrLookup
fetchLookupForPrefix(String prefix)
Obtains the lookup object for the specified prefix.
protected StrLookup
fetchNoPrefixLookup()
Returns the lookup object to be used for variables without a prefix.
StrLookup
getDefaultLookup()
Returns the default lookup object.
String
lookup(String var)
Resolves the specified variable.
Set
prefixSet()
Returns a set with the prefixes, for which lookup objects are registered
at this instance.
static void
registerGlobalLookup(String prefix,
StrLookup lookup)
Registers the given lookup object for the specified prefix globally.
void
registerLookup(String prefix,
StrLookup lookup)
Registers the given lookup object for the specified prefix at this
instance.
void
setDefaultLookup(StrLookup defaultLookup)
Sets the default lookup object.
Methods inherited from class org.apache.commons.lang.text.StrLookup
mapLookup, noneLookup, systemPropertiesLookup
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Field Detail
PREFIX_SYSPROPERTIES
public static final String PREFIX_SYSPROPERTIES
- Constant for the prefix of the standard lookup object for resolving
system properties.
- See Also:
- Constant Field Values
PREFIX_CONSTANTS
public static final String PREFIX_CONSTANTS
- Constant for the prefix of the standard lookup object for resolving
constant values.
- See Also:
- Constant Field Values
Constructor Detail
ConfigurationInterpolator
public ConfigurationInterpolator()
- Creates a new instance of
ConfigurationInterpolator
.
Method Detail
registerGlobalLookup
public static void registerGlobalLookup(String prefix,
StrLookup lookup)
- Registers the given lookup object for the specified prefix globally. This
means that all instances that are created later will use this lookup
object for this prefix. If for this prefix a lookup object is already
registered, the new lookup object will replace the old one. Note that the
lookup objects registered here will be shared between multiple clients.
So they should be thread-safe.
- Parameters:
prefix
- the variable prefix (must not be null)lookup
- the lookup object to be used for this prefix (must not be
null)
deregisterGlobalLookup
public static boolean deregisterGlobalLookup(String prefix)
- Deregisters the global lookup object for the specified prefix. This means
that this lookup object won't be available for later created instances
any more. For already existing instances this operation does not have any
impact.
- Parameters:
prefix
- the variable prefix
- Returns:
- a flag whether for this prefix a lookup object had been
registered
registerLookup
public void registerLookup(String prefix,
StrLookup lookup)
- Registers the given lookup object for the specified prefix at this
instance. From now on this lookup object will be used for variables that
have the specified prefix.
- Parameters:
prefix
- the variable prefix (must not be null)lookup
- the lookup object to be used for this prefix (must not be
null)
deregisterLookup
public boolean deregisterLookup(String prefix)
- Deregisters the lookup object for the specified prefix at this instance.
It will be removed from this instance.
- Parameters:
prefix
- the variable prefix
- Returns:
- a flag whether for this prefix a lookup object had been
registered
prefixSet
public Set prefixSet()
- Returns a set with the prefixes, for which lookup objects are registered
at this instance. This means that variables with these prefixes can be
processed.
- Returns:
- a set with the registered variable prefixes
getDefaultLookup
public StrLookup getDefaultLookup()
- Returns the default lookup object.
- Returns:
- the default lookup object
setDefaultLookup
public void setDefaultLookup(StrLookup defaultLookup)
- Sets the default lookup object. This lookup object will be used for all
variables without a special prefix. If it is set to null, such
variables won't be processed.
- Parameters:
defaultLookup
- the new default lookup object
lookup
public String lookup(String var)
- Resolves the specified variable. This implementation will try to extract
a variable prefix from the given variable name (the first colon (':') is
used as prefix separator). It then passes the name of the variable with
the prefix stripped to the lookup object registered for this prefix. If
no prefix can be found, the default lookup object will be used.
- Specified by:
lookup
in class StrLookup
- Parameters:
var
- the name of the variable whose value is to be looked up
- Returns:
- the value of this variable or null if it cannot be
resolved
fetchNoPrefixLookup
protected StrLookup fetchNoPrefixLookup()
- Returns the lookup object to be used for variables without a prefix. This
implementation will check whether a default lookup object was set. If
this is the case, it will be returned. Otherwise a null lookup
object will be returned.
- Returns:
- the lookup object to be used for variables without a prefix
fetchLookupForPrefix
protected StrLookup fetchLookupForPrefix(String prefix)
- Obtains the lookup object for the specified prefix. This method is called
by the
lookup()
method. This implementation will check
whether a lookup object is registered for the given prefix. If not, a
null lookup object will be returned.
- Parameters:
prefix
- the prefix
- Returns:
- the lookup object to be used for this prefix
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
Copyright © 2001-2007 The Apache Software Foundation. All Rights Reserved.