public Consumer(EPServiceProvider epsp) { EPStatement statement = epsp.getEPAdministrator().createEPL(input); statement.setSubscriber(this); } public void update(A event) { System.out.println("Consumer received event!"); }
/** * Sets the native Esper statement. Typically created by an Esper Template. * * @param epStatement * the underlying native Esper statement * @see org.opencredo.esper.EsperTemplate */ void setEPStatement(EPStatement epStatement) { this.epStatement = epStatement; if (this.subscriber != null) { epStatement.setSubscriber(this.subscriber); } else { for (UpdateListener listener : listeners) { epStatement.addListener(listener); } } }
private void subscribe(Object listener, Method method, EPStatement statement) { statement.setSubscriber(new Listener(listener, method, statement.getText())); }
/** * EPL to check for 2 consecutive Temperature events over the threshold - if matched, will alert * listener. */ private void createWarningTemperatureCheckExpression() { LOG.debug("create Warning Temperature Check Expression"); warningEventStatement = epService.getEPAdministrator().createEPL(warningEventSubscriber.getStatement()); warningEventStatement.setSubscriber(warningEventSubscriber); }
/** * EPL to monitor the average temperature every 10 seconds. Will call listener on every event. */ private void createTemperatureMonitorExpression() { LOG.debug("create Timed Average Monitor"); monitorEventStatement = epService.getEPAdministrator().createEPL(monitorEventSubscriber.getStatement()); monitorEventStatement.setSubscriber(monitorEventSubscriber); }
/** * EPL to check for a sudden critical rise across 4 events, where the last event is 1.5x greater * than the first event. This is checking for a sudden, sustained escalating rise in the * temperature */ private void createCriticalTemperatureCheckExpression() { LOG.debug("create Critical Temperature Check Expression"); criticalEventStatement = epService.getEPAdministrator().createEPL(criticalEventSubscriber.getStatement()); criticalEventStatement.setSubscriber(criticalEventSubscriber); }
@Override public void feedTriggers(TriggerList triggerList) { log.debug("TriggerListEPE:{}", triggerList); List<String> conditions = new ArrayList<>(); for (Trigger t : triggerList.getTriggers()) { conditions.add(t.getTriggerCondition()); } log.debug("conditions:{}", conditions); List<EPStatement> epStatements = new ArrayList<>(); subscriber = new Subscriber(); for (String theCondition : conditions) { epStatement = epService.getEPAdministrator().createEPL(subscriber.getStatement(theCondition)); epStatement.setSubscriber(subscriber); epStatements.add(epStatement); log.debug("statement:{}", epStatement.getText()); } }
private void processAnnotations(EPStatement statement) throws Exception { Annotation[] annotations = statement.getAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Subscriber) { Subscriber subscriber = (Subscriber) annotation; Object obj = getSubscriber(subscriber.className()); statement.setSubscriber(obj); } else if (annotation instanceof Listeners) { Listeners listeners = (Listeners) annotation; for (String className : listeners.classNames()) { Class<?> cl = Class.forName(className); Object obj = cl.newInstance(); if (obj instanceof StatementAwareUpdateListener) { statement.addListener((StatementAwareUpdateListener) obj); } else { statement.addListener((UpdateListener) obj); } } } } }