コード例 #1
0
boost::optional<RubyContinuousVariableRecord> RubyContinuousVariableRecord::factoryFromQuery(const QSqlQuery& query, ProjectDatabase& database)
{
  OptionalRubyContinuousVariableRecord result;

  try {
    result = RubyContinuousVariableRecord(query,database);
  }
  catch (const std::exception& e) {
    LOG(Error,"Unable to construct RubyContinuousVariableRecord from query, because '"
        << e.what() << "'.");
  }

  return result;
}
コード例 #2
0
ContinuousVariableRecord ContinuousVariableRecord::factoryFromContinuousVariable(
    const analysis::ContinuousVariable& variable,
    ProblemRecord& problemRecord,
    int variableVectorIndex)
{
  if (variable.optionalCast<analysis::RubyContinuousVariable>()) {
    return RubyContinuousVariableRecord(
        variable.cast<analysis::RubyContinuousVariable>(),
        problemRecord,
        variableVectorIndex);
  }

  OS_ASSERT(false);
  return ContinuousVariableRecord(boost::shared_ptr<detail::ContinuousVariableRecord_Impl>());
}
コード例 #3
0
ContinuousVariableRecord ContinuousVariableRecord::factoryFromContinuousVariable(
    const analysis::ContinuousVariable& variable,
    FunctionRecord& functionRecord,
    int variableVectorIndex,
    boost::optional<double> functionCoefficient)
{
  if (variable.optionalCast<analysis::RubyContinuousVariable>()) {
    return RubyContinuousVariableRecord(
        variable.cast<analysis::RubyContinuousVariable>(),
        functionRecord,
        variableVectorIndex,
        functionCoefficient);
  }

  OS_ASSERT(false);
  return ContinuousVariableRecord(boost::shared_ptr<detail::ContinuousVariableRecord_Impl>());
}
コード例 #4
0
std::vector<RubyContinuousVariableRecord> RubyContinuousVariableRecord::getRubyContinuousVariableRecords(ProjectDatabase& database) {
  std::vector<RubyContinuousVariableRecord> result;

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

  return result;
}
コード例 #5
0
boost::optional<ContinuousVariableRecord> ContinuousVariableRecord::factoryFromQuery(
    const QSqlQuery& query,
    ProjectDatabase& database)
{
  OptionalContinuousVariableRecord result;

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

  switch (continuousVariableRecordType){
    case ContinuousVariableRecordType::RubyContinuousVariableRecord :
      result = RubyContinuousVariableRecord(query,database);
      break;
    default:
      LOG(Error, "Unknown continuousVariableRecordType " << continuousVariableRecordType);
  }

  return result;
}
コード例 #6
0
boost::optional<RubyContinuousVariableRecord> RubyContinuousVariableRecord::getRubyContinuousVariableRecord(int id, ProjectDatabase& database) {
  boost::optional<RubyContinuousVariableRecord> result;

  QSqlQuery query(*(database.qSqlDatabase()));
  query.prepare(toQString("SELECT * FROM " + VariableRecord::databaseTableName() +
                          " WHERE variableRecordType=:variableRecordType AND " +
                          "inputVariableRecordType=:inputVariableRecordType AND " +
                          "continuousVariableRecordType=:continuousVariableRecordType AND " +
                          "id=:id"));
  query.bindValue(":variableRecordType", VariableRecordType::InputVariableRecord);
  query.bindValue(":inputVariableRecordType", InputVariableRecordType::ContinuousVariableRecord);
  query.bindValue(":continuousVariableRecordType", ContinuousVariableRecordType::RubyContinuousVariableRecord);
  query.bindValue(":id",id);
  assertExec(query);
  if (query.first()) {
    result = RubyContinuousVariableRecord(query, database);
  }

  return result;
}