/** * same as {@link SwitchCase} but it emits only one item which is the result of the * {@link Function} mapped to the key matching the first emitted value *

* sample code : *

* {@code List list = Arrays.asList(1, 2, 3, 4);}
* {@code Map> caseBlocks = new HashMap<>(2);}
* {@code caseBlocks.put(2, (i) -> "TWO SELECTED");}
* {@code caseBlocks.put(3, (i) -> "THREE SELECTED");}
*

* {@code Observable.fromIterable(list)}
* {@code .lift(new SwitchCaseBreak<>(caseBlocks))}
* {@code .subscribe(System.out::println);}
*

* // result :
* TWO SELECTED
*/ public class SwitchCaseBreak extends SwitchCase { public SwitchCaseBreak(Map> caseBlocks) { super(caseBlocks); } @Override void invokeOnNext(Observer observer, R onNextValue) { super.invokeOnNext(observer, onNextValue); caseBlocks.clear(); } }