Package org.apache.velocity.app.event

# Class EventHandlerUtil

java.lang.Object
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$
Author:
  Will Glass-Husain

## Constructor Summary

Constructors
Constructor
Description
`EventHandlerUtil()`

## Method Summary

Modifier and Type
Method
Description
`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 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, Info info)`
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.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## 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:
  `rsvc` - current instance of RuntimeServices
  `context` - The internal context adapter.
  `reference` - reference from template about to be inserted
  `value` - value about to be inserted (after toString() )
Returns:
  Object on which toString() should be called for output.

### methodException

public static Object methodException(RuntimeServices rsvc, InternalContextAdapter context, Class<?> claz, String method, Exception e, Info info) 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:
  `rsvc` - current instance of RuntimeServices
  `context` - The internal context adapter.
  `claz` - Class that is causing the exception
  `method` - method called that causes the exception
  `e` - Exception thrown by the method
  `info` - exception location informations
Returns:
  Object to return as method result
Throws:
  `Exception` - to be wrapped and propagated 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:
  `rsvc` - current instance of RuntimeServices
  `context` - The internal context adapter.
  `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").
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