Class ExprLookup

  • All Implemented Interfaces:
    Lookup

    public class ExprLookup
    extends java.lang.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 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,
                          java.lang.String prefix,
                          java.lang.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​(java.lang.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​(java.lang.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. 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

        public ConfigurationLogger getLogger()
        Returns 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

        public ConfigurationInterpolator getInterpolator()
        Returns 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 java.lang.String lookup​(java.lang.String var)
        Evaluates the expression.
        Specified by:
        lookup in interface Lookup
        Parameters:
        var - The expression.
        Returns:
        The String result of the expression.