Package org.apache.velocity.app.event
Class EventHandlerUtil
java.lang.Object
org.apache.velocity.app.event.EventHandlerUtil
Calls on request all registered event handlers for a particular event. Each
method accepts two event cartridges (typically one from the application and
one from the context). All appropriate event handlers are executed in order
until a stopping condition is met. See the docs for the individual methods to
see what the stopping condition is for that method.
- Since:
- 1.5
- Version:
- $Id: EventHandlerUtil.java 685685 2008-08-13 21:43:27Z nbubna $
- Author:
- Will Glass-Husain
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
includeEvent
(RuntimeServices rsvc, InternalContextAdapter context, String includeResourcePath, String currentResourcePath, String directiveName) Called when an include-type directive is encountered (#include or #parse).static Object
invalidGetMethod
(RuntimeServices rsvc, InternalContextAdapter context, String reference, Object object, String property, Info info) Called when an invalid get method is encountered.static Object
invalidMethod
(RuntimeServices rsvc, InternalContextAdapter context, String reference, Object object, String method, Info info) Called when an invalid method is encountered.static Object
invalidReferenceHandlerCall
(EventHandlerMethodExecutor methodExecutor, RuntimeServices rsvc, InternalContextAdapter context) Calls event handler method with appropriate chaining across event handlers.static void
invalidSetMethod
(RuntimeServices rsvc, InternalContextAdapter context, String leftreference, String rightreference, Info info) Called when an invalid set method is encountered.static Object
methodException
(RuntimeServices rsvc, InternalContextAdapter context, Class claz, String method, Exception e) Called when a method exception is generated during Velocity merge.static Object
referenceInsert
(RuntimeServices rsvc, InternalContextAdapter context, String reference, Object value) Called before a reference is inserted.static boolean
shouldLogOnNullSet
(RuntimeServices rsvc, InternalContextAdapter context, String lhs, String rhs) Called when a null is evaluated during a #set.
-
Constructor Details
-
EventHandlerUtil
public EventHandlerUtil()
-
-
Method Details
-
referenceInsert
public static Object referenceInsert(RuntimeServices rsvc, InternalContextAdapter context, String reference, Object value) Called before a reference is inserted. All event handlers are called in sequence. The default implementation inserts the reference as is. This is a major hotspot method called by ASTReference render.- Parameters:
reference
- reference from template about to be insertedvalue
- value about to be inserted (after toString() )rsvc
- current instance of RuntimeServicescontext
- The internal context adapter.- Returns:
- Object on which toString() should be called for output.
-
shouldLogOnNullSet
public static boolean shouldLogOnNullSet(RuntimeServices rsvc, InternalContextAdapter context, String lhs, String rhs) Called when a null is evaluated during a #set. All event handlers are called in sequence until a false is returned. The default implementation always returns true.- Parameters:
lhs
- Left hand side of the expression.rhs
- Right hand side of the expression.rsvc
- current instance of RuntimeServicescontext
- The internal context adapter.- Returns:
- true if to be logged, false otherwise
-
methodException
public static Object methodException(RuntimeServices rsvc, InternalContextAdapter context, Class claz, String method, Exception e) throws Exception Called when a method exception is generated during Velocity merge. Only the first valid event handler in the sequence is called. The default implementation simply rethrows the exception.- Parameters:
claz
- Class that is causing the exceptionmethod
- method called that causes the exceptione
- Exception thrown by the methodrsvc
- current instance of RuntimeServicescontext
- The internal context adapter.- Returns:
- Object to return as method result
- Throws:
Exception
- to be wrapped and propogated to app
-
includeEvent
public static String includeEvent(RuntimeServices rsvc, InternalContextAdapter context, String includeResourcePath, String currentResourcePath, String directiveName) Called when an include-type directive is encountered (#include or #parse). All the registered event handlers are called unless null is returned. The default implementation always processes the included resource.- Parameters:
includeResourcePath
- the path as given in the include directive.currentResourcePath
- the path of the currently rendering template that includes the include directive.directiveName
- name of the directive used to include the resource. (With the standard directives this is either "parse" or "include").rsvc
- current instance of RuntimeServicescontext
- The internal context adapter.- Returns:
- a new resource path for the directive, or null to block the include from occurring.
-
invalidGetMethod
public static Object invalidGetMethod(RuntimeServices rsvc, InternalContextAdapter context, String reference, Object object, String property, Info info) Called when an invalid get method is encountered.- Parameters:
rsvc
- current instance of RuntimeServicescontext
- the context when the reference was found invalidreference
- complete invalid referenceobject
- object from reference, or null if not availableproperty
- name of property, or null if not relevantinfo
- contains info on template, line, col- Returns:
- substitute return value for missing reference, or null if no substitute
-
invalidSetMethod
public static void invalidSetMethod(RuntimeServices rsvc, InternalContextAdapter context, String leftreference, String rightreference, Info info) Called when an invalid set method is encountered.- Parameters:
rsvc
- current instance of RuntimeServicescontext
- the context when the reference was found invalidleftreference
- left reference being assigned torightreference
- invalid reference on the rightinfo
- contains info on template, line, col
-
invalidMethod
public static Object invalidMethod(RuntimeServices rsvc, InternalContextAdapter context, String reference, Object object, String method, Info info) Called when an invalid method is encountered.- Parameters:
rsvc
- current instance of RuntimeServicescontext
- the context when the reference was found invalidreference
- complete invalid referenceobject
- object from reference, or null if not availablemethod
- name of method, or null if not relevantinfo
- contains info on template, line, col- Returns:
- substitute return value for missing reference, or null if no substitute
-
invalidReferenceHandlerCall
public static Object invalidReferenceHandlerCall(EventHandlerMethodExecutor methodExecutor, RuntimeServices rsvc, InternalContextAdapter context) Calls event handler method with appropriate chaining across event handlers.- Parameters:
methodExecutor
-rsvc
- current instance of RuntimeServicescontext
- The current context- Returns:
- return value from method, or null if no return value
-