public ConversionAttributeProcessor(
     Expression[] expressions,
     List<QueryEventStream> queryEventStreamList,
     OutputAttributeProcessorFactory outputAttributeProcessorFactory,
     SiddhiContext siddhiContext) {
   this.expressionExecutor =
       ExecutorParser.parseExpression(
           expressions[0], queryEventStreamList, null, false, siddhiContext);
   this.attributeConverterFactory = outputAttributeProcessorFactory;
   this.outputAttributeProcessor =
       outputAttributeProcessorFactory.createAggregator(expressionExecutor.getType());
 }
 public AbstractAggregationAttributeProcessor(
     Expression[] expressions,
     List<QueryEventSource> queryEventSourceList,
     OutputAttributeAggregatorFactory outputAttributeAggregatorFactory,
     String elementId,
     SiddhiContext siddhiContext) {
   this.outputAttributeAggregatorFactory = outputAttributeAggregatorFactory;
   this.siddhiContext = siddhiContext;
   this.expressionExecutors = new ArrayList<ExpressionExecutor>();
   for (Expression expression : expressions) {
     this.expressionExecutors.add(
         ExecutorParser.parseExpression(
             expression, queryEventSourceList, null, false, siddhiContext));
   }
   this.elementId = elementId;
   Attribute.Type[] attributeTypes = new Attribute.Type[expressionExecutors.size()];
   for (int i = 0; i < expressionExecutors.size(); i++) {
     attributeTypes[i] = expressionExecutors.get(i).getReturnType();
   }
   this.sampleOutputAttributeAggregator =
       outputAttributeAggregatorFactory.createAttributeAggregator(attributeTypes);
   siddhiContext.addEternalReferencedHolder(sampleOutputAttributeAggregator);
   size = expressionExecutors.size();
 }