[
https://issues.jboss.org/browse/CDI-271?page=com.atlassian.jira.plugin.sy...
]
Arne Limburg commented on CDI-271:
----------------------------------
Just saw, that section 5.5.7 already is changed so that Instance.get() is an injection
point.
For this issue it would suffice to add Event.fire() here and to clarify that for
Instance.select(...).get() and Event.select(...).fire(...) the InjectionPoint.getType()
returns the selected type and InjectionPoint.getQualifiers() contains the selected
qualifiers. We don't have to touch the Annotated then.
WDYT?
Shall I write a proposal?
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