Class ExprLookup

java.lang.Object
org.apache.commons.configuration2.interpol.ExprLookup
All Implemented Interfaces:
Lookup

public class ExprLookup extends Object implements Lookup
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
  • 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)
      Sets 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)
      Sets 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

      Gets the list of Variables that are accessible within expressions. This method returns a copy of the variables managed by this lookup; so modifying this object has no impact on this lookup.
      Returns:
      the List of Variables that are accessible within expressions.
    • getLogger

      Gets the logger used by this object.
      Returns:
      the Log
      Since:
      2.0
    • setLogger

      public void setLogger(ConfigurationLogger logger)
      Sets the logger to be used by this object. If no logger is passed in, no log output is generated.
      Parameters:
      logger - the Log
      Since:
      2.0
    • getInterpolator

      Gets the ConfigurationInterpolator used by this object.
      Returns:
      the ConfigurationInterpolator
      Since:
      2.0
    • setInterpolator

      public void setInterpolator(ConfigurationInterpolator interpolator)
      Sets the ConfigurationInterpolator to be used by this object.
      Parameters:
      interpolator - the ConfigurationInterpolator (may be null)
      Since:
      2.0
    • lookup

      public String lookup(String var)
      Evaluates the expression.
      Specified by:
      lookup in interface Lookup
      Parameters:
      var - The expression.
      Returns:
      The String result of the expression.