Thank you very much for solving this issue. We're having many similar views, so we stuff most of logic into parametrized abstract superclass. Until now we had to overwrite all observer methods (~5 methods per class) in each concrete class just to put @Observes on them.
I have a question though:
public abstract class AbstractDetailsView<E> implements Serializable {
public void select(@Observes(notifyObserver = Reception.IF_EXISTS) @EntitySelected final E entity){...}
}
public abstract class AbstractTranslatableDetailsView<E extends Translatable<T>, T> extends AbstractDetailsView<E> {
@Override
public void select(E entity){super.select(entity);...}
}
public class CityDetailsView extends AbstractTranslatableDetailsView<City, CityTranslation> implements Serializable {}
public class ConcertDetailsView extends AbstractDetailsView<Concert> implements Serializable {}
Now, when I get injected @EntitySelected Event<Concert> concertSelectedEvent, then concertSelectedEvent.fire(new Concert()) gets observed by ConcertDetailsView.
But when I get injected @EntitySelected Event<City> citySelectedEvent, then citySelectedEvent.fire(new City()) DOES NOT get observed by CityDetailsView.
I guess it's because AbstractTranslatableDetailsView.select(E entity) does not have @Observes and signature of AbstractDetailsView.select is ignored.
Is this as expected?
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
Thank you very much for solving this issue. We're having many similar views, so we stuff most of logic into parametrized abstract superclass. Until now we had to overwrite all observer methods (~5 methods per class) in each concrete class just to put @Observes on them.
I have a question though:
public abstract class AbstractDetailsView<E> implements Serializable {
public void select(@Observes(notifyObserver = Reception.IF_EXISTS) @EntitySelected final E entity){...}
}
public abstract class AbstractTranslatableDetailsView<E extends Translatable<T>, T> extends AbstractDetailsView<E> {
@Override
public void select(E entity){super.select(entity);...}
}
public class CityDetailsView extends AbstractTranslatableDetailsView<City, CityTranslation> implements Serializable {}
public class ConcertDetailsView extends AbstractDetailsView<Concert> implements Serializable {}
Now, when I get injected @EntitySelected Event<Concert> concertSelectedEvent, then concertSelectedEvent.fire(new Concert()) gets observed by ConcertDetailsView.
But when I get injected @EntitySelected Event<City> citySelectedEvent, then citySelectedEvent.fire(new City()) DOES NOT get observed by CityDetailsView.
I guess it's because AbstractTranslatableDetailsView.select(E entity) does not have @Observes and signature of AbstractDetailsView.select is ignored.
Is this as expected?