Class Expression


  • public final class Expression
    extends java.lang.Object
    A compiled property-expansion expression string. An expression string is a mix of plain strings and expression segments, which are wrapped by the sequence "${ ... }".
    Author:
    David M. Lloyd
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Expression.Flag
      Flags that can apply to a property expression compilation
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static Expression compile​(java.lang.String string, java.util.EnumSet<Expression.Flag> flags)
      Compile an expression string.
      static Expression compile​(java.lang.String string, Expression.Flag... flags)
      Compile an expression string.
      java.lang.String evaluate​(java.util.function.BiConsumer<ResolveContext<java.lang.RuntimeException>,​java.lang.StringBuilder> expandFunction)
      Evaluate the expression with the given expansion function.
      <E extends java.lang.Exception>
      java.lang.String
      evaluateException​(ExceptionBiConsumer<ResolveContext<E>,​java.lang.StringBuilder,​E> expandFunction)
      Evaluate the expression with the given expansion function, which may throw a checked exception.
      java.lang.String evaluateWithEnvironment​(boolean failOnNoDefault)
      Evaluate the expression using a default expansion function that evaluates environment properties.
      java.lang.String evaluateWithProperties​(boolean failOnNoDefault)
      Evaluate the expression using a default expansion function that evaluates system properties.
      java.lang.String evaluateWithPropertiesAndEnvironment​(boolean failOnNoDefault)
      Evaluate the expression using a default expansion function that evaluates system and environment properties in the JBoss style (i.e.
      java.util.Set<java.lang.String> getReferencedStrings()
      Get the immutable set of string keys that are referenced by expressions in this compiled expression.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getReferencedStrings

        public java.util.Set<java.lang.String> getReferencedStrings()
        Get the immutable set of string keys that are referenced by expressions in this compiled expression. If there are no expansions in this expression, the set is empty. Note that this will not include any string keys that themselves contain expressions, in the case that Expression.Flag.NO_RECURSE_KEY was not specified.
        Returns:
        the immutable set of strings (not null)
      • evaluateException

        public <E extends java.lang.Exception> java.lang.String evaluateException​(ExceptionBiConsumer<ResolveContext<E>,​java.lang.StringBuilder,​E> expandFunction)
                                                                           throws E extends java.lang.Exception
        Evaluate the expression with the given expansion function, which may throw a checked exception. The given "function" is a predicate which returns true if the expansion succeeded or false if it failed (in which case a default value may be used). If expansion succeeds, the expansion function should append the result to the given StringBuilder.
        Type Parameters:
        E - the exception type thrown by the expansion function
        Parameters:
        expandFunction - the expansion function to apply (must not be null)
        Returns:
        the expanded string
        Throws:
        E - if the expansion function throws an exception
        E extends java.lang.Exception
      • evaluate

        public java.lang.String evaluate​(java.util.function.BiConsumer<ResolveContext<java.lang.RuntimeException>,​java.lang.StringBuilder> expandFunction)
        Evaluate the expression with the given expansion function. The given "function" is a predicate which returns true if the expansion succeeded or false if it failed (in which case a default value may be used). If expansion succeeds, the expansion function should append the result to the given StringBuilder.
        Parameters:
        expandFunction - the expansion function to apply (must not be null)
        Returns:
        the expanded string
      • evaluateWithPropertiesAndEnvironment

        public java.lang.String evaluateWithPropertiesAndEnvironment​(boolean failOnNoDefault)
        Evaluate the expression using a default expansion function that evaluates system and environment properties in the JBoss style (i.e. using the prefix "env." to designate an environment property). The caller must have all required security manager permissions.
        Parameters:
        failOnNoDefault - true to throw an IllegalArgumentException if an unresolvable key has no default value; false to expand such keys to an empty string
        Returns:
        the expanded string
      • evaluateWithProperties

        public java.lang.String evaluateWithProperties​(boolean failOnNoDefault)
        Evaluate the expression using a default expansion function that evaluates system properties. The caller must have all required security manager permissions.
        Parameters:
        failOnNoDefault - true to throw an IllegalArgumentException if an unresolvable key has no default value; false to expand such keys to an empty string
        Returns:
        the expanded string
      • evaluateWithEnvironment

        public java.lang.String evaluateWithEnvironment​(boolean failOnNoDefault)
        Evaluate the expression using a default expansion function that evaluates environment properties. The caller must have all required security manager permissions.
        Parameters:
        failOnNoDefault - true to throw an IllegalArgumentException if an unresolvable key has no default value; false to expand such keys to an empty string
        Returns:
        the expanded string
      • compile

        public static Expression compile​(java.lang.String string,
                                         Expression.Flag... flags)
        Compile an expression string.
        Parameters:
        string - the expression string (must not be null)
        flags - optional flags to apply which affect the compilation
        Returns:
        the compiled expression (not null)
      • compile

        public static Expression compile​(java.lang.String string,
                                         java.util.EnumSet<Expression.Flag> flags)
        Compile an expression string.
        Parameters:
        string - the expression string (must not be null)
        flags - optional flags to apply which affect the compilation (must not be null)
        Returns:
        the compiled expression (not null)