package org.jnect.demo.incquery.sheldon;
import org.jnect.demo.incquery.esper.IEventFilter;
import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPStatement;
import com.espertech.esper.client.UpdateListener;
/**
* EPL filter for a complex EPL pattern based on start and end IQPL patterns
* with a time window of continuous time.
*
* @author istvanrath
*/
public class SheldonEventPatternWithWindowFeedback implements IEventFilter {
private EPStatement statement;
public SheldonEventPatternWithWindowFeedback(EPAdministrator admin, String windowLength) {
String stmt = "SELECT * FROM pattern[" +
"every(EsperMatchEvent(patternName='SS') -> " +
"EsperMatchEvent(patternName='SM') -> " +
"EsperMatchEvent(patternName='SE') WHERE timer:within("+windowLength+"))]";
statement = admin.createEPL(stmt);
}
@Override
public void addListener(Object listener) {
statement.addListener((UpdateListener) listener);
}
@Override
public void removeListener(Object listener) {
statement.removeListener((UpdateListener) listener);
}
}