org.apache.commons.configuration.interpol
Class ExprLookup

java.lang.Object
  extended by org.apache.commons.lang.text.StrLookup
      extended by org.apache.commons.configuration.interpol.ExprLookup

public class ExprLookup
extends org.apache.commons.lang.text.StrLookup

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 766914 2009-04-20 23:38:49Z rgoers $
Author:
Commons Configuration team

Nested Class Summary
static class ExprLookup.Variable
          The key and corresponding object that will be made available to the JexlContext for use in expressions.
static class ExprLookup.Variables
          List wrapper used to allow the Variables list to be created as beans in DefaultConfigurationBuilder.
 
Constructor Summary
ExprLookup()
          The default constructor.
ExprLookup(ExprLookup.Variables list)
          Constructor for use by applications.
ExprLookup(ExprLookup.Variables list, String prefix, String suffix)
          Constructor for use by applications.
 
Method Summary
 ExprLookup.Variables getVariables()
          Returns the list of Variables that are accessible within expressions.
 String lookup(String var)
          Evaluates the expression.
 void setConfiguration(AbstractConfiguration config)
          Set the configuration to be used to interpolate subordinate expressiosn.
 void setVariablePrefixMatcher(String prefix)
          Set the prefix to use to identify subordinate expressions.
 void setVariables(ExprLookup.Variables list)
          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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExprLookup

public ExprLookup()
The default constructor. Will get used when the Lookup is constructed via configuration.


ExprLookup

public ExprLookup(ExprLookup.Variables list)
Constructor for use by applications.

Parameters:
list - The list of objects to be accessible in expressions.

ExprLookup

public ExprLookup(ExprLookup.Variables list,
                  String prefix,
                  String suffix)
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 Detail

setVariablePrefixMatcher

public void setVariablePrefixMatcher(String prefix)
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

public void setVariableSuffixMatcher(String suffix)
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

public void setVariables(ExprLookup.Variables list)
Add the Variables that will be accessible within expressions.

Parameters:
list - The list of Variables.

getVariables

public ExprLookup.Variables getVariables()
Returns the list of Variables that are accessible within expressions.

Returns:
the List of Variables that are accessible within expressions.

setConfiguration

public void setConfiguration(AbstractConfiguration config)
Set the configuration to be used to interpolate subordinate expressiosn.

Parameters:
config - The Configuration.

lookup

public String lookup(String var)
Evaluates the expression.

Specified by:
lookup in class org.apache.commons.lang.text.StrLookup
Parameters:
var - The expression.
Returns:
The String result of the expression.


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.