Ejemplo n.º 1
0
boost::optional<MeasureGroupRecord> MeasureGroupRecord::factoryFromQuery(const QSqlQuery& query,
                                                                         ProjectDatabase& database)
{
  OptionalMeasureGroupRecord result;
  try {
    result = MeasureGroupRecord(query,database);
  }
  catch (const std::exception& e) {
    LOG(Error,"Unable to construct MeasureGroupRecord from query, because '"
        << e.what() << "'.");
  }
  return result;
}
Ejemplo n.º 2
0
DiscreteVariableRecord DiscreteVariableRecord::factoryFromDiscreteVariable(
    const analysis::DiscreteVariable& discreteVariable,
    ProblemRecord& problemRecord,
    int workflowIndex)
{
  if (discreteVariable.optionalCast<analysis::MeasureGroup>()) {
    return MeasureGroupRecord(discreteVariable.cast<analysis::MeasureGroup>(),
                              problemRecord,
                              workflowIndex);
  }

  OS_ASSERT(false);
  return DiscreteVariableRecord(std::shared_ptr<detail::DiscreteVariableRecord_Impl>());
}
Ejemplo n.º 3
0
DiscreteVariableRecord DiscreteVariableRecord::factoryFromDiscreteVariable(
    const analysis::DiscreteVariable& discreteVariable,
    FunctionRecord& functionRecord,
    int variableVectorIndex,
    boost::optional<double> functionCoefficient)
{
  if (discreteVariable.optionalCast<analysis::MeasureGroup>()) {
    return MeasureGroupRecord(discreteVariable.cast<analysis::MeasureGroup>(),
                              functionRecord,
                              variableVectorIndex,
                              functionCoefficient);
  }

  OS_ASSERT(false);
  return DiscreteVariableRecord(std::shared_ptr<detail::DiscreteVariableRecord_Impl>());
}
Ejemplo n.º 4
0
boost::optional<MeasureGroupRecord> MeasureGroupRecord::getMeasureGroupRecord(int MeasureGroupRecordId,
                                                                              ProjectDatabase& database)
{
  QSqlQuery query(*(database.qSqlDatabase()));
  query.prepare(toQString("SELECT * FROM " + VariableRecord::databaseTableName() + " WHERE id=:id AND " +
                          "inputVariableRecordType=:inputVariableRecordType AND " +
                          "discreteVariableRecordType=:discreteVariableRecordType"));
  query.bindValue(":id", MeasureGroupRecordId);
  query.bindValue(":variableRecordType", VariableRecordType::InputVariableRecord);
  query.bindValue(":inputVariableRecordType", InputVariableRecordType::DiscreteVariableRecord);
  query.bindValue(":discreteVariableRecordType", DiscreteVariableRecordType::MeasureGroupRecord);
  assertExec(query);
  if (query.first()) {
    return MeasureGroupRecord(query, database);
  }

  return boost::none;
}
Ejemplo n.º 5
0
std::vector<MeasureGroupRecord> MeasureGroupRecord::getMeasureGroupRecords(ProjectDatabase& database)
{
  std::vector<MeasureGroupRecord> result;

  QSqlQuery query(*(database.qSqlDatabase()));
  query.prepare(toQString("SELECT * FROM " + VariableRecord::databaseTableName() +
                          " WHERE variableRecordType=:variableRecordType AND " +
                          "inputVariableRecordType=:inputVariableRecordType AND " +
                          "discreteVariableRecordType=:discreteVariableRecordType"));
  query.bindValue(":variableRecordType", VariableRecordType::InputVariableRecord);
  query.bindValue(":inputVariableRecordType", InputVariableRecordType::DiscreteVariableRecord);
  query.bindValue(":discreteVariableRecordType", DiscreteVariableRecordType::MeasureGroupRecord);
  assertExec(query);
  while (query.next()) {
    result.push_back(MeasureGroupRecord(query, database));
  }

  return result;
}
Ejemplo n.º 6
0
boost::optional<DiscreteVariableRecord> DiscreteVariableRecord::factoryFromQuery(
    const QSqlQuery& query,
    ProjectDatabase& database)
{
  OptionalDiscreteVariableRecord result;

  int discreteVariableRecordType = query.value(VariableRecordColumns::discreteVariableRecordType).toInt();

  switch (discreteVariableRecordType) {
    case DiscreteVariableRecordType::MeasureGroupRecord :
      result = MeasureGroupRecord(query, database).cast<DiscreteVariableRecord>();
     break;
    default :
      LOG(Error,"Unknown DiscreteVariableRecordType " << discreteVariableRecordType);
      return boost::none;
  }

  return result;
}