Home » xwork-2.1.5 » com.opensymphony » xwork2 » interceptor » [javadoc | source]
com.opensymphony.xwork2.interceptor
public class: PrefixMethodInvocationUtil [javadoc | source]
java.lang.Object
   com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil
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 com.opensymphony.xwork2.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.
Method from com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil Summary:
capitalizeMethodName,   getPrefixedMethod,   invokePrefixMethod
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil Detail:
 public static String capitalizeMethodName(String methodName) 
    This method capitalized the first character of methodName.
    eg. capitalizeMethodName("someMethod"); will return "SomeMethod".
 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.
 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.