/*
 * Copyright 2008 Niclas Hedhman. All rights Reserved.
 *
 * Licensed  under the  Apache License,  Version 2.0  (the "License");
 * you may not use  this file  except in  compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed  under the  License is distributed on an "AS IS" BASIS,
 * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
 * implied.
 *
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */
package org.qi4j.composite;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * Base class for generic SideEffects.
 */
public abstract class GenericSideEffect extends SideEffectOf<InvocationHandler>
    implements InvocationHandler
{
    public Object invoke( Object o, Method method, Object[] objects ) throws Throwable
    {
        invoke( method, objects );
        return null;
    }

    /**
     * Override this method to avoid having to do "return null;" in the code
     *
     * @param method  the method that was invoked
     * @param objects the arguments of the method invocation
     */
    protected void invoke( Method method, Object[] objects )
    {
    }
}
@@ -899,16 +899,54 @@
 andler%0A%7B
+%0A%0A    /**%0A     * %7B@inheritDoc%7D%0A     */
 %0A    pub
@@ -963,24 +963,30 @@
  invoke(
+ final
  Object 
 o, Metho
@@ -981,10 +981,20 @@
 ect 
-o,
+proxy, final
  Met
@@ -996,32 +996,38 @@
 l Method method,
+ final
  Object%5B%5D object
@@ -1020,25 +1020,30 @@
 bject%5B%5D 
-objects )
+args )%0A       
  throws 
@@ -1082,22 +1082,19 @@
 method, 
-object
+arg
 s );%0A   
@@ -1137,77 +1137,165 @@
   * 
-Override this method to avoid having to do %22
+Convenience method to be overridden by subclasses in order to avoid 
 return
+ing
  null
-;%22 in the code
+, as returned value from side%0A     * effects is not taken in consideration.
 %0A   
@@ -1319,17 +1319,16 @@
  method 
- 
 the meth
@@ -1365,54 +1365,853 @@
 ram 
-objects the arguments of the method invocation
+args   the arguments of the method invocation%0A     * @throws Throwable - the exception to throw from the method invocation on the proxy instance. The exception's type%0A     *                   must be assignable either to any of the exception types declared in the throws clause of the%0A     *                   interface method or to the unchecked exception types %7Bcode%7Djava.lang.RuntimeException%7Bcode%7D%0A     *                   or %7Bcode%7Djava.lang.Error%7Bcode%7D. If a checked exception is thrown by this method that is not%0A     *                   assignable to any of the exception types declared in the throws clause of the interface method,%0A     *                   then an UndeclaredThrowableException containing the exception that was thrown by this method%0A     *                   will be thrown by the method invocation on the proxy instance.
 %0A   
@@ -2241,16 +2241,22 @@
  invoke(
+ final
  Method 
@@ -2262,16 +2262,22 @@
  method,
+ final
  Object%5B
@@ -2282,17 +2282,39 @@
 t%5B%5D 
-objects )
+args )%0A        throws Throwable
 %0A   
@@ -2322,9 +2322,10 @@
 %7B%0A    %7D%0A
+%0A
 %7D

Change arguments names. Change JavaDoc.