org.apache.velocity.app.event
Class EventHandlerUtil

java.lang.Object
  extended by org.apache.velocity.app.event.EventHandlerUtil

public class EventHandlerUtil
extends 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
EventHandlerUtil()
           
 
Method Summary
static 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EventHandlerUtil

public EventHandlerUtil()
Method Detail

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 inserted
value - value about to be inserted (after toString() )
rsvc - current instance of RuntimeServices
context - 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 RuntimeServices
context - 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 exception
method - method called that causes the exception
e - Exception thrown by the method
rsvc - current instance of RuntimeServices
context - 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 RuntimeServices
context - 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 RuntimeServices
context - the context when the reference was found invalid
reference - complete invalid reference
object - object from reference, or null if not available
property - name of property, or null if not relevant
info - 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 RuntimeServices
context - the context when the reference was found invalid
leftreference - left reference being assigned to
rightreference - invalid reference on the right
info - 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 RuntimeServices
context - the context when the reference was found invalid
reference - complete invalid reference
object - object from reference, or null if not available
method - name of method, or null if not relevant
info - 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 RuntimeServices
context - The current context
Returns:
return value from method, or null if no return value


Copyright © 2000-2010 The Apache Software Foundation. All Rights Reserved.