OpenStudioCore:project
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Related Functions | List of all members
openstudio::project::JoinRecord Class Reference

#include <JoinRecord.hpp>

+ Inheritance diagram for openstudio::project::JoinRecord:

Public Member Functions

UUID leftHandle () const
 get the left handle More...
 
int leftId () const
 get the left id More...
 
ObjectRecord leftObject () const
 get the left object More...
 
UUID rightHandle () const
 get the right handle More...
 
int rightId () const
 get the right id More...
 
ObjectRecord rightObject () const
 get the right object More...
 
virtual ~JoinRecord ()
 
- Public Member Functions inherited from openstudio::project::Record
std::vector< ObjectRecordchildren () 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< JoinRecordjoinRecords () 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< ObjectRecordresources () const
 Returns all resource Records in the database. More...
 
unsigned useCount () const
 Returns number of shared references to this Records implementation object. More...
 
int id () const
 Returns the id. More...
 
UUID handle () const
 Returns the handle. More...
 
template<typename 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...
 
virtual ~Record ()
 

Static Public Member Functions

static void createIndices (QSqlDatabase &qSqlDatabase, const std::string &databaseTableName)
 
template<typename T >
static boost::optional< T > getJoinRecord (int leftId, int rightId, ProjectDatabase projectDatabase)
 get join More...
 
template<typename T >
static std::vector< T > getJoinRecordsForLeftId (int leftId, ProjectDatabase projectDatabase)
 get joins for left More...
 
template<typename T >
static std::vector< T > getJoinRecordsForRightId (int rightId, ProjectDatabase projectDatabase)
 get joins for right More...
 
template<typename T >
static bool unlink (int leftId, int rightId, ProjectDatabase projectDatabase)
 unlink More...
 
template<typename T >
static bool unlinkLeft (int leftId, ProjectDatabase projectDatabase)
 unlink left More...
 
template<typename T >
static bool unlinkRight (int rightId, ProjectDatabase projectDatabase)
 unlink right More...
 

Protected Types

typedef detail::JoinRecord_Impl ImplType
 

Protected Member Functions

 JoinRecord (std::shared_ptr< detail::JoinRecord_Impl > impl, ProjectDatabase projectDatabase)
 constructor More...
 
 JoinRecord (std::shared_ptr< detail::JoinRecord_Impl > impl)
 constructor More...
 
- Protected Member Functions inherited from openstudio::project::Record
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...
 
 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...
 

Related Functions

(Note that these are not member functions.)

typedef std::vector< JoinRecordJoinRecordVector
 
typedef boost::optional
< JoinRecord
OptionalJoinRecord
 

Detailed Description

JoinRecord is the base class for join objects that can be saved to a ProjectDatabase.

JoinRecords are named (LeftClass)_(RightClass)_JoinRecord, e.g. Variable_ParameterSpace_JoinRecord.

Member Typedef Documentation

typedef detail::JoinRecord_Impl openstudio::project::JoinRecord::ImplType
protected

Constructor & Destructor Documentation

virtual openstudio::project::JoinRecord::~JoinRecord ( )
inlinevirtual
openstudio::project::JoinRecord::JoinRecord ( std::shared_ptr< detail::JoinRecord_Impl >  impl,
ProjectDatabase  projectDatabase 
)
protected

constructor

openstudio::project::JoinRecord::JoinRecord ( std::shared_ptr< detail::JoinRecord_Impl >  impl)
protected

constructor

Member Function Documentation

static void openstudio::project::JoinRecord::createIndices ( QSqlDatabase &  qSqlDatabase,
const std::string &  databaseTableName 
)
static
template<typename T >
static boost::optional<T> openstudio::project::JoinRecord::getJoinRecord ( int  leftId,
int  rightId,
ProjectDatabase  projectDatabase 
)
inlinestatic

get join

template<typename T >
static std::vector<T> openstudio::project::JoinRecord::getJoinRecordsForLeftId ( int  leftId,
ProjectDatabase  projectDatabase 
)
inlinestatic

get joins for left

template<typename T >
static std::vector<T> openstudio::project::JoinRecord::getJoinRecordsForRightId ( int  rightId,
ProjectDatabase  projectDatabase 
)
inlinestatic

get joins for right

UUID openstudio::project::JoinRecord::leftHandle ( ) const

get the left handle

int openstudio::project::JoinRecord::leftId ( ) const

get the left id

ObjectRecord openstudio::project::JoinRecord::leftObject ( ) const

get the left object

UUID openstudio::project::JoinRecord::rightHandle ( ) const

get the right handle

int openstudio::project::JoinRecord::rightId ( ) const

get the right id

ObjectRecord openstudio::project::JoinRecord::rightObject ( ) const

get the right object

template<typename T >
static bool openstudio::project::JoinRecord::unlink ( int  leftId,
int  rightId,
ProjectDatabase  projectDatabase 
)
inlinestatic

unlink

template<typename T >
static bool openstudio::project::JoinRecord::unlinkLeft ( int  leftId,
ProjectDatabase  projectDatabase 
)
inlinestatic

unlink left

template<typename T >
static bool openstudio::project::JoinRecord::unlinkRight ( int  rightId,
ProjectDatabase  projectDatabase 
)
inlinestatic

unlink right

Friends And Related Function Documentation

typedef std::vector<JoinRecord> JoinRecordVector
related
typedef boost::optional<JoinRecord> OptionalJoinRecord
related