private void updateActiveFuncExprsWithVars()

in asterix-bad/src/main/java/org/apache/asterix/bad/rules/RewriteChannelTimeFunctionToLocalVarRule.java [92:104]


    private void updateActiveFuncExprsWithVars(Map<LogicalVariable, LogicalVariable> prevMap,
            Map<LogicalVariable, LogicalVariable> currMap, Set<Mutable<ILogicalExpression>> activeFuncExprs) {
        for (Mutable<ILogicalExpression> expr : activeFuncExprs) {
            AbstractFunctionCallExpression funcExpr = (AbstractFunctionCallExpression) expr.getValue();
            LogicalVariable dsVar = ((VariableReferenceExpression) ((AbstractFunctionCallExpression) expr.getValue())
                    .getArguments().get(0).getValue()).getVariableReference();
            if (funcExpr.getFunctionIdentifier() == BADFunctions.CURRENT_CHANNEL_TIME) {
                expr.setValue(new VariableReferenceExpression(currMap.get(dsVar)));
            } else if (funcExpr.getFunctionIdentifier() == BADFunctions.PREVIOUS_CHANNEL_TIME) {
                expr.setValue(new VariableReferenceExpression(prevMap.get(dsVar)));
            }
        }
    }