OpenLexocad
27.0
|
#include <PropertyContainer.h>
Public Types | |
enum | CheckStatus { CheckStatus::IsNew, CheckStatus::IsUpdated } |
Public Member Functions | |
PropertyContainer (void) | |
PropertyContainer (const PropertyContainer &rhs) | |
virtual | ~PropertyContainer (void)=default |
bool | addProperty (Core::Property *p, const std::string &name) |
Core::Property * | addProperty (Base::Type t, const std::string &name, const Core::Variant &defaultValue) |
Adds a property to the PropertyContainer. Returns the added property on success, '0' on failure. More... | |
Core::PropertyUser * | addPropertyUser (const std::string &name, const Core::Variant &value) |
Convenience method for Python bindings. More... | |
void | removeProperty (Core::Property *p, std::string pName) |
Removes a property from the PropertyContainer and deletes it. More... | |
void | removeAllProperties () |
Removes all properties from the PropertyContainer and deletes them. More... | |
Core::Property * | getPropertyByName (const std::string &name) const |
Returns the property with name 'name'. Returns '0' on failure. More... | |
Core::Property * | getPropertyByName (const Base::String &name) const |
Returns the property with name 'name'. Returns '0' on failure. More... | |
template<typename T > | |
T * | getPropertyByName (const std::string &name) const |
Returns the property of type T with name 'name'. Returns 'nullptr' on failure. More... | |
void | getPropertyMap (Core::PropertyMap &) const |
Fills a PropertyMap. More... | |
std::vector< std::pair< Core::Property *, std::string > > | getPropertiesAndNameByType (Base::Type type) const |
Returns all properties of type 'type'. More... | |
std::vector< Core::Property * > | getPropertiesByType (Base::Type type) const |
std::vector< Core::Property * > | getPropertiesByTypes (const std::vector< Base::Type > &type) const |
bool | setPropertyFromVariant (const std::string &name, const Core::Variant &value) |
Sets a property to value. More... | |
bool | setProperty (const std::string &name, double value) |
bool | setProperty (const std::string &name, int value) |
bool | setProperty (const std::string &name, const Geom::Vec &value) |
bool | setProperty (const std::string &name, const std::list< Geom::Vec > &value) |
bool | setProperty (const std::string &name, const Geom::Trsf &value) |
bool | setProperty (const std::string &name, const std::string &value) |
bool | setProperty (const std::string &name, const char *value) |
bool | setProperty (const std::string &name, const Base::String &value) |
bool | setProperty (const std::string &name, const Geom::Pnt &value) |
bool | setProperty (const std::string &name, const Geom::Pnt2d &value) |
bool | setProperty (const std::string &name, const std::vector< Geom::Pnt > &value) |
bool | setProperty (const std::string &name, const std::vector< Geom::Pnt2d > &value) |
bool | setProperty (const std::string &name, const MD5 &value) |
bool | setProperty (const std::string &name, bool value) |
bool | setProperty (const std::string &name, Core::DocObject *value) |
bool | setProperty (const std::string &name, const Core::DocObject *value) |
bool | setProperty (const std::string &name, const boost::unordered_set< Core::DocObject * > &value) |
bool | setProperty (const std::string &name, const std::list< Core::DocObject * > &value) |
bool | setProperty (const std::string &name, const std::vector< int > &value) |
bool | setProperty (const std::string &name, const QFont &value) |
bool | setProperty (const std::string &name, const Draw::DrawStyle &value) |
bool | setProperty (const std::string &name, const Draw::Arrowheads &value) |
bool | setProperty (const std::string &name, const Geom::Dir &value) |
bool | setProperty (const std::string &name, const Geom::Dir2d &value) |
bool | setProperty (const std::string &name, const Base::Color &value) |
bool | setProperty (const std::string &name, const Geom::Ax1 &value) |
bool | setProperty (const std::string &name, const Geom::Ax2 &value) |
bool | setProperty (const std::string &name, const Draw::Texture2Transform &value) |
bool | setProperty (const std::string &name, const std::list< std::list< Geom::Pnt > > &value) |
bool | setProperty (const std::string &name, const std::list< double > &value) |
bool | setProperty (const std::string &name, pBrepData &value) |
virtual bool | onBeforeChange (Core::Property *p, const Core::Variant &newValue=Core::Variant()) |
virtual void | onChanged (Core::Property *p) |
Is called after a property in a PropertyContainer has been changed. More... | |
virtual void | onDeleted () |
Is called when a PropertyContainer's status is set to MarkedForDelete. More... | |
virtual void | onNew () |
Is called when a PropertyContainer's status is set to New. More... | |
virtual void | save (Base::AbstractWriter &writer, Base::PersistanceVersion &version) |
Saves the PropertyContainer to writer. More... | |
virtual void | restore (Base::AbstractXMLReader &reader, Base::PersistanceVersion &version) |
Restores the PropertyContainer from reader in specified version. More... | |
bool | enableNotify (const bool enable) |
bool | isNotifyEnabled (void) const |
Returns whether notification of changes to the field values in the container is propagated to its auditors. More... | |
void | touch () |
Sets all properties of this PropertyContainer to updated. More... | |
bool | isDeleted () const |
bool | isStatusDeleted () const |
Returns true if the status is set to 'Deleted'. More... | |
bool | isMarkedForDelete () const |
Returns true if the status is set to 'MarkedForDelete'. More... | |
bool | isMarkedForDeleteFinal () const |
Returns true if the status is set to 'MarkedForDeleteFinal'. More... | |
bool | isDeletedFinal () const |
Returns true if the status is set to 'DeletedFinal'. More... | |
bool | isNew () const |
Returns true if the status is set to 'New'. More... | |
bool | isUpdated () const |
Returns true if the status is set to 'Updated'. More... | |
bool | isValid () const |
Returns true if the status is set to 'Valid'. More... | |
bool | hasErrors () const |
Returns true if the status is set to 'Error'. More... | |
void | setData (const std::string &key, void *data) |
Adds arbitrary data for this key to the PropertyContainer (Used in SDK) More... | |
void * | getData (const std::string &key, bool *ok=nullptr) const |
Returns data for this key from the PropertyContainer (Used in SDK) More... | |
void | removeData (const std::string &key) |
Removes the data from the PropertyContainer (Used in SDK) More... | |
bool | hasSameValuesAs (const PropertyContainer *container) const |
Returns 'true' if all values in 'container' match the corresponding property in this PropertyContainer. More... | |
void | setPropertyValues (const PropertyContainer *other) |
Copies the property values from 'other' PropertyContainer to this PropertyContainer. More... | |
template<typename T > | |
T | getPropertyValueByName (const std::string &propertyName, bool *ok=0) const |
Returns the property value T with this name. If ok=true T holds a valid value. More... | |
virtual void | ensureIntegrity () |
void | integrityMaintained () |
void | integrityLost () |
Sets _integrity to false. More... | |
bool | checkIntegrity () |
Returns the value of _integrity. More... | |
Core::PropertyValueMap | getPropertyValueMap () const |
Returns a map with the name of the property and its PropertyValue as a struct of the property type and the Core::Variant value. More... | |
std::map< std::string, Core::Variant > | getKeyValueMap () const |
Returns all keys and sub keys with their values of this container. More... | |
bool | setPropertyFromKeyValue (const std::string &propertyName, const std::string &key, const Core::Variant &value) |
Sets the key in a property to value. More... | |
std::set< Core::Property * > | getUpdatedProperties () const |
Returns all properties that were updated since the last recompute. More... | |
void | setUpdated () |
Sets the status to 'Updated' if the old status was 'Valid'. More... | |
void | setUpdated (const Core::Property *p) |
void | setHasErrors () |
Sets the status to 'Error'. More... | |
void | setNew () |
Sets the status to 'New'. More... | |
void | setValid () |
Sets the status to 'Valid'. More... | |
void | setDeleted () |
Sets the status to 'Delete'. More... | |
void | setMarkedForDelete () |
Sets the status to 'MarkedForDelete'. More... | |
void | setMarkedForDeleteFinal () |
Sets the status to 'MarkedForDeleteFinal'. More... | |
void | setDeleteFinal () |
Sets the status to 'DeleteFinal'. More... | |
unsigned int | getPropertyChangeStatus () const |
CheckStatus | getCheckStatus () const |
Gets checkStatus. More... | |
void | setCheckStatus (CheckStatus status) |
Sets checkStatus. More... | |
void | setAllPropertiesValid () |
Sets the status of all properties to 'Valid'. More... | |
void | setPropertyValues (const Core::PropertyValueMap &other) |
Copies the property values from a Core::PropertyValueMap to this PropertyContainer. More... | |
std::vector< Core::Property * > | getPropertiesOrdered () const |
Returns the properties in the init order. More... | |
void | __setCheckIsNew__ () |
For internal use only. More... | |
virtual bool | check_lx (char *f, char *n) |
bool | rollBack () |
Brings back the PropertyContainer to its last valid status. More... | |
void | saveLastValidPropertyMap () |
Saves the last valid property map, p.e. before a recompute to enable a rollback. More... | |
const Core::PropertyValueMap & | getLastValidPropertyMap () const |
Returns the last valid PropertyValueMap. More... | |
![]() | |
virtual void | saveDocFile (Base::AbstractWriter &, const Base::String &, const Base::String &) |
This method is used to save large amounts of data to a binary file. More... | |
virtual void | restoreDocFile (Base::Reader &, const Base::String &) |
This method is used to restore large amounts of data from a binary file. More... | |
virtual bool | mustbeSaved () const |
Return 'true' if this object must always be saved in the file. More... | |
virtual bool | createSQL (Base::AbstractWriter &, Base::PersistanceVersion &, bool) |
This method is used to save properties or very small amounts of data to an XML document. More... | |
![]() | |
virtual Type | getTypeId (void) const |
template<typename T > | |
bool | isDerivedFrom () const |
BaseClass () | |
Construction. More... | |
virtual | ~BaseClass () |
Destruction. More... | |
Public Attributes | |
bool | isRestored = false |
Protected Types | |
enum | Status { Status::New = 1, Status::Updated = 2, Status::Valid = 3, Status::MarkedForDelete = 4, Status::MarkedForDeleteFinal, Status::Deleted, Status::DeletedFinal, Status::Error } |
Protected Member Functions | |
void | addPropertiesFrom (const Core::PropertyContainer *other) |
Adds copy of all properties from other to this PropertyContainer. More... | |
virtual void | setStatus (Status status) |
Status | getStatus () const |
bool | checkForAlreadyExistingProperty (Core::Property *property) |
virtual void | restoreProperty (Core::Property *property, const Base::String &name, Base::AbstractXMLReader &reader, Base::PersistanceVersion &version) |
Restores property from from reader in specified version. More... | |
Protected Attributes | |
unsigned int | _changedProperties |
Friends | |
class | PostInitClass |
class | CoreDocument |
class | ObjectExecutor |
Additional Inherited Members | |
![]() | |
static Type | getClassTypeId (void) |
static void | init (void) |
static void * | create (void) |
static void | setIfcNameAndID (std::string n, int id) |
![]() | |
static void | initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=0) |
static void | initIfcTypes (std::string s, Base::Type classTypeId, int id) |
|
strong |
|
strongprotected |
Core::PropertyContainer::PropertyContainer | ( | void | ) |
Core::PropertyContainer::PropertyContainer | ( | const PropertyContainer & | rhs | ) |
|
virtualdefault |
void Core::PropertyContainer::__setCheckIsNew__ | ( | ) |
For internal use only.
|
protected |
Adds copy of all properties from other to this PropertyContainer.
bool Core::PropertyContainer::addProperty | ( | Core::Property * | p, |
const std::string & | name | ||
) |
Adds a property to the PropertyContainer. The PropertyContainer takes ownership of the property. Returns 'true' on success, 'false' on failure.
Core::Property* Core::PropertyContainer::addProperty | ( | Base::Type | t, |
const std::string & | name, | ||
const Core::Variant & | defaultValue | ||
) |
Adds a property to the PropertyContainer. Returns the added property on success, '0' on failure.
Core::PropertyUser* Core::PropertyContainer::addPropertyUser | ( | const std::string & | name, |
const Core::Variant & | value | ||
) |
Convenience method for Python bindings.
|
virtual |
|
protected |
bool Core::PropertyContainer::checkIntegrity | ( | ) |
Returns the value of _integrity.
bool Core::PropertyContainer::enableNotify | ( | const bool | enable | ) |
Sets whether notification will be propagated on changing the values of the contained properties. The old value of the flag is returned.
|
virtual |
Is called in enableNotify(true), at the end of this method the state of the container (object) has to be completely consistent (i.e. all properties that need to match other properties, match them) and _integrity should be set to true
CheckStatus Core::PropertyContainer::getCheckStatus | ( | ) | const |
Gets checkStatus.
void* Core::PropertyContainer::getData | ( | const std::string & | key, |
bool * | ok = nullptr |
||
) | const |
Returns data for this key from the PropertyContainer (Used in SDK)
std::map<std::string, Core::Variant> Core::PropertyContainer::getKeyValueMap | ( | ) | const |
Returns all keys and sub keys with their values of this container.
const Core::PropertyValueMap& Core::PropertyContainer::getLastValidPropertyMap | ( | ) | const |
Returns the last valid PropertyValueMap.
std::vector<std::pair<Core::Property*, std::string> > Core::PropertyContainer::getPropertiesAndNameByType | ( | Base::Type | type | ) | const |
Returns all properties of type 'type'.
std::vector<Core::Property*> Core::PropertyContainer::getPropertiesByType | ( | Base::Type | type | ) | const |
std::vector<Core::Property*> Core::PropertyContainer::getPropertiesByTypes | ( | const std::vector< Base::Type > & | type | ) | const |
std::vector<Core::Property*> Core::PropertyContainer::getPropertiesOrdered | ( | ) | const |
Returns the properties in the init order.
|
inline |
Returns the property with name 'name'. Returns '0' on failure.
|
inline |
Returns the property with name 'name'. Returns '0' on failure.
|
inline |
Returns the property of type T with name 'name'. Returns 'nullptr' on failure.
unsigned int Core::PropertyContainer::getPropertyChangeStatus | ( | ) | const |
void Core::PropertyContainer::getPropertyMap | ( | Core::PropertyMap & | ) | const |
Fills a PropertyMap.
|
inline |
Returns the property value T with this name. If ok=true T holds a valid value.
Core::PropertyValueMap Core::PropertyContainer::getPropertyValueMap | ( | ) | const |
Returns a map with the name of the property and its PropertyValue as a struct of the property type and the Core::Variant value.
|
protected |
std::set<Core::Property*> Core::PropertyContainer::getUpdatedProperties | ( | ) | const |
Returns all properties that were updated since the last recompute.
bool Core::PropertyContainer::hasErrors | ( | ) | const |
Returns true if the status is set to 'Error'.
bool Core::PropertyContainer::hasSameValuesAs | ( | const PropertyContainer * | container | ) | const |
Returns 'true' if all values in 'container' match the corresponding property in this PropertyContainer.
void Core::PropertyContainer::integrityLost | ( | ) |
Sets _integrity to false.
void Core::PropertyContainer::integrityMaintained | ( | ) |
Sets _integrity to true If you know for certain the state of the container (object) is completely consistent (i.e. all properties that need to match other properties, match them), make sure to always call this method after enableNotify(false) and do it before enableNotify(true) is called
bool Core::PropertyContainer::isDeleted | ( | ) | const |
Returns true if the status of the PropertyContainer is set to MarkedForDelete, Deleted or DeletedFinal
bool Core::PropertyContainer::isDeletedFinal | ( | ) | const |
Returns true if the status is set to 'DeletedFinal'.
bool Core::PropertyContainer::isMarkedForDelete | ( | ) | const |
Returns true if the status is set to 'MarkedForDelete'.
bool Core::PropertyContainer::isMarkedForDeleteFinal | ( | ) | const |
Returns true if the status is set to 'MarkedForDeleteFinal'.
bool Core::PropertyContainer::isNew | ( | ) | const |
Returns true if the status is set to 'New'.
bool Core::PropertyContainer::isNotifyEnabled | ( | void | ) | const |
Returns whether notification of changes to the field values in the container is propagated to its auditors.
bool Core::PropertyContainer::isStatusDeleted | ( | ) | const |
Returns true if the status is set to 'Deleted'.
bool Core::PropertyContainer::isUpdated | ( | ) | const |
Returns true if the status is set to 'Updated'.
bool Core::PropertyContainer::isValid | ( | ) | const |
Returns true if the status is set to 'Valid'.
|
virtual |
Is called before a property in a PropertyContainer has been changed. Checks if the change is possible - returns true if it is, otherwise returns false, Can be used to update other variables in the container according to the change being made. Beware, newValue is an optional argument - whenever you use it, make sure that this condition holds true: newValue.getType() != Core::Variant::Type::Undefined, otherwise you are checking invalid data
|
virtual |
Is called after a property in a PropertyContainer has been changed.
Reimplemented in Core::DocObject.
|
virtual |
Is called when a PropertyContainer's status is set to MarkedForDelete.
|
virtual |
Is called when a PropertyContainer's status is set to New.
void Core::PropertyContainer::removeAllProperties | ( | ) |
Removes all properties from the PropertyContainer and deletes them.
void Core::PropertyContainer::removeData | ( | const std::string & | key | ) |
Removes the data from the PropertyContainer (Used in SDK)
void Core::PropertyContainer::removeProperty | ( | Core::Property * | p, |
std::string | pName | ||
) |
Removes a property from the PropertyContainer and deletes it.
|
virtual |
Restores the PropertyContainer from reader in specified version.
Implements Base::Persistance.
Reimplemented in Core::PythonClassObject, and Core::PythonScriptObject.
|
protectedvirtual |
Restores property from from reader in specified version.
bool Core::PropertyContainer::rollBack | ( | ) |
Brings back the PropertyContainer to its last valid status.
|
virtual |
Saves the PropertyContainer to writer.
Implements Base::Persistance.
Reimplemented in Core::PythonClassObject, and Core::PythonScriptObject.
void Core::PropertyContainer::saveLastValidPropertyMap | ( | ) |
Saves the last valid property map, p.e. before a recompute to enable a rollback.
void Core::PropertyContainer::setAllPropertiesValid | ( | ) |
Sets the status of all properties to 'Valid'.
void Core::PropertyContainer::setCheckStatus | ( | CheckStatus | status | ) |
Sets checkStatus.
void Core::PropertyContainer::setData | ( | const std::string & | key, |
void * | data | ||
) |
Adds arbitrary data for this key to the PropertyContainer (Used in SDK)
void Core::PropertyContainer::setDeleted | ( | ) |
Sets the status to 'Delete'.
void Core::PropertyContainer::setDeleteFinal | ( | ) |
Sets the status to 'DeleteFinal'.
void Core::PropertyContainer::setHasErrors | ( | ) |
Sets the status to 'Error'.
void Core::PropertyContainer::setMarkedForDelete | ( | ) |
Sets the status to 'MarkedForDelete'.
void Core::PropertyContainer::setMarkedForDeleteFinal | ( | ) |
Sets the status to 'MarkedForDeleteFinal'.
void Core::PropertyContainer::setNew | ( | ) |
Sets the status to 'New'.
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
double | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
int | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Vec & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::list< Geom::Vec > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Trsf & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::string & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const char * | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Base::String & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Pnt & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Pnt2d & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::vector< Geom::Pnt > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::vector< Geom::Pnt2d > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const MD5 & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
bool | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
Core::DocObject * | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Core::DocObject * | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const boost::unordered_set< Core::DocObject * > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::list< Core::DocObject * > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::vector< int > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const QFont & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Draw::DrawStyle & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Draw::Arrowheads & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Dir & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Dir2d & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Base::Color & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Ax1 & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Geom::Ax2 & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const Draw::Texture2Transform & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::list< std::list< Geom::Pnt > > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
const std::list< double > & | value | ||
) |
bool Core::PropertyContainer::setProperty | ( | const std::string & | name, |
pBrepData & | value | ||
) |
bool Core::PropertyContainer::setPropertyFromKeyValue | ( | const std::string & | propertyName, |
const std::string & | key, | ||
const Core::Variant & | value | ||
) |
Sets the key in a property to value.
bool Core::PropertyContainer::setPropertyFromVariant | ( | const std::string & | name, |
const Core::Variant & | value | ||
) |
Sets a property to value.
void Core::PropertyContainer::setPropertyValues | ( | const PropertyContainer * | other | ) |
Copies the property values from 'other' PropertyContainer to this PropertyContainer.
void Core::PropertyContainer::setPropertyValues | ( | const Core::PropertyValueMap & | other | ) |
Copies the property values from a Core::PropertyValueMap to this PropertyContainer.
|
protectedvirtual |
void Core::PropertyContainer::setUpdated | ( | ) |
Sets the status to 'Updated' if the old status was 'Valid'.
void Core::PropertyContainer::setUpdated | ( | const Core::Property * | p | ) |
void Core::PropertyContainer::setValid | ( | ) |
Sets the status to 'Valid'.
void Core::PropertyContainer::touch | ( | ) |
Sets all properties of this PropertyContainer to updated.
|
friend |
|
friend |
|
friend |
|
protected |
bool Core::PropertyContainer::isRestored = false |