OovStatusReturn ClassDiagram::saveDiagram(File &file) { OovStatus status(true, SC_File); NameValueFile nameValFile; CompoundValue names; CompoundValue xPositions; CompoundValue yPositions; OovString drawingName; for(auto const &node : mClassGraph.getNodes()) { if(node.getType()) { if(drawingName.length() == 0) { drawingName = node.getType()->getName(); } names.addArg(node.getType()->getName()); } else { names.addArg("Oov-Key"); } OovString num; num.appendInt(node.getPosition().x); xPositions.addArg(num); num.clear(); num.appendInt(node.getPosition().y); yPositions.addArg(num); } if(drawingName.length() > 0) { DiagramStorage::setDrawingHeader(nameValFile, DST_Class, drawingName); nameValFile.setNameValue("Names", names.getAsString()); nameValFile.setNameValue("XPositions", xPositions.getAsString()); nameValFile.setNameValue("YPositions", yPositions.getAsString()); status = nameValFile.writeFile(file); } return status; }