*/
    JStatement generateInitWorkLoop(FilterContent filter,                                     GeneratedVariables generatedVariables)     {        JBlock block = new JBlock(null, new JStatement[0], null);            //if a simple filter, reset the simpleIndex        if (filterInfo.isSimple()) {            block.addStatement                (new JExpressionStatement(null,                                          (new JAssignmentExpression                                           (null,                                            new JFieldAccessExpression                                            (null, new JThisExpression(null),                                              generatedVariables.simpleIndex.getIdent()),                                            new JIntLiteral(-1))), null));        }            JStatement innerReceiveLoop =             makeForLoopFieldIndex(receiveCode(filter, filter.getInputType(),                                    generatedVariables),                        generatedVariables.exeIndex,                        new JIntLiteral(filter.getPopInt()));            JExpression isFirst =             new JEqualityExpression(null,                                    false,                                    new JFieldAccessExpression                                    (null, new JThisExpression(null),                                     generatedVariables.exeIndex1.getIdent()),                                    new JIntLiteral(0));        JStatement ifStatement =             new JIfStatement(null,                             isFirst,                             innerReceiveLoop,                             null,                              null);            //add the if statement        block.addStatement(ifStatement);            //clone the work function and inline it        JStatement workBlock =             getWorkFunctionCall(filter);            //if we are in debug mode, print out that the filter is firing        if (SpaceTimeBackend.FILTER_DEBUG_MODE) {            block.addStatement                (new SIRPrintStatement(null,                                       new JStringLiteral(null, filter.getName() + " firing (init)."),                                       null));        }            block.addStatement(workBlock);            //return the for loop that executes the block init - 1        //times        return makeForLoopFieldIndex(block, generatedVariables.exeIndex1,                            new JIntLiteral(initFire - 1));    }