[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Surface.java,1.30,1.31
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2005-09-29 09:28:15
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11581/src/net/sourceforge/bprocessor/model Modified Files: Surface.java Log Message: Surface.copy works. Uses HashMap of already copied vertices. Index: Surface.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** Surface.java 28 Sep 2005 13:42:48 -0000 1.30 --- Surface.java 29 Sep 2005 09:28:07 -0000 1.31 *************** *** 9,12 **** --- 9,13 ---- import java.io.Serializable; import java.util.ArrayList; + import java.util.HashMap; import java.util.Iterator; import java.util.List; *************** *** 278,288 **** public Surface copy() { Surface surface = new Surface(getName()); List edges = new ArrayList(); Iterator iter = getEdges().iterator(); while (iter.hasNext()) { Edge current = (Edge) iter.next(); ! edges.add(current.copy()); } surface.setEdges(edges); return surface; } --- 279,310 ---- public Surface copy() { Surface surface = new Surface(getName()); + + HashMap map = new HashMap(); List edges = new ArrayList(); Iterator iter = getEdges().iterator(); while (iter.hasNext()) { Edge current = (Edge) iter.next(); ! Edge newEdge = new Edge(current.getName()); ! Vertex from = current.getFrom(); ! Vertex newFrom = (Vertex) map.get(from.getId()); ! if (newFrom == null) { ! newFrom = from.copy(); ! map.put(from.getId(), newFrom); ! VertexFacade.getInstance().create(newFrom); ! } ! newEdge.setFrom(newFrom); ! Vertex to = current.getTo(); ! Vertex newTo = (Vertex) map.get(to.getId()); ! if (newTo == null) { ! newTo = to.copy(); ! map.put(to.getId(), newTo); ! VertexFacade.getInstance().create(newTo); ! } ! newEdge.setTo(newTo); ! EdgeFacade.getInstance().create(newEdge); ! edges.add(newEdge); } surface.setEdges(edges); + SurfaceFacade.getInstance().create(surface); return surface; } |