RubyContinuousVariable RubyContinuousVariable_Impl::fromVariant(const QVariant& variant, const VersionString& version) { QVariantMap map = variant.toMap(); // dummy measure. need to do something better sometime (like make sure overload version of // this method is always called) RubyMeasure dummyMeasure(toPath("*.rb"), FileReferenceType::Unknown, FileReferenceType::Unknown); return RubyContinuousVariable( toUUID(map["uuid"].toString().toStdString()), toUUID(map["version_uuid"].toString().toStdString()), map.contains("name") ? map["name"].toString().toStdString() : std::string(), map.contains("display_name") ? map["display_name"].toString().toStdString() : std::string(), map.contains("description") ? map["description"].toString().toStdString() : std::string(), map.contains("uncertainty_description") ? analysis::detail::toUncertaintyDescription(map["uncertainty_description"],version) : OptionalUncertaintyDescription(), map.contains("minimum") ? map["minimum"].toDouble() : OptionalDouble(), map.contains("maximum") ? map["maximum"].toDouble() : OptionalDouble(), map.contains("increment") ? map["increment"].toDouble() : OptionalDouble(), map.contains("n_steps") ? map["n_steps"].toInt() : OptionalInt(), ruleset::detail::toOSArgument(map["argument"],version), dummyMeasure); }
RubyContinuousVariable RubyContinuousVariable_Impl::fromVariant(const QVariant& variant, const Measure& measure, const VersionString& version) { QVariantMap map = variant.toMap(); OS_ASSERT(measure.optionalCast<RubyMeasure>()); return RubyContinuousVariable( toUUID(map["uuid"].toString().toStdString()), toUUID(map["version_uuid"].toString().toStdString()), map.contains("name") ? map["name"].toString().toStdString() : std::string(), map.contains("display_name") ? map["display_name"].toString().toStdString() : std::string(), map.contains("description") ? map["description"].toString().toStdString() : std::string(), map.contains("uncertainty_description") ? analysis::detail::toUncertaintyDescription(map["uncertainty_description"],version) : OptionalUncertaintyDescription(), map.contains("minimum") ? map["minimum"].toDouble() : OptionalDouble(), map.contains("maximum") ? map["maximum"].toDouble() : OptionalDouble(), map.contains("increment") ? map["increment"].toDouble() : OptionalDouble(), map.contains("n_steps") ? map["n_steps"].toInt() : OptionalInt(), ruleset::detail::toOSArgument(map["argument"],version), measure.cast<RubyMeasure>()); }
MeasureGroup MeasureGroup_Impl::fromVariant(const QVariant& variant, const VersionString& version) { QVariantMap map = variant.toMap(); MeasureVector measures = deserializeOrderedVector( map["measures"].toList(), "measure_group_index", std::function<Measure (const QVariant&)>(std::bind(Measure_Impl::factoryFromVariant,std::placeholders::_1,version))); return MeasureGroup(toUUID(map["uuid"].toString().toStdString()), toUUID(map["version_uuid"].toString().toStdString()), map.contains("name") ? map["name"].toString().toStdString() : std::string(), map.contains("display_name") ? map["display_name"].toString().toStdString() : std::string(), map.contains("description") ? map["description"].toString().toStdString() : std::string(), map.contains("uncertainty_description") ? analysis::detail::toUncertaintyDescription(map["uncertainty_description"],version) : OptionalUncertaintyDescription(), measures); }