int size = Math.max((Util.getCountPrev(init, prev, node) * prevProd), ((Util.getCountPrev(init, prev, node) + Util.getCountPrev(steady, prev, node)) * prevProd - Util.getCount(init, node) * filter.getPopInt()));
if (prev.contents instanceof SIRTwoStageFilter && ((SIRTwoStageFilter)prev.contents).getInitPush() > prevProd) prevProd = ((SIRTwoStageFilter)prev.contents).getInitPush(); }   if (filter instanceof SIRTwoStageFilter && ((SIRTwoStageFilter)filter).getInitPop() < currentCons) currentCons = ((SIRTwoStageFilter)filter).getInitPop();      int size = Math.max((Util.getCountPrev(init, prev, node) * prevProd), ((Util.getCountPrev(init, prev, node) + Util.getCountPrev(steady, prev, node)) * prevProd) - Util.getCount(init, node) * currentCons);
    public void visitNode(FlatNode node) {	if (node.contents instanceof SIRFilter) {	    SIRFilter filter = (SIRFilter)node.contents;	    		    	    if (node.inputs > 0) {		FlatNode prev = node.incoming[0];		//if prev is a joiner or a splitter, production is 1		int prevProd = 1;		if (prev.contents instanceof SIRFilter)		    prevProd = ((SIRFilter)prev.contents).getPushInt();				int size = Math.max((Util.getCountPrev(init, prev, node) * prevProd),				    ((Util.getCountPrev(init, prev, node) + 				      Util.getCountPrev(steady, prev, node)) * prevProd -				     Util.getCount(init, node) * filter.getPopInt()));		consBufferSize.put(node, new Integer(size));	    }	    else 		consBufferSize.put(node, new Integer(0));	    	    //Production Buffer (outgoing buffer)	    if (node.ways > 0) {		int size = Math.max(Util.getCount(init, node), Util.getCount(steady, node)) * 		    filter.getPushInt();				prodBufferSize.put(node, new Integer(size));	    }	    else 		prodBufferSize.put(node, new Integer(0));	}    }