private static ConditionExpressionExecutor generateHavingExecutor(Expression expression,
                                                                      MetaComplexEvent metaComplexEvent,
                                                                      Map<String, Table> tableMap,
                                                                      List<VariableExpressionExecutor>
                                                                              variableExpressionExecutors, SiddhiQueryContext siddhiQueryContext) {
        ConditionExpressionExecutor havingConditionExecutor = null;
        if (expression != null) {
            havingConditionExecutor = (ConditionExpressionExecutor) ExpressionParser.parseExpression(expression,
                    metaComplexEvent, SiddhiConstants.HAVING_STATE, tableMap, variableExpressionExecutors,
                    false, 0, ProcessingMode.BATCH,
                    false, siddhiQueryContext);
        }
        return havingConditionExecutor;
    }
Method to construct AttributeProcessor list for the selector.

@param selector                    Selector
@param id                          stream id
@param metaComplexEvent            meta ComplexEvent
@param tableMap                    Table Map
@param variableExpressionExecutors list of VariableExpressionExecutors
@param outputStream                output stream
@param processingMode              processing mode of the query
@param outputExpectsExpiredEvents  is expired events sent as output
@param groupBy                     is Attributes groupBy
@param siddhiQueryContext          current siddhi query context  @return list of AttributeProcessors
modules/siddhi-core/src/main/java/io/siddhi/core/util/parser/SelectorParser.java