Package org.apache.velocity.app.event
Class EventHandlerUtil
- java.lang.Object
-
- org.apache.velocity.app.event.EventHandlerUtil
-
public class EventHandlerUtil extends java.lang.Object
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 Constructor Description EventHandlerUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
includeEvent(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String includeResourcePath, java.lang.String currentResourcePath, java.lang.String directiveName)
Called when an include-type directive is encountered (#include or #parse).static java.lang.Object
invalidGetMethod(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String reference, java.lang.Object object, java.lang.String property, Info info)
Called when an invalid get method is encountered.static java.lang.Object
invalidMethod(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String reference, java.lang.Object object, java.lang.String method, Info info)
Called when an invalid method is encountered.static java.lang.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, java.lang.String leftreference, java.lang.String rightreference, Info info)
Called when an invalid set method is encountered.static java.lang.Object
methodException(RuntimeServices rsvc, InternalContextAdapter context, java.lang.Class claz, java.lang.String method, java.lang.Exception e)
Called when a method exception is generated during Velocity merge.static java.lang.Object
referenceInsert(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String reference, java.lang.Object value)
Called before a reference is inserted.static boolean
shouldLogOnNullSet(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String lhs, java.lang.String rhs)
Called when a null is evaluated during a #set.
-
-
-
Method Detail
-
referenceInsert
public static java.lang.Object referenceInsert(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String reference, java.lang.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, java.lang.String lhs, java.lang.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 java.lang.Object methodException(RuntimeServices rsvc, InternalContextAdapter context, java.lang.Class claz, java.lang.String method, java.lang.Exception e) throws java.lang.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:
java.lang.Exception
- to be wrapped and propogated to app
-
includeEvent
public static java.lang.String includeEvent(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String includeResourcePath, java.lang.String currentResourcePath, java.lang.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 java.lang.Object invalidGetMethod(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String reference, java.lang.Object object, java.lang.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, java.lang.String leftreference, java.lang.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 java.lang.Object invalidMethod(RuntimeServices rsvc, InternalContextAdapter context, java.lang.String reference, java.lang.Object object, java.lang.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 java.lang.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
-
-