org.qi4j.api.sideeffect.internal
Annotation Type SideEffectFor


@Retention(value=RUNTIME)
@Target(value={FIELD,PARAMETER})
@Documented
@InjectionScope
public @interface SideEffectFor

This annotation is required once in each SideEffect, to mark the field where the element providing the invocation result should be injected.

The type of the field must be of the same type as the SideEffect itself, or an InvocationHandler.

Example;


 public interface MyStuff
 {
     SomeResult doSomething();
 }
 

public class MyStuffSideEffect implements MyStuff { @SideEffectFor MyStuff next;

public SomeResult doSomething() { SomeResult result = next.doSomething();

// HERE DO THE SIDEEFFECT STUFF.

return result; // Result value is ignored, null would work too. } }