@Override public Observable<String> apply(GroupedObservable<Integer, Event> eventGroupedObservable) { System.out.println("testUnsubscribe => GroupedObservable Key: " + eventGroupedObservable.getKey()); groupCounter.incrementAndGet(); return eventGroupedObservable .take(20) // limit to only 20 events on this group .map(new Function<Event, String>() { @Override public String apply(Event event) { return "testUnsubscribe => Source: " + event.source + " Message: " + event.message; } }); } }).subscribe(new DefaultObserver<String>() {
@Override public Observable<String> apply(final GroupedObservable<String, String> g) { System.out.println("-----------> NEXT: " + g.getKey()); return g.take(2).map(new Function<String, String>() { int count; @Override public String apply(String v) { System.out.println(v); return g.getKey() + "-" + count++; } }); } });
@Override public Observable<String> apply(final GroupedObservable<Boolean, Integer> g) { return g.take(2).observeOn(Schedulers.computation()).map(new Function<Integer, String>() { @Override public String apply(Integer l) { if (g.getKey()) { try { Thread.sleep(1); } catch (InterruptedException e) { } return l + " is even."; } else { return l + " is odd."; } } }); }
@Override public Observable<String> apply(GroupedObservable<Integer, Event> eventGroupedObservable) { int numToTake = 0; if (eventGroupedObservable.getKey() == 1) { numToTake = 10; } else if (eventGroupedObservable.getKey() == 2) { numToTake = 5; } return eventGroupedObservable .take(numToTake) .map(new Function<Event, String>() { @Override public String apply(Event event) { return "testUnsubscribe => Source: " + event.source + " Message: " + event.message; } }); } })