#include <Record.hpp>
Public Member Functions | |
std::vector< ObjectRecord > | children () const |
Returns all child Records in the database. More... | |
bool | connect (const std::string &signal, const QObject *qObject, const std::string &slot, Qt::ConnectionType type=Qt::AutoConnection) const |
Connect signal from this Records implementation object to slot on qObject. More... | |
std::string | databaseTableName () const |
Returns the name of the database table. More... | |
std::vector< JoinRecord > | joinRecords () const |
Returns all join Records in the database. More... | |
void | moveToThread (QThread *targetThread) |
Move the implementation object to target thread. More... | |
ProjectDatabase | projectDatabase () const |
Returns the ProjectDatabase, will throw if ProjectDatabase has been destructed. More... | |
std::vector< ObjectRecord > | resources () const |
Returns all resource Records in the database. More... | |
unsigned | useCount () const |
Returns number of shared references to this Records implementation object. More... | |
Getters | |
int | id () const |
Returns the id. More... | |
UUID | handle () const |
Returns the handle. More... | |
Template Methods | |
template<typename T > | |
T | cast () const |
Cast to Record of type T, can throw std::bad_cast. More... | |
template<typename T > | |
boost::optional< T > | optionalCast () const |
Cast to optional Record of type T. More... | |
Protected Member Functions | |
void | bindValues (QSqlQuery &query) const |
Bind values to a query for saving. More... | |
bool | compareValues (const QSqlQuery &query) const |
Checks that values (except id) are same as query. More... | |
bool | databaseCompare (const ProjectDatabase &projectDatabase) const |
Compares just this Record to the one in the database and check if they are exactly equal except for id, does not check children. More... | |
boost::optional< int > | findIdByHandle () const |
Try to find this Record's id in the database by using its handle. More... | |
bool | haveLastValues () const |
Checks if last values are set for this Record to revert back to. More... | |
void | insertRow (ProjectDatabase &projectDatabase) |
Inserts a row in the database for this Record and sets id. More... | |
void | insertRow (const std::shared_ptr< QSqlDatabase > &db) |
Inserts a row in the database for this Record and sets id. More... | |
void | makeDeleteByHandleQuery (QSqlQuery &query) const |
Makes a query to delete Record with this handle from this Record's database table. More... | |
void | makeDeleteByIdQuery (QSqlQuery &query) const |
Makes a query to delete Record with this id from this Record's database table. More... | |
void | makeSelectAllQuery (QSqlQuery &query) const |
Makes a query to select all Records in this Record's database table. More... | |
void | makeSelectByHandleQuery (QSqlQuery &query) const |
Makes a query to select Record with this handle in this Record's database table. More... | |
void | makeSelectByIdQuery (QSqlQuery &query) const |
Makes a query to select Record with this id in this Record's database table. More... | |
void | onChange () |
Method called whenever the Record changes, emits onChange signal. More... | |
void | removeRow (ProjectDatabase &projectDatabase) |
Removes just this Record from the database, does not remove children. More... | |
void | removeRow (const std::shared_ptr< QSqlDatabase > &db) |
Removes just this Record from the database, does not remove children. More... | |
bool | revertRow (ProjectDatabase &projectDatabase) |
Reverts just this Record then saves it in the database, does not revert children. More... | |
void | revertToLastValues () |
Revert values back to last state. More... | |
void | saveLastValues () |
Saves current values as last state. More... | |
void | saveRow (ProjectDatabase &projectDatabase) |
Saves just this Record in the database, does not save children. More... | |
void | saveRow (const std::shared_ptr< QSqlDatabase > &db) |
Saves just this Record in the database, does not save children. More... | |
void | setLastValues (const QSqlQuery &query, ProjectDatabase &projectDatabase) |
Set the last state of this object from the query (including id). More... | |
void | setLastValues (ProjectDatabase &projectDatabase) |
Sets the last state of just this Record from the database (including id), does not affect children. More... | |
Constructors and Destructors | |
virtual | ~Record () |
Record (std::shared_ptr< detail::Record_Impl > impl, ProjectDatabase projectDatabase) | |
Constructs a new Record. More... | |
Record (std::shared_ptr< detail::Record_Impl > impl) | |
Constructs a new Record but does not create or save to a row in the database, use with caution. More... | |
Record is the base class for saving and retrieving objects in a ProjectDatabase.
|
inlinevirtual |
|
protected |
|
protected |
Constructs a new Record but does not create or save to a row in the database, use with caution.
|
protected |
Bind values to a query for saving.
|
inline |
Cast to Record of type T, can throw std::bad_cast.
std::vector<ObjectRecord> openstudio::project::Record::children | ( | ) | const |
Returns all child Records in the database.
Note, will not find child Records which have been removed.
|
protected |
Checks that values (except id) are same as query.
bool openstudio::project::Record::connect | ( | const std::string & | signal, |
const QObject * | qObject, | ||
const std::string & | slot, | ||
Qt::ConnectionType | type = Qt::AutoConnection |
||
) | const |
Connect signal from this Records implementation object to slot on qObject.
|
protected |
Compares just this Record to the one in the database and check if they are exactly equal except for id, does not check children.
std::string openstudio::project::Record::databaseTableName | ( | ) | const |
Returns the name of the database table.
|
protected |
Try to find this Record's id in the database by using its handle.
UUID openstudio::project::Record::handle | ( | ) | const |
Returns the handle.
|
protected |
Checks if last values are set for this Record to revert back to.
int openstudio::project::Record::id | ( | ) | const |
Returns the id.
|
protected |
Inserts a row in the database for this Record and sets id.
|
protected |
Inserts a row in the database for this Record and sets id.
std::vector<JoinRecord> openstudio::project::Record::joinRecords | ( | ) | const |
Returns all join Records in the database.
Note, will not find join Records which have been removed.
|
protected |
|
protected |
|
protected |
Makes a query to select all Records in this Record's database table.
|
protected |
|
protected |
void openstudio::project::Record::moveToThread | ( | QThread * | targetThread | ) |
Move the implementation object to target thread.
|
protected |
Method called whenever the Record changes, emits onChange signal.
|
inline |
Cast to optional Record of type T.
ProjectDatabase openstudio::project::Record::projectDatabase | ( | ) | const |
Returns the ProjectDatabase, will throw if ProjectDatabase has been destructed.
|
protected |
Removes just this Record from the database, does not remove children.
|
protected |
Removes just this Record from the database, does not remove children.
std::vector<ObjectRecord> openstudio::project::Record::resources | ( | ) | const |
Returns all resource Records in the database.
Note, will not find resource Records which have been removed.
|
protected |
Reverts just this Record then saves it in the database, does not revert children.
|
protected |
Revert values back to last state.
|
protected |
Saves current values as last state.
|
protected |
Saves just this Record in the database, does not save children.
|
protected |
Saves just this Record in the database, does not save children.
|
protected |
Set the last state of this object from the query (including id).
|
protected |
Sets the last state of just this Record from the database (including id), does not affect children.
unsigned openstudio::project::Record::useCount | ( | ) | const |
Returns number of shared references to this Records implementation object.