Пример #1
0
  // @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);
}