JExpression isFirst = new JEqualityExpression(null, false, new JLocalVariableExpression (null, generatedVariables.exeIndex1), new JIntLiteral(0)); JStatement ifStatement = new JIfStatement(null, isFirst, innerReceiveLoop, null, null);  JBlock block = new JBlock(null, new JStatement[0], null);   if (isSimple()){
if (filterInfo.isSimple() && filterInfo.traceNode.getPrevious().isFilterTrace()){
    JStatement generateInitWorkLoop(FilterContent filter, 				    GeneratedVariables generatedVariables)     {	JStatement innerReceiveLoop = 	    makeForLoop(receiveCode(filter, filter.getInputType(),				    generatedVariables),			generatedVariables.exeIndex,			new JIntLiteral(filter.getPopInt()));		JExpression isFirst = 	    new JEqualityExpression(null,				    false,				    new JLocalVariableExpression				    (null, 				     generatedVariables.exeIndex1),				    new JIntLiteral(0));	JStatement ifStatement = 	    new JIfStatement(null,			     isFirst,			     innerReceiveLoop,			     null, 			     null);		JBlock block = new JBlock(null, new JStatement[0], null);	//if a simple filter, reset the simpleIndex	if (isSimple()){	    block.addStatement		(new JExpressionStatement(null,					  (new JAssignmentExpression					   (null,					    new JLocalVariableExpression					    (null, generatedVariables.simpleIndex),					    new JIntLiteral(-1))), null));	}		//add the if statement	block.addStatement(ifStatement);		//clone the work function and inline it	JBlock workBlock = 	    (JBlock)ObjectDeepCloner.deepCopy(filter.getWork().getBody());		//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 makeForLoop(block, generatedVariables.exeIndex1, 			   new JIntLiteral(initFire - 1));    }