* Returns the number of items pushed out of this stream in one * execution of the steady-state, given the steady-state execution * counts specified by <counts> (as in SIRScheduler.)  Requires * that <counts> contains a firing for each *filter* that * contained in the hierarchy of this (does not depend on * splitters / joiners.) * * The intent of this method is that <counts> can be calculated * once for a stream graph, then the splitjoins & pipelines of the * graph can be refactored, and one can still call this to get the * push count of new constructs without re-invoking the scheduler. */ public abstract int getPushForSchedule(HashMap[] counts);   public abstract int getPopForSchedule(HashMap[] counts);  /**
    public void setMethods (JMethodDeclaration[] m) {	if(m!=null)	    for (int i=0; i<m.length; i++) {		Utils.assert(m[i]!=null, "Detected a null method in SIRStream.setMethods");	    }	this.methods = m;    }    /**     * Returns the output type of this.     */    public abstract CType getOutputType();    /**     * Returns the type of this stream.     */    public abstract LIRStreamType getStreamType();    /**     * Returns the input type of this.     */    public abstract CType getInputType();    /**     * Returns whether or not this class needs a call to an init     * function to be generated.  Special library functions like     * FileReader's and FileWriter's do not need an init call.     */    public boolean needsInit() {	return true;    }