Class ExprLookup

java.lang.Object
org.apache.commons.lang.text.StrLookup
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 1234539 2012-01-22 16:19:15Z oheger $
Author:
Commons Configuration team
  • 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

      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 Details

    • 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

      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

      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.