public void result(
      EventBean[] row,
      int fromStreamNum,
      EventBean myEvent,
      Node myNode,
      Collection<EventBean[]> resultFinalRows,
      EventBean resultRootEvent) {
    row[streamNum] = myEvent;
    Node parentResultNode = myNode.getParent();
    parentNode.result(
        row,
        streamNum,
        myNode.getParentEvent(),
        parentResultNode,
        resultFinalRows,
        resultRootEvent);

    // record the fact that an event that was generated by a child
    haveChildResults = true;

    // If we had more then on result event for this stream, we need to track all the different
    // events
    // generated by the child node
    if (singleResultNode == null) {
      completedEvents.add(myEvent);
    }
  }
 private void processEvent(
     EventBean theEvent,
     Node currentNode,
     Collection<EventBean[]> resultFinalRows,
     EventBean resultRootEvent) {
   EventBean[] row = new EventBean[numStreams];
   row[streamNum] = theEvent;
   parentNode.result(
       row,
       streamNum,
       currentNode.getParentEvent(),
       currentNode.getParent(),
       resultFinalRows,
       resultRootEvent);
 }