super(decoratesWith);
}
@Override
public String generateDecorator(InjectionPoint<Observes> injectionPoint) {
final InjectionContext ctx = injectionPoint.getInjectionContext();
final JMethod method = injectionPoint.getMethod();
final JParameter parm = injectionPoint.getParm();
String parmClassName = parm.getType().getQualifiedSourceName();
String varName = injectionPoint.getInjector().getVarName();
// Get an instance of the message bus.
final String messageBusInst = ctx.getInjector(ctx
.getProcessingContext().loadClassType(MessageBus.class)).getType(ctx, injectionPoint);
return messageBusInst + ".subscribe(\"cdi.event:" + parmClassName + "\", new " + MessageCallback.class.getName() + "() {\n" +
" public void callback(" + Message.class.getName() + " message) {\n" +
" java.lang.Object response = message.get(" + parmClassName + ".class, " + CDIProtocol.class.getName() + "." + CDIProtocol.OBJECT_REF.name() + ");\n" +