package com.produban.openbus.siddhiCep; import org.wso2.siddhi.core.query.selector.attribute.handler.OutputAttributeAggregator; import org.wso2.siddhi.query.api.definition.Attribute.Type; public class MediaCondicionadaAnteriorAggregatorInteger implements OutputAttributeAggregator{ private static final long serialVersionUID = -72426648760896067L; private double valorAcumulado=0D; private double elementos=0D; private Double res; @Override public void destroy() { // TODO Auto-generated method stub } @Override public Type getReturnType() { return Type.DOUBLE; } @Override public Object processAdd(Object obj) { if (obj instanceof Object[]) { Object[] objArray = (Object[]) obj; String valor = (String)objArray[0]; String match = (String)objArray[1]; Integer percent = (Integer)objArray[2]; res=valorAcumulado/elementos*percent; elementos++; if(valor.equals(match)){ valorAcumulado+=1D; } if(elementos!=0){ return Integer.valueOf(res.intValue()); }else{ return Double.valueOf(0); } } return Double.valueOf(0); } @Override public Object processRemove(Object obj) { if (obj instanceof Object[]) { Object[] objArray = (Object[]) obj; String valor = (String)objArray[0]; String match = (String)objArray[1]; elementos--; if(valor.equals(match)){ valorAcumulado-=1D; } } return Double.valueOf(0); } @Override public OutputAttributeAggregator newInstance() { return new MediaCondicionadaAnteriorAggregatorInteger(); } }