if (debugrates) { if (librarydebug) { System.err.print("PIPELINE "+ pipeline.getObject().getClass() .getName()); } else { System.err.print("PIPELINE "+ ((SIRStream)pipeline.getObject()) .getIdent()); } System.err.println("[" + nChildren + "]"); }
    protected Pipeline(PipelineIter _pipeline, StreamFactory factory)    {        super(_pipeline.getUnspecializedIter());                assert _pipeline != null;        pipeline = _pipeline;        // fill up the children array        // do this to preseve consistancy of iterators        {            nChildren = pipeline.getNumChildren();            // a pipeline must have some children            assert nChildren > 0;            children = new StreamInterface[nChildren];            int nChild;            for (nChild = 0; nChild < pipeline.getNumChildren(); nChild++)            {                // create a new child object                children[nChild] =                    factory.newFrom(pipeline.getChild(nChild), pipeline.getUnspecializedIter());            }                        // compute my steady schedule            // my children already have computed their steady schedules,            // so I just have to do mine	    if (factory.needsSchedule()) {		computeSteadyState();	    }        }    }