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;
}
|