Class EventExample

java.lang.Object
org.slf4j.helpers.MarkerIgnoringBase
org.apache.velocity.example.EventExample
All Implemented Interfaces:
Serializable, EventHandler, InvalidReferenceEventHandler, MethodExceptionEventHandler, ReferenceInsertionEventHandler, org.slf4j.Logger

public class EventExample extends org.slf4j.helpers.MarkerIgnoringBase implements ReferenceInsertionEventHandler, MethodExceptionEventHandler, InvalidReferenceEventHandler
This class is a simple demonstration of how the event handling features of the Velocity Servlet Engine are used. It uses a custom logger as well to check the log message stream when testing the InvalidReferenceEventHandler.
Version:
$Id$
Author:
Geir Magnusson Jr.
See Also:
  • Field Details

  • Constructor Details

    • EventExample

      public EventExample()
  • Method Details

    • main

      public static void main(String[] args)
    • throwException

      public void throwException() throws Exception
      silly method to throw an exception to demonstrate the method invocation exception event handling
      Throws:
      Exception
    • referenceInsert

      public Object referenceInsert(Context context, String reference, Object value)
      Event handler for when a reference is inserted into the output stream.
      Specified by:
      referenceInsert in interface ReferenceInsertionEventHandler
      Parameters:
      context - current context
      reference - Reference from template about to be inserted.
      value - Value about to be inserted (after its toString() method is called).
      Returns:
      Object on which toString() should be called for output.
    • invalidGetMethod

      public Object invalidGetMethod(Context context, String reference, Object object, String property, Info info)
      Description copied from interface: InvalidReferenceEventHandler
      Called when object is null or there is no getter for the given property. Also called for invalid references without properties. invalidGetMethod() will be called in sequence for each link in the chain until the first non-null value is returned.
      Specified by:
      invalidGetMethod in interface InvalidReferenceEventHandler
      Parameters:
      context - the context when the reference was found invalid
      reference - string with complete invalid reference
      object - the object referred to, or null if not found
      property - the property name from the reference
      info - contains template, line, column details
      Returns:
      substitute return value for missing reference, or null if no substitute
    • invalidMethod

      public Object invalidMethod(Context context, String reference, Object object, String method, Info info)
      Description copied from interface: InvalidReferenceEventHandler
      Called when object is null or the given method does not exist. invalidMethod() will be called in sequence for each link in the chain until the first non-null value is returned.
      Specified by:
      invalidMethod in interface InvalidReferenceEventHandler
      Parameters:
      context - the context when the reference was found invalid
      reference - string with complete invalid reference
      object - the object referred to, or null if not found
      method - the name of the (non-existent) method
      info - contains template, line, column details
      Returns:
      substitute return value for missing reference, or null if no substitute
    • invalidSetMethod

      public boolean invalidSetMethod(Context context, String leftreference, String rightreference, Info info)
      Event handler for when the right hand side of a #set() directive is null, which results in a log message. This method gives the application a chance to 'vote' on msg generation
      Specified by:
      invalidSetMethod in interface InvalidReferenceEventHandler
      Parameters:
      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
      Returns:
      if true then stop calling invalidSetMethod along the chain.
    • methodException

      public Object methodException(Context context, Class claz, String method, Exception e, Info info)
      Description copied from interface: MethodExceptionEventHandler
      Called when a method throws an exception. Only the first registered MethodExceptionEventHandler is called. If none are registered a MethodInvocationException is thrown.
      Specified by:
      methodException in interface MethodExceptionEventHandler
      Parameters:
      context - current context
      claz - the class of the object the method is being applied to
      method - the method
      e - the thrown exception
      info - contains template, line, column details
      Returns:
      an object to insert in the page
    • log

      public void log(int level, String message)
      This just prints the message and level to System.out.
    • log

      public void log(int level, String message, Throwable t)
      This prints the level, message, and the Throwable's message to System.out.
    • formatAndLog

      public void formatAndLog(int level, String format, Object... arguments)
      This prints the level and formatted message to System.out.
    • isLevelEnabled

      public boolean isLevelEnabled(int level)
      This always returns true because logging levels can't be disabled in this impl.
    • getName

      public String getName()
      Required init methods for Logger interface
      Specified by:
      getName in interface org.slf4j.Logger
    • isTraceEnabled

      public boolean isTraceEnabled()
      Specified by:
      isTraceEnabled in interface org.slf4j.Logger
    • trace

      public void trace(String msg)
      Specified by:
      trace in interface org.slf4j.Logger
    • trace

      public void trace(String format, Object param1)
      Specified by:
      trace in interface org.slf4j.Logger
    • trace

      public void trace(String format, Object param1, Object param2)
      Specified by:
      trace in interface org.slf4j.Logger
    • trace

      public void trace(String format, Object... argArray)
      Specified by:
      trace in interface org.slf4j.Logger
    • trace

      public void trace(String msg, Throwable t)
      Specified by:
      trace in interface org.slf4j.Logger
    • isDebugEnabled

      public boolean isDebugEnabled()
      Specified by:
      isDebugEnabled in interface org.slf4j.Logger
    • debug

      public void debug(String msg)
      Specified by:
      debug in interface org.slf4j.Logger
    • debug

      public void debug(String format, Object param1)
      Specified by:
      debug in interface org.slf4j.Logger
    • debug

      public void debug(String format, Object param1, Object param2)
      Specified by:
      debug in interface org.slf4j.Logger
    • debug

      public void debug(String format, Object... argArray)
      Specified by:
      debug in interface org.slf4j.Logger
    • debug

      public void debug(String msg, Throwable t)
      Specified by:
      debug in interface org.slf4j.Logger
    • isInfoEnabled

      public boolean isInfoEnabled()
      Specified by:
      isInfoEnabled in interface org.slf4j.Logger
    • info

      public void info(String msg)
      Specified by:
      info in interface org.slf4j.Logger
    • info

      public void info(String format, Object arg)
      Specified by:
      info in interface org.slf4j.Logger
    • info

      public void info(String format, Object arg1, Object arg2)
      Specified by:
      info in interface org.slf4j.Logger
    • info

      public void info(String format, Object... argArray)
      Specified by:
      info in interface org.slf4j.Logger
    • info

      public void info(String msg, Throwable t)
      Specified by:
      info in interface org.slf4j.Logger
    • isWarnEnabled

      public boolean isWarnEnabled()
      Specified by:
      isWarnEnabled in interface org.slf4j.Logger
    • warn

      public void warn(String msg)
      Specified by:
      warn in interface org.slf4j.Logger
    • warn

      public void warn(String format, Object arg)
      Specified by:
      warn in interface org.slf4j.Logger
    • warn

      public void warn(String format, Object arg1, Object arg2)
      Specified by:
      warn in interface org.slf4j.Logger
    • warn

      public void warn(String format, Object... argArray)
      Specified by:
      warn in interface org.slf4j.Logger
    • warn

      public void warn(String msg, Throwable t)
      Specified by:
      warn in interface org.slf4j.Logger
    • isErrorEnabled

      public boolean isErrorEnabled()
      Specified by:
      isErrorEnabled in interface org.slf4j.Logger
    • error

      public void error(String msg)
      Specified by:
      error in interface org.slf4j.Logger
    • error

      public void error(String format, Object arg)
      Specified by:
      error in interface org.slf4j.Logger
    • error

      public void error(String format, Object arg1, Object arg2)
      Specified by:
      error in interface org.slf4j.Logger
    • error

      public void error(String format, Object... argArray)
      Specified by:
      error in interface org.slf4j.Logger
    • error

      public void error(String msg, Throwable t)
      Specified by:
      error in interface org.slf4j.Logger
    • readResolve

      protected Object readResolve() throws ObjectStreamException
      Throws:
      ObjectStreamException