/**
  * Adds an event to this faces config document.
  *
  * @param event the event to add
  */
 public void addEvent(EventBean event) {
   if (event.getEventType() == null) {
     _warning("Missing event type");
   } else if (event.getEventListenerClass() == null) {
     _warning("Event \"" + event.getEventType() + "\" " + "has no listener class");
   } else if (event.getEventClass() == null) {
     _warning("Event \"" + event.getEventType() + "\" " + "has no event class");
   } else {
     event.attach(this);
     _events.put(event.getEventType(), event);
   }
 }
  private void runAssertionOutputSnapshot(
      Object[][] expectedType, Object[] rowValues, AtomicLong currentTime) {
    EPStatement stmt =
        epService
            .getEPAdministrator()
            .createEPL("select * from MyTable output snapshot every 1 second");
    stmt.addListener(listener);
    assertEventType(stmt.getEventType(), expectedType);

    currentTime.set(currentTime.get() + 1000L);
    epService.getEPRuntime().sendEvent(new CurrentTimeEvent(currentTime.get()));
    EventBean event = listener.assertOneGetNewAndReset();
    assertEventTypeAndEvent(event.getEventType(), expectedType, event.getUnderlying(), rowValues);
  }
  private void runAssertionJoinSelectStreamName(Object[][] expectedType, Object[] rowValues) {
    String joinEpl = "select mt from MyTable as mt, SupportBean_S2 where key = p20";
    EPStatement stmt = epService.getEPAdministrator().createEPL(joinEpl);
    stmt.addListener(listener);

    assertEventType(stmt.getEventType().getFragmentType("mt").getFragmentType(), expectedType);

    epService.getEPRuntime().sendEvent(new SupportBean_S2(0, "G1"));
    EventBean event = listener.assertOneGetNewAndReset();
    assertEventTypeAndEvent(
        event.getEventType().getFragmentType("mt").getFragmentType(),
        expectedType,
        event.get("mt"),
        rowValues);

    stmt.destroy();
  }
  private void runAssertionJoinSelectStreamStarUnnamed(
      Object[][] expectedType, Object[] rowValues) {
    String joinEpl = "select mt.* from MyTable as mt, SupportBean_S2 where key = p20";
    EPStatement stmt = epService.getEPAdministrator().createEPL(joinEpl);
    stmt.addListener(listener);
    stmt.setSubscriber(subscriber);

    assertEventType(stmt.getEventType(), expectedType);

    // listener assertion
    epService.getEPRuntime().sendEvent(new SupportBean_S2(0, "G1"));
    EventBean event = listener.assertOneGetNewAndReset();
    assertEventTypeAndEvent(event.getEventType(), expectedType, event.getUnderlying(), rowValues);

    // subscriber assertion
    Object[][] newData = subscriber.getAndResetIndicateArr().get(0).getFirst();
    assertEventUnd(newData[0][0], rowValues);

    stmt.destroy();
  }