2016-04-21 11 views
0

У меня есть следующее правило, которое срабатывает, когда частота сердечных сокращений остается выше 160 в течение 5 минут.Язык правил эспер: возвращает поле данных класса из рисунка

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()); 

Мой класс HeartRate имеет следующие поля:

int heartrate; 
String heartratesTimestamp; 
String macAddress; 

То, что я хочу, чтобы иметь возможность получить MACADDRESS в моем ruleListener. Это, однако, возвращает пустой хэш. Итак, мой вопрос в том, как вернуть macAddress из HeartRate?

ответ

1

Шаблоны сохраняют и возвращают маркированные события, то есть это будет делать:

// 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(...