if (push == 0)
if (!(traceNode.getNext() instanceof OutputTraceNode) || push == 0)
    public int primePumpItemsNotConsumed()     {	assert traceNode.getNext() instanceof OutputTraceNode :	    "Need to call primePumpItemsNotConsumed() on last filter of trace";	if (push == 0)	    return 0;	OutputTraceNode out = (OutputTraceNode)traceNode.getNext();	int itemsSent = primePump * push;	int itemsConsumed = 0;	    	Iterator it = out.getDestSet().iterator();	while (it.hasNext()) {	    Edge edge = (Edge)it.next();	    FilterInfo downstream = 		FilterInfo.getFilterInfo(((FilterTraceNode)edge.getDest().getNext()));	    double currentItems = ((downstream.primePump * downstream.pop) * 		(double)((double)edge.getDest().getWeight(edge) / (double)edge.getDest().totalWeights()));	    assert (currentItems == (double)((int)currentItems)) :		"items on edge not a whole number";	    itemsConsumed += (int)currentItems;	}		assert (itemsSent - itemsConsumed >= 0) :	    "negative primepump items not consumed";		assert ((itemsSent - itemsConsumed) % push == 0) :	    "primepump items not consumed is not multiple of push!";	return itemsSent - itemsConsumed;    }