org.codehaus.plexus.interpolation
Interface RecursionInterceptor
public
interface
RecursionInterceptor
Logs expressions before resolution is attempted, and clears them
after resolution is complete (or, fails all strategies). In between,
if the value of an expression contains more expressions, RecursionInterceptor
implementations ensure that those expressions don't reference an expression
which is in the process of being resolved. If that happens, the expression
references are cyclical, and would othewise result in an infinite loop.
Version: $Id: RecursionInterceptor.java 7529 2008-07-20 20:24:21Z olamy $
Method Summary |
void | expressionResolutionFinished(String expression)
Signal to the interceptor that the all efforts to resolve the given
expression have completed - whether successfully or not is irrelevant -
and that the expression should not be tracked for recursion any longer.
|
void | expressionResolutionStarted(String expression)
Log the intention to start resolving the given expression. |
List | getExpressionCycle(String expression) |
boolean | hasRecursiveExpression(String value)
Check whether the given value contains an expression that is currently
being tracked by this interceptor. |
public void expressionResolutionFinished(String expression)
Signal to the interceptor that the all efforts to resolve the given
expression have completed - whether successfully or not is irrelevant -
and that the expression should not be tracked for recursion any longer.
Parameters: expression The expression to stop tracking.
public void expressionResolutionStarted(String expression)
Log the intention to start resolving the given expression. This signals
the interceptor to start tracking that expression to make sure it doesn't
come up again until after it has been resolved (or, fails to resolve).
Parameters: expression The expression to be resolved.
public List getExpressionCycle(String expression)
Returns: The list of expressions that participate in the cycle caused by
the given expression.
public boolean hasRecursiveExpression(String value)
Check whether the given value contains an expression that is currently
being tracked by this interceptor. If so, that expression is still in
the process of being resolved, and this constitutes an expression cycle.
Parameters: value The value to check for expression cycles.
Returns: True if the value contains tracked expressions; false otherwise.
Copyright © 2001-2009
Codehaus. All Rights Reserved.