DPConfig config = new DPConfig(self);
DPConfig config = createConfig(self);
    private void buildStreamConfig() {	str.accept(new EmptyAttributeStreamVisitor() {		public Object visitSplitJoin(SIRSplitJoin self,					     JFieldDeclaration[] fields,					     JMethodDeclaration[] methods,					     JMethodDeclaration init,					     SIRSplitter splitter,					     SIRJoiner joiner) {		    // shouldn't have 0-sized SJ's		    Utils.assert(self.size()!=0, "Didn't SJ with no children.");		    // keep track of last one which a child was equivalent to		    SIRStream firstChild = self.get(0);		    SIRStream lastEquiv = firstChild;		    DPConfig lastConfig = (DPConfig)firstChild.accept(this);		    // look for equivalent children		    for (int i=1; i<self.size(); i++) {			SIRStream child = self.get(i);			if (equivStructure(lastEquiv, child)) {			    configMap.put(child, lastConfig);			} else {			    lastEquiv = child;			    lastConfig = (DPConfig)child.accept(this);			}		    }		    // if all were equivalent, then add them to uniform list		    if (lastEquiv== self.get(0)) {			uniformSJ.add(self);		    }		    return makeConfig(self);		}		public Object visitPipeline(SIRPipeline self,					    JFieldDeclaration[] fields,					    JMethodDeclaration[] methods,					    JMethodDeclaration init) {		    super.visitPipeline(self, fields, methods, init);		    return makeConfig(self);		}		/* pre-visit a feedbackloop */		public Object visitFeedbackLoop(SIRFeedbackLoop self,						JFieldDeclaration[] fields,						JMethodDeclaration[] methods,						JMethodDeclaration init,						JMethodDeclaration initPath) {		    super.visitFeedbackLoop(self, fields, methods, init, initPath);		    return makeConfig(self);		}		public Object visitFilter(SIRFilter self,					  JFieldDeclaration[] fields,					  JMethodDeclaration[] methods,					  JMethodDeclaration init,					  JMethodDeclaration work,					  CType inputType, CType outputType) {		    super.visitFilter(self, fields, methods, init, work, inputType, outputType);		    return makeConfig(self);		}		private DPConfig makeConfig(SIRStream self) {		    DPConfig config = new DPConfig(self);		    configMap.put(self, config);		    return config;		}	    });    }