2016-04-21 21 views
0

Ich habe die folgende Regel, die feuert, wenn die Herzfrequenz für 5 Minuten über 160 bleibt.Esper Regelsprache: Rückgabe Datenfeld der Klasse von Muster

EPStatement cepStatementRule3 = cepRule.createEPL("context PartitionByMacHeartRate " 
       + "select * from pattern[every(HeartRate(heartrate > 160) " 
       + "-> (timer:interval(5 min) " 
       + "and not HeartRate(heartrate<=160)))]"); 
     cepStatementRule3.addListener(new rule3Listener()); 

Meine Herzfrequenz-Klasse hat die folgenden Felder:

int heartrate; 
String heartratesTimestamp; 
String macAddress; 

Was ich will, ist in der Lage sein, die macaddress in meinem ruleListener zu bekommen. Dies jedoch gibt eine leere hashmap zurück. Also meine Frage ist, wie kann ich die macAddress des HeartRate zurückgeben?

Antwort

1

Muster beibehalten und die markierten Ereignisse zurückzukehren, das heißt dies tun würde:

// we assign the 'h' tag to the first event and the engine now retains that 
// the select clause could use "h.macAddress as macAddress", for example 
...every(h=HeartRate(...