title: What is the correct way to handle Stream filters in Reactor 2.0?
body: <p>I'm using Reactor 2.0.0.M1, and I'm trying to filter a <code>Stream</code>. Depending on the results of my boolean operation, I want to either continue with one or another stream. This seems to be possible with the <code>otherwise()</code> function, but its not exactly clear how to use it.</p>
  
  <p>My Stream looks something like this:</p>
  
  <pre><code>stream.filter(o -&gt; o.isValid());
  </code></pre>
  
  <p>To handle the case where <code>o.isValid()</code> is true, my understanding is I can just call <code>.map()</code> to continue down the stream.</p>
  
  <p>To handle the case where <code>o.isValid()</code> is false, I can access the alternate <code>.otherwise()</code> stream.</p>
  
  <p>But there doesn't seem to be an <code>or()</code> or similar method, so it doesn't seem possible to configure both streams in a completely fluid way.</p>
  
  <p>The best I can come up with is something like this:</p>
  
  <pre><code>FilterAction&lt;Object&gt; filterAction = stream.filter(o -&gt; o.isValid());
  
  // Returns a 'true' Stream, which might additional operations
  filterAction
      .map(o -&gt; trueOperation1(o))
      .map(o -&gt; trueOperation2(o));
  
  // Returns a 'false' Stream, which might different additional operations
  filterAction.otherwise()
      .map(o -&gt; falseOperation1(o))
      .map(o -&gt; falseOperation2(o));
  </code></pre>
  
  <p>Is that really the best way to proceed?</p>