Package org.wildfly.common.expression
Class Expression
- java.lang.Object
-
- org.wildfly.common.expression.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.StringevaluateException(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.
-
-
-
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 thatExpression.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 returnstrue
if the expansion succeeded orfalse
if it failed (in which case a default value may be used). If expansion succeeds, the expansion function should append the result to the givenStringBuilder
.- Type Parameters:
E
- the exception type thrown by the expansion function- Parameters:
expandFunction
- the expansion function to apply (must not benull
)- Returns:
- the expanded string
- Throws:
E
- if the expansion function throws an exceptionE 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 returnstrue
if the expansion succeeded orfalse
if it failed (in which case a default value may be used). If expansion succeeds, the expansion function should append the result to the givenStringBuilder
.- Parameters:
expandFunction
- the expansion function to apply (must not benull
)- 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 anIllegalArgumentException
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 anIllegalArgumentException
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 anIllegalArgumentException
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 benull
)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 benull
)flags
- optional flags to apply which affect the compilation (must not benull
)- Returns:
- the compiled expression (not
null
)
-
-