}  if (lastEquiv== self.get(0)) { System.out.println("Detected uniform splitjoin: " + self.getName()); uniformSJ.add(self); } return makeConfig(self); }
if (lastEquiv== self.get(0)) { System.out.println("Detected uniform splitjoin: " + self.getName()); uniformSJ.add(self); } } else {
	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 expect 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)) {		    /*		      System.err.println("Detected symmetry between " + 		      firstChild.getName() + " and " + child.getName());		    */		    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)) {		System.out.println("Detected uniform splitjoin: " + self.getName());		uniformSJ.add(self);	    }	    return makeConfig(self);	}