code: @SuppressWarnings("unchecked")
      public final static <R> JoinObservable<R> when(Plan0<R> p1) {
          return from(Observable.create(OperatorJoinPatterns.when(p1)));
      }
docs: Joins the results from a pattern via its plan.
  <p>
  <img width="640" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/and_then_when.png" alt="">
  
  @param p1
  the plan to join, created by use of the {@link #then} Observer on a pattern
  @return an Observable that emits the results from matching a pattern
  @see <a href="https://github.com/ReactiveX/RxJava/wiki/Combining-Observables#wiki-and-then-and-when">RxJava Wiki: when()</a>
  @see <a href="http://msdn.microsoft.com/en-us/library/hh229889.aspx">MSDN: Observable.When</a>