Class PrefixMethodInvocationUtil
Interceptors that made use of this class are:
- DefaultWorkflowInterceptor
- PrepareInterceptor
In DefaultWorkflowInterceptor
applies only when action implements Validateable
- if the action class have validate{MethodName}(), it will be invoked
- else if the action class have validateDo{MethodName}(), it will be invoked
- 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
- if the action class have prepare{MethodName}(), it will be invoked
- else if the action class have prepareDo(MethodName()}(), it will be invoked
- 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.
- Author:
- Philip Luppens, tm_jee
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
capitalizeMethodName
(String methodName) This method capitalized the first character ofmethodName
.static Method
getPrefixedMethod
(String[] prefixes, String methodName, Object action) This method returns aMethod
inaction
.static void
invokePrefixMethod
(ActionInvocation actionInvocation, String[] prefixes) This method will prefixactionInvocation
'sActionProxy
'smethod
withprefixes
before invoking the prefixed method.
-
Constructor Details
-
PrefixMethodInvocationUtil
public PrefixMethodInvocationUtil()
-
-
Method Details
-
invokePrefixMethod
public static void invokePrefixMethod(ActionInvocation actionInvocation, String[] prefixes) throws InvocationTargetException, IllegalAccessException This method will prefix
actionInvocation
'sActionProxy
'smethod
withprefixes
before invoking the prefixed method. Order of theprefixes
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:-- prepareSubmit()
- 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, andprepareDoSubmit()
exists, it will be invoked.If none of those two methods exists, nothing will be invoked.
- Parameters:
actionInvocation
- the action invocationprefixes
- prefixes for method names- Throws:
InvocationTargetException
- is thrown if invocation of a method failed.IllegalAccessException
- is thrown if invocation of a method failed.
-
getPrefixedMethod
This method returns aMethod
inaction
. The method returned is found by searching for method inaction
whose method name is equals to the result of appending eachprefixes
tomethodName
. Only the first method found will be returned, hence the order ofprefixes
is important. If none is found this method will return null.- Parameters:
prefixes
- the prefixes to prefix themethodName
methodName
- the method name to be prefixed withprefixes
action
- the action class of which the prefixed method is to be search for.- Returns:
- a
Method
if one is found, else null.
-
capitalizeMethodName
This method capitalized the first character of
methodName
.
eg.capitalizeMethodName("someMethod");
will return"SomeMethod"
.- Parameters:
methodName
- the method name- Returns:
- capitalized method name
-