com.opensymphony.xwork2.interceptor
Class PrefixMethodInvocationUtil

java.lang.Object
  extended by com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil

public class PrefixMethodInvocationUtil
extends Object

A utility class for invoking prefixed methods in action class. Interceptors that made use of this class are

In DefaultWorkflowInterceptor

applies only when action implements Validateable

  1. if the action class have validate{MethodName}(), it will be invoked
  2. else if the action class have validateDo{MethodName}(), it will be invoked
  3. no matter if 1] or 2] is performed, if alwaysInvokeValidate property of the interceptor is "true" (which is by default "true"), validate() will be invoked.
In PrepareInterceptor

Applies only when action implements Preparable

  1. if the action class have prepare{MethodName}(), it will be invoked
  2. else if the action class have prepareDo(MethodName()}(), it will be invoked
  3. no matter if 1] or 2] is performed, if alwaysinvokePrepare property of the interceptor is "true" (which is by default "true"), prepare() will be invoked.

Version:
$Date: 2006-11-23 21:33:15 +0100 (Do, 23 Nov 2006) $ $Id: PrefixMethodInvocationUtil.java 1223 2006-11-23 20:33:15Z rainerh $
Author:
Philip Luppens, tm_jee

Field Summary
private static Log _log
           
 
Constructor Summary
PrefixMethodInvocationUtil()
           
 
Method Summary
static String capitalizeMethodName(String methodName)
          This method capitalized the first character of methodName.
static Method getPrefixedMethod(String[] prefixes, String methodName, Object action)
          This method returns a Method in action.
static void invokePrefixMethod(ActionInvocation actionInvocation, String[] prefixes)
          This method will prefix actionInvocation's ActionProxy's method with prefixes before invoking the prefixed method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_log

private static final Log _log
Constructor Detail

PrefixMethodInvocationUtil

public PrefixMethodInvocationUtil()
Method Detail

invokePrefixMethod

public static void invokePrefixMethod(ActionInvocation actionInvocation,
                                      String[] prefixes)
                               throws InvocationTargetException,
                                      IllegalAccessException
This method will prefix actionInvocation's ActionProxy's method with prefixes before invoking the prefixed method. Order of the prefixes is important, as this method will return once a prefixed method is found in the action class.

For example, with

   invokePrefixMethod(actionInvocation, new String[] { "prepare", "prepareDo" });
 
Assuming actionInvocation.getProxy(),getMethod() returns "submit", the order of invocation would be as follows:-
  1. prepareSubmit()
  2. prepareDoSubmit()
If prepareSubmit() exists, it will be invoked and this method will return, prepareDoSubmit() will NOT be invoked.

On the other hand, if prepareDoSubmit() does not exists, and prepareDoSubmit() exists, it will be invoked.

If none of those two methods exists, nothing will be invoked.

Parameters:
actionInvocation -
prefixes -
Throws:
InvocationTargetException
IllegalAccessException

getPrefixedMethod

public static Method getPrefixedMethod(String[] prefixes,
                                       String methodName,
                                       Object action)
This method returns a Method in action. The method returned is found by searching for method in action whose method name is equals to the result of appending each prefixes to methodName. Only the first method found will be returned, hence the order of prefixes is important. If none is found this method will return null.

Parameters:
prefixes - the prefixes to prefix the methodName
methodName - the method name to be prefixed with prefixes
action - the action class of which the prefixed method is to be search for.
Returns:
a Method if one is found, else null.

capitalizeMethodName

public static String capitalizeMethodName(String methodName)
This method capitalized the first character of methodName.

eg.

   capitalizeMethodName("someMethod");
 
will return "SomeMethod".

Parameters:
methodName -
Returns:
String


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.