[
https://issues.jboss.org/browse/CDI-271?page=com.atlassian.jira.plugin.sy...
]
Pete Muir commented on CDI-271:
-------------------------------
I'm not sure that it's right to reuse InjectionPoint, as it has other stuff on it
that perhaps doesn't make sense (e.g. what do getMember() return, getAnnotated() ,
isDelegate() and isTransient() return)? And also, the case of doing the fire via
BeanManager would not fit well.
How about introducing
{code}
public interface EventCaller {
public Set<Annotation> getEventQualifiers();
public Type getEventType();
}
Which could be injected into an event observer?
Provide a way to inject Event metadata into an observer method
--------------------------------------------------------------
Key: CDI-271
URL:
https://issues.jboss.org/browse/CDI-271
Project: CDI Specification Issues
Issue Type: Feature Request
Components: Events
Reporter: Arne Limburg
Fix For: 1.1 (Proposed)
Currently there is no way for observer methods to access the qualifiers of the fired
event (i.e. to access @Nonbinding members).
Consider the following example:
{code}
@Inject @MyQualifier
Event<MyObject> event;
public void fireEvent(MyObject object, MyTypeValue type) {
event.select(new MyTypeAnnotationLiteral(type)).fire(object);
}
{code}
Currently no observer can receive the value of MyTypeValue. I suggest to introduce an
interface AnnotatedEvent that extends Annotated and contains this information. It then
could be injected via the InjectionPoint like this:
{code}
public void observeEvent(@Observes @MyType MyObject object, InjectionPoint ip) {
MyType annotation = ip.getAnnotated().getAnnotation(MyType.class);
MyTypeValue value = annotation.value();
...
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira