splitjoin.addChild(strNode);
    public Object visitSplitJoin(SIRSplitJoin self,                                 JFieldDeclaration[] fields,                                 JMethodDeclaration[] methods,                                 JMethodDeclaration init,                                 SIRSplitter splitter,                                 SIRJoiner joiner) {		System.out.println("***** Entering visitSplitJoin");                                 			// Visit the splitter and joiner 		GESplitter split = (GESplitter)splitter.accept(this);		GEJoiner join = (GEJoiner) joiner.accept(this);						GESplitJoin splitjoin =  new GESplitJoin(self.getName(), split, join);		split.setEncapsulatingNode(splitjoin);		join.setEncapsulatingNode(splitjoin);				splitjoin.addChild(split);		splitjoin.firstNode = split;			// ...and walk through the body.		Iterator iter = self.getParallelStreams().iterator();		while (iter.hasNext()) {						SIROperator oper = (SIROperator)iter.next();			GEStreamNode strNode = (GEStreamNode)oper.accept(this);			 		split.addChild(strNode);//1/20/04 Removed since it affected layout algorithm strNode.addChild(join);					strNode.setEncapsulatingNode(splitjoin);			splitjoin.addChild(strNode);		}		splitjoin.addChild(join);				graph.addHierarchy(splitjoin, split.getSuccesors());				/* ***********************************************************	     * DEBUGGING CODE BEGIN		*/		System.out.println("SplitJoin "+ splitjoin.getName() + " has the following children");		System.out.println("\t Split = "+ splitjoin.getSplitter().getName());		System.out.println("\t Join = "+ splitjoin.getJoiner().getName());				ArrayList sjChildren = splitjoin.getSuccesors();				for (int i = 0; i < sjChildren.size(); i++)		{			System.out.println("\tInner Child "+ i+ " = " +((GEStreamNode) sjChildren.get(i)).getName());		}				/* 		 * DEBUGGING CODE END	 	*********************************************************** */							return splitjoin;		                                   }