} else if (schedObject==null) {  Utils.fail("SIRScheduler found a null component in the schedule " + "(expected List or SIRFilter)");  return null;
    private JMethodDeclaration makeWork(Object schedObject,					SIRStream toplevel) {	// see what kind of schedObject we have	if (schedObject instanceof List) {	    // if we have a list, process as hierarhical unit...	    List list = (List)schedObject;	    // see if we've already built a work function for <list>	    if (listToWork.containsKey(list)) {		// if so, return the work function		return (JMethodDeclaration)listToWork.get(list);	    } else {		// otherwise, compute the work function		JMethodDeclaration work = makeWorkForList(list, toplevel);		// store the new work function in a few places...		// first, in listToWork so we can get it next time		listToWork.put(list, work);		// second, in the flatClass		flatClass.addMethod(work);		// return work		return work;	    }	} else if (schedObject instanceof SIRFilter) {	    // if we have a filter, just return filter's work function	    return ((SIRFilter)schedObject).getWork();	} else {	    // othwerise, fail	    Utils.fail("SIRScheduler expected List or SIRFilter, but found " + 		       schedObject.getClass());	    // return value doesn't matter	    return null;	}    }