Exemplo n.º 1
0
 UUID ComponentData_Impl::createVersionUUID() {
   bool ok = setString(OS_ComponentDataFields::VersionUUID,toString(createUUID()));
   OS_ASSERT(ok);
   ok = setInt(OS_ComponentDataFields::VersionTimestamp,time(nullptr));
   OS_ASSERT(ok);
   return versionUUID();
 }
Exemplo n.º 2
0
void InputVariableRecord::constructRelatedRecords(const analysis::InputVariable& inputVariable) {
  AttributeVector attributes, dbAttributes;
  InputVariableRecord copyOfThis(getImpl<detail::InputVariableRecord_Impl>());

  if (analysis::OptionalUncertaintyDescription dbUDesc = uncertaintyDescription()) {
    dbAttributes = dbUDesc->cast<analysis::GenericUncertaintyDescription>().attributes();
  }
  if (analysis::OptionalUncertaintyDescription udesc = inputVariable.uncertaintyDescription()) {
    attributes = udesc->cast<analysis::GenericUncertaintyDescription>().attributes();
  }

  for (const Attribute& attribute : attributes) {
    // find in dbOptions
    auto dbIt = std::find_if(dbAttributes.begin(),dbAttributes.end(),
                             std::bind(uuidsEqual<Attribute,Attribute>,std::placeholders::_1,attribute));
    // if not there, or if different versionUUID, save it
    if ((dbIt == dbAttributes.end()) || (attribute.versionUUID() != dbIt->versionUUID())) {
      AttributeRecord udescAttributeRecord(attribute,copyOfThis);
    }

    // if there, erase from dbOptions
    if (dbIt != dbAttributes.end()) {
      dbAttributes.erase(dbIt);
    }
  }

  // any attributes left in dbAttributes should be removed from the database
  ProjectDatabase database = projectDatabase();
  for (const Attribute& toRemove : dbAttributes) {
    AttributeRecord dbUDescAttributeRecord = database.getObjectRecordByHandle<AttributeRecord>(toRemove.uuid()).get();
    database.removeRecord(dbUDescAttributeRecord);
  }
}
Exemplo n.º 3
0
  QVariant AnalysisObject_Impl::toVariant() const {
    QVariantMap analysisObjectData;

    analysisObjectData["uuid"] = toQString(removeBraces(uuid()));
    analysisObjectData["version_uuid"] = toQString(removeBraces(versionUUID()));
    std::string str = name();
    if (!str.empty()) {
      analysisObjectData["name"] = toQString(str);
    }
    str = displayName();
    if (!str.empty()) {
      analysisObjectData["display_name"] = toQString(str);
    }
    str = description();
    if (!str.empty()) {
      analysisObjectData["description"] = toQString(str);
    }

    return QVariant(analysisObjectData);
  }
Exemplo n.º 4
0
 bool AnalysisObject_Impl::uuidAndVersionEqual(const AnalysisObject& other) const {
   return ((uuid() == other.uuid()) && (versionUUID() == other.versionUUID()));
 }