// @mfunc Open this <c OMFile>. // @precondition <f !isOpen()> // @precondition <f !isClosed()> // @postcondition <f isOpen()> void OMFile::open(void) { TRACE("OMFile::open"); PRECONDITION("Not already open", !isOpen()); PRECONDITION("Never been opened", !isClosed()); PRECONDITION("Valid mode", (_mode == readOnlyMode) || (_mode == writeOnlyMode) || (_mode == modifyMode)); if (_isNew) { // new file - create ASSERT("Correct mode for new file", _mode != readOnlyMode); if (_mode == modifyMode) { createModify(); } else { // _mode == writeOnly createWrite(); } } else { // existing file - open ASSERT("Correct mode for existing file", (_mode == readOnlyMode) || (_mode == modifyMode)); if (_mode == readOnlyMode) { openRead(); } else { // _mode == modifyMode openModify(); } ASSERT("No root object", _root == 0); _root = restoreRoot(); } _isOpen = true; POSTCONDITION("Open", isOpen()); }
void WriteCPlusPlusClass::writeBody(QFile &file, JsonClass newClass) { file.write(QString("#include<" + newClass.name + ".h>\n\n").toStdString().c_str()); file.write(QString(newClass.name + "::" + newClass.name +"()\n{\n}\n\n").toStdString().c_str()); for (int i = 0; i < newClass.fields.size(); i++) { if (newClass.fields.at(i).type == "integer") { file.write(QString(createSetter(newClass.name, newClass.fields.at(i).name, "int") + "\n\n").toStdString().c_str()); } else if (newClass.fields.at(i).type == "string") { file.write(QString(createSetter(newClass.name, newClass.fields.at(i).name, "QString") + "\n\n").toStdString().c_str()); // write QString } else { file.write(QString(createSetter(newClass.name, newClass.fields.at(i).name, newClass.fields.at(i).type) + "\n\n").toStdString().c_str()); } } for (int i = 0; i < newClass.fields.size(); i++) { if (newClass.fields.at(i).type == "integer") { file.write(QString(createGetter(newClass.name, newClass.fields.at(i).name, "int") + "\n\n").toStdString().c_str()); } else if (newClass.fields.at(i).type == "string") { file.write(QString(createGetter(newClass.name, newClass.fields.at(i).name, "QString") + "\n\n").toStdString().c_str()); // write QString } else { file.write(QString(createGetter(newClass.name, newClass.fields.at(i).name, newClass.fields.at(i).type) + "\n\n").toStdString().c_str()); } } createRead(file, newClass); file.write("\n\n"); createWrite(file, newClass); }