import org.wso2.siddhi.core.config.SiddhiContext;
import org.wso2.siddhi.core.executor.function.FunctionExecutor;
import org.wso2.siddhi.query.api.definition.Attribute;
import org.wso2.siddhi.query.api.extension.annotation.SiddhiExtension;
@SiddhiExtension(namespace = "testNamespace", function = "testFunction")
public class Test extends FunctionExecutor {
Attribute.Type returnType;
@Override
public void init(Attribute.Type[] types, SiddhiContext siddhiContext) { }
@Override
protected Object process(Object object) {
Object[] arrayObject;
int param1 = 0;
int param2 = 0;
if (object instanceof Object[]) { // if you pass params into yours function in executionPlan, you will have arrayObject (remember about order)
arrayObject = (Object[]) object;
param1 = (Integer) arrayObject[0];
param2 = (Integer) arrayObject[1];
}
return (param1 + param2);
}
@Override
public void destroy() { }
@Override
public Attribute.Type getReturnType() {
return returnType.INT; //type of what you want to return (STRING, INT, LONG, FLOAT, DOUBLE, BOOL, TYPE) or null <-- but then it doesn not make sense
}
}
2 回答
尝试这样的事情:
您可以使用以下链接的指南来了解如何在siddhi查询中使用扩展名 .
https://docs.wso2.com/display/CEP310/Writing+a+Custom+Function
要获得对项目的siddhi扩展依赖项,请在pom.xml中使用以下存储库和依赖项