Class ExprLookup
java.lang.Object
org.apache.commons.lang.text.StrLookup
org.apache.commons.configuration.interpol.ExprLookup
Lookup that allows expressions to be evaluated.
ExprLookup.Variables vars = new ExprLookup.Variables(); vars.add(new ExprLookup.Variable("String", org.apache.commons.lang.StringUtils.class)); vars.add(new ExprLookup.Variable("Util", new Utility("Hello"))); vars.add(new ExprLookup.Variable("System", "Class:java.lang.System")); XMLConfiguration config = new XMLConfiguration(TEST_FILE); config.setLogger(log); ExprLookup lookup = new ExprLookup(vars); lookup.setConfiguration(config); String str = lookup.lookup("'$[element] ' + String.trimToEmpty('$[space.description]')");In the example above TEST_FILE contains xml that looks like:
<configuration> <element>value</element> <space xml:space="preserve"> <description xml:space="default"> Some text </description> </space> </configuration>The result will be "value Some text". This lookup uses Apache Commons Jexl and requires that the dependency be added to any projects which use this.
- Since:
- 1.7
- Version:
- $Id: ExprLookup.java 1234539 2012-01-22 16:19:15Z oheger $
- Author:
- Commons Configuration team
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
The key and corresponding object that will be made available to the JexlContext for use in expressions.static class
List wrapper used to allow the Variables list to be created as beans in DefaultConfigurationBuilder. -
Constructor Summary
ConstructorsConstructorDescriptionThe default constructor.Constructor for use by applications.ExprLookup
(ExprLookup.Variables list, String prefix, String suffix) Constructor for use by applications. -
Method Summary
Modifier and TypeMethodDescriptionReturns the list of Variables that are accessible within expressions.Evaluates the expression.void
Set the configuration to be used to interpolate subordinate expressions.void
setVariablePrefixMatcher
(String prefix) Set the prefix to use to identify subordinate expressions.void
Add the Variables that will be accessible within expressions.void
setVariableSuffixMatcher
(String suffix) Set the suffix to use to identify subordinate expressions.Methods inherited from class org.apache.commons.lang.text.StrLookup
mapLookup, noneLookup, systemPropertiesLookup
-
Constructor Details
-
ExprLookup
public ExprLookup()The default constructor. Will get used when the Lookup is constructed via configuration. -
ExprLookup
Constructor for use by applications.- Parameters:
list
- The list of objects to be accessible in expressions.
-
ExprLookup
Constructor for use by applications.- Parameters:
list
- The list of objects to be accessible in expressions.prefix
- The prefix to use for subordinate lookups.suffix
- The suffix to use for subordinate lookups.
-
-
Method Details
-
setVariablePrefixMatcher
Set the prefix to use to identify subordinate expressions. This cannot be the same as the prefix used for the primary expression.- Parameters:
prefix
- The String identifying the beginning of the expression.
-
setVariableSuffixMatcher
Set the suffix to use to identify subordinate expressions. This cannot be the same as the suffix used for the primary expression.- Parameters:
suffix
- The String identifying the end of the expression.
-
setVariables
Add the Variables that will be accessible within expressions.- Parameters:
list
- The list of Variables.
-
getVariables
Returns the list of Variables that are accessible within expressions.- Returns:
- the List of Variables that are accessible within expressions.
-
setConfiguration
Set the configuration to be used to interpolate subordinate expressions.- Parameters:
config
- The Configuration.
-
lookup
Evaluates the expression.- Specified by:
lookup
in classorg.apache.commons.lang.text.StrLookup
- Parameters:
var
- The expression.- Returns:
- The String result of the expression.
-