Я хочу расширить продукт Wso2 CEP в наших целях и попытаться написать пользовательское условие, как указано в этом official wso2 cep link.Запись пользовательского условия в WSO2 CEP с аргументом слева и справа
Я могу написать класс расширения, который расширяет «org.wso2.siddhi.core.executor.conditon.AbstractGenericConditionExecutor» и реализовать свой абстрактный метод, как указано ниже:
@SiddhiExtension(namespace = "myext", function = "startswithA")
public class StringUtils extends
org.wso2.siddhi.core.executor.conditon.AbstractGenericConditionExecutor {
static Log log = LogFactory.getLog(StringUtils.class);
@Override
public boolean execute(AtomicEvent atomicEvent) {
log.error("Entered the execute method");
log.error("Atomic event to string: " + atomicEvent.toString());
return true;
}
}
, когда я использую этот extensioned Способ:
from allEventsStream[myext:startswithA(name)]
insert into selectedEventsStream *;
в этой ситуации, я хочу, что метод startswithA возвращает истину, если имя поля имеет «A» в начале этого. Однако, когда я запускаю этот запрос в CEP, все событие переходит в мою функцию выполнения, т. Е. Нет знака, чтобы показать, что я отправляю поле «имя», которое отправляется для запуска в качестве метода.
Как я могу понять, какое поле потока отправлено моему расширенному методу в качестве аргумента?
Также я хочу писать условия, такие как
from allEventsStream[myext:startswith('A', name)]
insert into selectedEventsStream *;
Как я могу achive это?
Спасибо @lasantha и Раджив Сампатх, что прошло очень хорошо. – Alper