System.out.println(" s hash" +s.hashCode());
	public void expand()	{		Object[] nodeList = this.getContainedElements().toArray();		ConnectionSet cs = this.localGraphStruct.getConnectionSet();			this.localGraphStruct.getJGraph().getGraphLayoutCache().setVisible(nodeList, true);				Iterator eIter = localGraphStruct.getGraphModel().edges(this.getPort());		ArrayList edgesToRemove =  new ArrayList();				while (eIter.hasNext())		{			DefaultEdge edge = (DefaultEdge) eIter.next();			Iterator sourceIter = this.getSourceEdges().iterator();				while (sourceIter.hasNext())			{				DefaultEdge s = (DefaultEdge) sourceIter.next();				System.out.println(" s hash" +s.hashCode());				if (s.equals(edge))				{					System.out.println(" GEFeedbackLoop Expand: source edges were equal");					cs.disconnect(edge, true);					cs.connect(edge, this.splitter.getPort(), true);							this.splitter.addSourceEdge(s);					edgesToRemove.add(s);				}			}						Iterator targetIter = this.getTargetEdges().iterator();			while(targetIter.hasNext())			{				DefaultEdge t = (DefaultEdge) targetIter.next();				System.out.println(" t hash" +t.hashCode());				if(t.equals(edge))				{					System.out.println("GEFeedbackLoop Expand: target edges were equal");					cs.disconnect(edge,false);					cs.connect(edge, this.joiner.getPort(),false);					this.joiner.addTargetEdge(t);					edgesToRemove.add(t);				}			}						Object[] removeArray = edgesToRemove.toArray();			for(int i = 0; i<removeArray.length;i++)			{				this.removeSourceEdge((DefaultEdge)removeArray[i]);				this.removeTargetEdge((DefaultEdge)removeArray[i]);			}			}				this.localGraphStruct.getGraphModel().edit(null, cs, null, null);				for (int i = level; i >= 0; i--)		{			this.localGraphStruct.containerNodes.hideContainersAtLevel(i);		}		JGraphLayoutManager manager = new JGraphLayoutManager(this.localGraphStruct);		manager.arrange();			setLocationAfterExpand();	}