Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. public class RxBus {
  2. private final Map<Class, PublishSubject> subjects = new HashMap<>();
  3.  
  4. @SuppressWarnings("unchecked")
  5. public synchronized <T> void emit(final T value) {
  6. for (Class clazz = value.getClass(); clazz != null; clazz = clazz.getSuperclass()) {
  7. onGetOrCreateStream(clazz).onNext(value);
  8. }
  9. }
  10.  
  11. @SuppressWarnings("unchecked")
  12. public synchronized <T> Observable<T> stream(final Class<T> clazz) {
  13. return onGetOrCreateStream(clazz);
  14. }
  15.  
  16. @SuppressWarnings("unchecked")
  17. private <T> PublishSubject<T> onGetOrCreateStream(final Class<T> clazz) {
  18. if (!subjects.containsKey(clazz)) {
  19. subjects.put(clazz, PublishSubject.<T>create());
  20. }
  21. return subjects.get(clazz);
  22. }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement