[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Persistence.java, 1.61, 1.62
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2007-11-26 18:22:40
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv30157/src/net/sourceforge/bprocessor/model Modified Files: Persistence.java Log Message: Fixed a problem with instances and coordinatesystems in persistence Index: Persistence.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Persistence.java,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** Persistence.java 23 Nov 2007 10:27:26 -0000 1.61 --- Persistence.java 26 Nov 2007 18:22:36 -0000 1.62 *************** *** 95,98 **** --- 95,99 ---- import javax.xml.bind.JAXBContext; + import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; *************** *** 231,235 **** private static Space internalizeSpace(Space owner, SpaceType xml, Map mapper, Collection xmls) { ! Space s = new Space(); return internalizeSpace(owner, s, xml, mapper, xmls); } --- 232,236 ---- private static Space internalizeSpace(Space owner, SpaceType xml, Map mapper, Collection xmls) { ! Space s = new Space(xml.getName(), xml.getType(), xml.getVoidref() != 0); return internalizeSpace(owner, s, xml, mapper, xmls); } *************** *** 277,288 **** private static Space internalizeSpace(Space owner, Space space, SpaceType xml, Map mapper, Collection xmls) { ! String name = xml.getName(); int type = xml.getType(); long empty = xml.getVoidref(); ! boolean container = (empty != 0); ! space.setName(name); ! space.setType(type); ! space.setContainer(container); space.setTransparent(xml.isTransparent()); space.setId(new Long(xml.getProgid())); --- 278,292 ---- private static Space internalizeSpace(Space owner, Space space, SpaceType xml, Map mapper, Collection xmls) { ! //String name = xml.getName(); int type = xml.getType(); long empty = xml.getVoidref(); ! //boolean container = (empty != 0); ! long proto = xml.getProtoref(); ! boolean instance = (proto != 0); ! ! //space.setName(name); ! //space.setType(type); ! //space.setContainer(container); space.setTransparent(xml.isTransparent()); space.setId(new Long(xml.getProgid())); *************** *** 295,384 **** } mapper.put(new Long(xml.getId()), space); ! xmls.add(xml); ! { ! HashMap elements = new HashMap(); ! Iterator iter = xml.getSpace().iterator(); ! while (iter.hasNext()) { ! net.sourceforge.bprocessor.model.xml.Space current = ! (net.sourceforge.bprocessor.model.xml.Space) iter.next(); ! Space element = internalizeElement(space, current, mapper, xmls); ! elements.put(element.getId(), element); ! } ! space.setElements(elements); ! } ! if (empty != 0) { ! space.setEmpty((Space) mapper.get(new Long(empty))); ! } ! { ! HashMap surfaces = new HashMap(); ! Iterator iter = xml.getSurface().iterator(); ! while (iter.hasNext()) { ! SurfaceType current = (SurfaceType) iter.next(); ! Surface surface = internalizeSurface(space, current, mapper, xmls); ! surfaces.put(surface.getId(), surface); } ! space.setSurfaces(surfaces); ! } ! { ! HashMap edges = new HashMap(); ! Iterator iter = xml.getEdge().iterator(); ! while (iter.hasNext()) { ! EdgeType current = (EdgeType) iter.next(); ! Edge edge = internalizeEdge(space, current, mapper, xmls); ! edges.put(edge.getId(), edge); } ! space.setEdges(edges); ! } ! { ! HashMap vertices = new HashMap(); ! Iterator iter = xml.getVertex().iterator(); ! while (iter.hasNext()) { ! VertexType current = (VertexType) iter.next(); ! Vertex vertex = internalizeVertex(space, current, mapper, xmls); ! vertices.put(vertex.getId(), vertex); } ! space.setVertices(vertices); ! } ! /*{ ! Iterator iter = xml.getMaterial().iterator(); ! while (iter.hasNext()) { ! MaterialType current = (MaterialType) iter.next(); ! space.add(internalizeMaterial(current, mapper, xmls)); } ! }*/ ! { ! if (xml.getAnchor() != null) { ! space.setInstanceAnchor(internalizeCoordinateSystem(xml.getAnchor(), mapper, xmls)); } ! } ! { ! Iterator iter = xml.getConstructor().iterator(); ! while (iter.hasNext()) { ! Object current = iter.next(); ! Constructor c = null; ! if (current instanceof CoordinateSystemType) { ! c = internalizeCoordinateSystem((CoordinateSystemType)current, mapper, xmls); ! } else if (current instanceof PointType) { ! c = internalizePoint((PointType)current, mapper, xmls); ! } else if (current instanceof LineType) { ! c = internalizeLine((LineType)current, mapper, xmls); ! } else { ! log.info("Const were " + current.getClass()); } ! if (c != null) { ! Set connected = new HashSet(); ! Iterator cs = ((ConstructorType)current).getConnected().iterator(); ! while (cs.hasNext()) { ! Long l = (Long)cs.next(); ! Object g = get(l.longValue(), mapper); ! if (g instanceof Geometric) { ! connected.add(g); } } - c.connect(connected); - space.add(c); } } } space.setOwner(owner); --- 299,390 ---- } mapper.put(new Long(xml.getId()), space); ! xmls.add(xml); ! if (!instance) { ! { ! HashMap elements = new HashMap(); ! Iterator iter = xml.getSpace().iterator(); ! while (iter.hasNext()) { ! net.sourceforge.bprocessor.model.xml.Space current = ! (net.sourceforge.bprocessor.model.xml.Space) iter.next(); ! Space element = internalizeElement(space, current, mapper, xmls); ! elements.put(element.getId(), element); ! } ! space.setElements(elements); } ! if (empty != 0) { ! space.setEmpty((Space) mapper.get(new Long(empty))); } ! { ! HashMap surfaces = new HashMap(); ! Iterator iter = xml.getSurface().iterator(); ! while (iter.hasNext()) { ! SurfaceType current = (SurfaceType) iter.next(); ! Surface surface = internalizeSurface(space, current, mapper, xmls); ! surfaces.put(surface.getId(), surface); ! } ! space.setSurfaces(surfaces); } ! { ! HashMap edges = new HashMap(); ! Iterator iter = xml.getEdge().iterator(); ! while (iter.hasNext()) { ! EdgeType current = (EdgeType) iter.next(); ! Edge edge = internalizeEdge(space, current, mapper, xmls); ! edges.put(edge.getId(), edge); ! } ! space.setEdges(edges); } ! { ! HashMap vertices = new HashMap(); ! Iterator iter = xml.getVertex().iterator(); ! while (iter.hasNext()) { ! VertexType current = (VertexType) iter.next(); ! Vertex vertex = internalizeVertex(space, current, mapper, xmls); ! vertices.put(vertex.getId(), vertex); ! } ! space.setVertices(vertices); } ! /*{ ! Iterator iter = xml.getMaterial().iterator(); ! while (iter.hasNext()) { ! MaterialType current = (MaterialType) iter.next(); ! space.add(internalizeMaterial(current, mapper, xmls)); } ! }*/ ! ! { ! Iterator iter = xml.getConstructor().iterator(); ! while (iter.hasNext()) { ! Object current = iter.next(); ! Constructor c = null; ! if (current instanceof CoordinateSystemType) { ! c = internalizeCoordinateSystem((CoordinateSystemType)current, mapper, xmls); ! } else if (current instanceof PointType) { ! c = internalizePoint((PointType)current, mapper, xmls); ! } else if (current instanceof LineType) { ! c = internalizeLine((LineType)current, mapper, xmls); ! } else { ! log.info("Const were " + current.getClass()); ! } ! if (c != null) { ! Set connected = new HashSet(); ! Iterator cs = ((ConstructorType)current).getConnected().iterator(); ! while (cs.hasNext()) { ! Long l = (Long)cs.next(); ! Object g = get(l.longValue(), mapper); ! if (g instanceof Geometric) { ! connected.add(g); ! } } + c.connect(connected); + space.add(c); } } } + } else { + if (xml.getAnchor() != null) { + space.setInstanceAnchor(internalizeCoordinateSystem(xml.getAnchor(), mapper, xmls)); + } } space.setOwner(owner); *************** *** 888,892 **** * @exception Exception Thrown if an error occurs */ ! private static void saveFile(Object document, OutputStream stream) throws Exception { JAXBContext jc = JAXBContext.newInstance("net.sourceforge.bprocessor.model.xml"); Marshaller m = jc.createMarshaller(); --- 894,898 ---- * @exception Exception Thrown if an error occurs */ ! private static void saveFile(Object document, OutputStream stream) throws JAXBException { JAXBContext jc = JAXBContext.newInstance("net.sourceforge.bprocessor.model.xml"); Marshaller m = jc.createMarshaller(); *************** *** 1670,1673 **** --- 1676,1680 ---- lo.setName(lot.getName()); lo.setLocked(lot.isLocked()); + lo.setId(lot.getProgid()); lo.setSpace(internalizeSpace(null, lot.getSpace(), map, xmls)); return lo; *************** *** 1681,1689 **** File fout = new File("components/lib.bpl"); FileOutputStream fos = new FileOutputStream(fout); ! Library lib = externalizeLibrary(Project.getLibraryObjects()); ! saveFile(lib, fos); ! ! fos.flush(); fos.close(); } --- 1688,1699 ---- File fout = new File("components/lib.bpl"); FileOutputStream fos = new FileOutputStream(fout); ! counter = 1; Library lib = externalizeLibrary(Project.getLibraryObjects()); ! try { ! saveFile(lib, fos); ! fos.flush(); ! } catch (JAXBException e) { ! log.error("There were a marshalling error " + e); ! } fos.close(); } *************** *** 1711,1714 **** --- 1721,1726 ---- private static LibObjType externalizeLibObj(Component libo, HashMap<Long, Object> map) { LibObjType libobj = new LibObjTypeImpl(); + libobj.setProgid(libo.getId()); + libobj.setId(counter++); libobj.setLocked(libo.isLocked()); libobj.setAuthor(libo.getAuthor()); |