protected Object process(AtomicEvent event, OutputAttributeAggregator outputAttributeAggregator) {
   if (size > 1) {
     Object[] data = new Object[expressionExecutors.size()];
     for (int i = 0, size = data.length; i < size; i++) {
       data[i] = expressionExecutors.get(i).execute(event);
     }
     if (event instanceof RemoveStream) {
       return outputAttributeAggregator.processRemove(data);
     } else {
       return outputAttributeAggregator.processAdd(data);
     }
   } else {
     if (event instanceof RemoveStream) {
       return outputAttributeAggregator.processRemove(expressionExecutors.get(0).execute(event));
     } else {
       return outputAttributeAggregator.processAdd(expressionExecutors.get(0).execute(event));
     }
   }
 }
 @Override
 public Attribute.Type getOutputType() {
   return sampleOutputAttributeAggregator.getReturnType();
 }