diff options
Diffstat (limited to 'src/uml/qumlpackage.cpp')
-rw-r--r-- | src/uml/qumlpackage.cpp | 162 |
1 files changed, 25 insertions, 137 deletions
diff --git a/src/uml/qumlpackage.cpp b/src/uml/qumlpackage.cpp index 46ab86c3..8274f6eb 100644 --- a/src/uml/qumlpackage.cpp +++ b/src/uml/qumlpackage.cpp @@ -69,25 +69,23 @@ \brief A package can have one or more profile applications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.A package is used to group elements, and provides a namespace for the grouped elements. */ -QUmlPackage::QUmlPackage(bool createQObject) : +QUmlPackage::QUmlPackage(bool createQModelingObject) : _nestingPackage(0) { - if (createQObject) - _qObject = new QUmlPackageObject(this); - setGroupProperties(); - setPropertyData(); + if (createQModelingObject) + _qModelingObject = qobject_cast<QModelingObject *>(new QUmlPackageObject(this)); } QUmlPackage::~QUmlPackage() { - if (!deletingFromQObject) { - if (_qObject) - _qObject->setProperty("deletingFromModelingObject", true); - delete _qObject; + if (!deletingFromQModelingObject) { + if (_qModelingObject) + _qModelingObject->setProperty("deletingFromModelingObject", true); + delete _qModelingObject; } } -QModelingObject *QUmlPackage::clone() const +QModelingElement *QUmlPackage::clone() const { QUmlPackage *c = new QUmlPackage; foreach (QUmlComment *element, ownedComments()) @@ -201,8 +199,8 @@ void QUmlPackage::setNestingPackage(QUmlPackage *nestingPackage) if (_nestingPackage != nestingPackage) { _nestingPackage = nestingPackage; - if (nestingPackage && nestingPackage->asQObject() && this->asQObject()) - QObject::connect(nestingPackage->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setNestingPackage())); + if (nestingPackage && nestingPackage->asQModelingObject() && this->asQModelingObject()) + QObject::connect(nestingPackage->asQModelingObject(), SIGNAL(destroyed()), this->asQModelingObject(), SLOT(setNestingPackage())); } } @@ -306,9 +304,9 @@ void QUmlPackage::addPackageMerge(QUmlPackageMerge *packageMerge) if (!_packageMerges.contains(packageMerge)) { _packageMerges.insert(packageMerge); - if (packageMerge && packageMerge->asQObject() && this->asQObject()) - QObject::connect(packageMerge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePackageMerge(QObject *))); - packageMerge->asQObject()->setParent(this->asQObject()); + if (packageMerge && packageMerge->asQModelingObject() && this->asQModelingObject()) + QObject::connect(packageMerge->asQModelingObject(), SIGNAL(destroyed(QObject*)), this->asQModelingObject(), SLOT(removePackageMerge(QObject *))); + packageMerge->asQModelingObject()->setParent(this->asQModelingObject()); // Adjust subsetted properties addOwnedElement(packageMerge); @@ -326,8 +324,8 @@ void QUmlPackage::removePackageMerge(QUmlPackageMerge *packageMerge) if (_packageMerges.contains(packageMerge)) { _packageMerges.remove(packageMerge); - if (packageMerge->asQObject()) - packageMerge->asQObject()->setParent(0); + if (packageMerge->asQModelingObject()) + packageMerge->asQModelingObject()->setParent(0); // Adjust subsetted properties removeOwnedElement(packageMerge); @@ -355,9 +353,9 @@ void QUmlPackage::addPackagedElement(QUmlPackageableElement *packagedElement) if (!_packagedElements.contains(packagedElement)) { _packagedElements.insert(packagedElement); - if (packagedElement && packagedElement->asQObject() && this->asQObject()) - QObject::connect(packagedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePackagedElement(QObject *))); - packagedElement->asQObject()->setParent(this->asQObject()); + if (packagedElement && packagedElement->asQModelingObject() && this->asQModelingObject()) + QObject::connect(packagedElement->asQModelingObject(), SIGNAL(destroyed(QObject*)), this->asQModelingObject(), SLOT(removePackagedElement(QObject *))); + packagedElement->asQModelingObject()->setParent(this->asQModelingObject()); // Adjust subsetted properties addOwnedMember(packagedElement); @@ -370,8 +368,8 @@ void QUmlPackage::removePackagedElement(QUmlPackageableElement *packagedElement) if (_packagedElements.contains(packagedElement)) { _packagedElements.remove(packagedElement); - if (packagedElement->asQObject()) - packagedElement->asQObject()->setParent(0); + if (packagedElement->asQModelingObject()) + packagedElement->asQModelingObject()->setParent(0); // Adjust subsetted properties removeOwnedMember(packagedElement); @@ -394,9 +392,9 @@ void QUmlPackage::addProfileApplication(QUmlProfileApplication *profileApplicati if (!_profileApplications.contains(profileApplication)) { _profileApplications.insert(profileApplication); - if (profileApplication && profileApplication->asQObject() && this->asQObject()) - QObject::connect(profileApplication->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeProfileApplication(QObject *))); - profileApplication->asQObject()->setParent(this->asQObject()); + if (profileApplication && profileApplication->asQModelingObject() && this->asQModelingObject()) + QObject::connect(profileApplication->asQModelingObject(), SIGNAL(destroyed(QObject*)), this->asQModelingObject(), SLOT(removeProfileApplication(QObject *))); + profileApplication->asQModelingObject()->setParent(this->asQModelingObject()); // Adjust subsetted properties addOwnedElement(profileApplication); @@ -414,8 +412,8 @@ void QUmlPackage::removeProfileApplication(QUmlProfileApplication *profileApplic if (_profileApplications.contains(profileApplication)) { _profileApplications.remove(profileApplication); - if (profileApplication->asQObject()) - profileApplication->asQObject()->setParent(0); + if (profileApplication->asQModelingObject()) + profileApplication->asQModelingObject()->setParent(0); // Adjust subsetted properties removeOwnedElement(profileApplication); @@ -480,113 +478,3 @@ QSet<QUmlPackageableElement *> QUmlPackage::visibleMembers() const return QSet<QUmlPackageableElement *> (); } -void QUmlPackage::setGroupProperties() -{ - const QMetaObject *metaObject = _qObject->metaObject(); - - _groupProperties.insert(QStringLiteral("QObject"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("objectName")))); - _groupProperties.insert(QStringLiteral("QUmlElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("ownedComments")))); - _groupProperties.insert(QStringLiteral("QUmlElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("ownedElements")))); - _groupProperties.insert(QStringLiteral("QUmlElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("owner")))); - _groupProperties.insert(QStringLiteral("QUmlNamedElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("clientDependencies")))); - _groupProperties.insert(QStringLiteral("QUmlNamedElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("name")))); - _groupProperties.insert(QStringLiteral("QUmlNamedElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("nameExpression")))); - _groupProperties.insert(QStringLiteral("QUmlNamedElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("namespace_")))); - _groupProperties.insert(QStringLiteral("QUmlNamedElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("qualifiedName")))); - _groupProperties.insert(QStringLiteral("QUmlNamespace"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("elementImports")))); - _groupProperties.insert(QStringLiteral("QUmlNamespace"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("importedMembers")))); - _groupProperties.insert(QStringLiteral("QUmlNamespace"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("members")))); - _groupProperties.insert(QStringLiteral("QUmlNamespace"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("ownedMembers")))); - _groupProperties.insert(QStringLiteral("QUmlNamespace"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("ownedRules")))); - _groupProperties.insert(QStringLiteral("QUmlNamespace"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("packageImports")))); - _groupProperties.insert(QStringLiteral("QUmlParameterableElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("owningTemplateParameter")))); - _groupProperties.insert(QStringLiteral("QUmlParameterableElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("templateParameter")))); - _groupProperties.insert(QStringLiteral("QUmlPackageableElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("visibility")))); - _groupProperties.insert(QStringLiteral("QUmlTemplateableElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("ownedTemplateSignature")))); - _groupProperties.insert(QStringLiteral("QUmlTemplateableElement"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("templateBindings")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("URI")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("nestedPackages")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("nestingPackage")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("ownedStereotypes")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("ownedTypes")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("packageMerges")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("packagedElements")))); - _groupProperties.insert(QStringLiteral("QUmlPackage"), new QMetaProperty(metaObject->property(metaObject->indexOfProperty("profileApplications")))); -} - -void QUmlPackage::setPropertyData() -{ - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::AggregationRole] = QStringLiteral("none"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::IsDerivedRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::DocumentationRole] = QStringLiteral("Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules."); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::SubsettedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("URI")][QtModeling::OppositeEndRole] = QStringLiteral(""); - - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::AggregationRole] = QStringLiteral("composite"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::IsDerivedRole] = true; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::DocumentationRole] = QStringLiteral("References the packaged elements that are Packages."); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::SubsettedPropertiesRole] = QStringLiteral("Package-packagedElement"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestedPackages")][QtModeling::OppositeEndRole] = QStringLiteral("Package-nestingPackage"); - - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::AggregationRole] = QStringLiteral("none"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::IsDerivedRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::DocumentationRole] = QStringLiteral("References the Package that owns this Package."); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::SubsettedPropertiesRole] = QStringLiteral("A_packagedElement_owningPackage-owningPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("nestingPackage")][QtModeling::OppositeEndRole] = QStringLiteral("Package-nestedPackage"); - - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::AggregationRole] = QStringLiteral("composite"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::IsDerivedRole] = true; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::DocumentationRole] = QStringLiteral("References the Stereotypes that are owned by the Package"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::SubsettedPropertiesRole] = QStringLiteral("Package-packagedElement"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedStereotypes")][QtModeling::OppositeEndRole] = QStringLiteral(""); - - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::AggregationRole] = QStringLiteral("composite"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::IsDerivedRole] = true; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::DocumentationRole] = QStringLiteral("References the packaged elements that are Types."); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::SubsettedPropertiesRole] = QStringLiteral("Package-packagedElement"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("ownedTypes")][QtModeling::OppositeEndRole] = QStringLiteral("Type-package"); - - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::AggregationRole] = QStringLiteral("composite"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::IsDerivedRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::DocumentationRole] = QStringLiteral("References the PackageMerges that are owned by this Package."); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::SubsettedPropertiesRole] = QStringLiteral("A_source_directedRelationship-directedRelationship Element-ownedElement"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packageMerges")][QtModeling::OppositeEndRole] = QStringLiteral("PackageMerge-receivingPackage"); - - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::AggregationRole] = QStringLiteral("composite"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::IsDerivedRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::DocumentationRole] = QStringLiteral("Specifies the packageable elements that are owned by this Package."); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::SubsettedPropertiesRole] = QStringLiteral("Namespace-ownedMember"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("packagedElements")][QtModeling::OppositeEndRole] = QStringLiteral(""); - - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::AggregationRole] = QStringLiteral("composite"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::PropertyClassRole] = QStringLiteral("QUmlPackage"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::IsDerivedRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::IsDerivedUnionRole] = false; - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::DocumentationRole] = QStringLiteral("References the ProfileApplications that indicate which profiles have been applied to the Package."); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::RedefinedPropertiesRole] = QStringLiteral(""); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::SubsettedPropertiesRole] = QStringLiteral("A_source_directedRelationship-directedRelationship Element-ownedElement"); - QModelingObject::propertyDataHash[QStringLiteral("QUmlPackage")][QStringLiteral("profileApplications")][QtModeling::OppositeEndRole] = QStringLiteral("ProfileApplication-applyingPackage"); - -} - |