diff options
author | Sandro S. Andrade <sandroandrade@kde.org> | 2012-10-25 22:04:36 +0000 |
---|---|---|
committer | Sandro S. Andrade <sandroandrade@kde.org> | 2012-10-26 00:06:42 +0200 |
commit | 9f0b95a31ba17ff3ab998407ea8c8ab622ec005c (patch) | |
tree | 299d4263f476f2bc9e3ed88f4063a4fbd5162859 /examples/uml/nested-packages | |
parent | 084d1f45b37ff0a4dcd011489096654c4812293a (diff) |
Add initial example for profile and stereotypes handling
Change-Id: I4b72cb8f579fec5e35c80709c5e1153e80edbf80
Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml/nested-packages')
-rw-r--r-- | examples/uml/nested-packages/main.cpp | 120 | ||||
-rw-r--r-- | examples/uml/nested-packages/nested-packages.pro | 9 |
2 files changed, 129 insertions, 0 deletions
diff --git a/examples/uml/nested-packages/main.cpp b/examples/uml/nested-packages/main.cpp new file mode 100644 index 00000000..238935ed --- /dev/null +++ b/examples/uml/nested-packages/main.cpp @@ -0,0 +1,120 @@ +#include <QtUml/QModel> +#include <QtUml/QPackage> +#include <QtUml/QPrimitiveType> +#include <QtUml/QEnumeration> +#include <QtUml/QEnumerationLiteral> +#include <QtUml/QClass> +#include <QtUml/QComponent> +#include <QtUml/QComponentRealization> + +#include <QtCore/QDebug> +#include <QtCore/QScopedPointer> +#include <QtCore/QMetaProperty> + +typedef const QSet<QtUml::QPackage *> QPackageList; +typedef const QSet<QtUml::QStereotype *> QStereotypeList; +typedef const QSet<QtUml::QType *> QTypeList; + +void checkProperties(QObject *object) +{ + const QMetaObject *metaObject = object->metaObject(); + int propertyCount = metaObject->propertyCount(); + for (int i = 0; i < propertyCount; ++i) { + qDebug() << "Property" << metaObject->property(i).name(); + } +} + +int main () +{ + QtUml::QModel *model= new QtUml::QModel; + model->setName("MyModel"); + + QtUml::QPackage *package = new QtUml::QPackage; + package->setName("Package1"); + + QtUml::QPrimitiveType *primitiveType = new QtUml::QPrimitiveType; + primitiveType->setName("String"); + + QtUml::QEnumeration *enumeration = new QtUml::QEnumeration; + enumeration->setName("DirectionKind"); + QtUml::QEnumerationLiteral *directionIn = new QtUml::QEnumerationLiteral; + directionIn->setName("DirectionIn"); + enumeration->addOwnedLiteral(directionIn); + + QtUml::QClass *class_ = new QtUml::QClass; + class_->setName("Student"); + class_->setAbstract(false); + + model->addOwnedType(primitiveType); + package->addOwnedType(enumeration); + //model->addNestedPackage(package); + model->addPackagedElement(package); + package->addOwnedType(class_); + + qDebug() << "model->ownedElements()->size():" << model->ownedElements()->size(); + qDebug() << "model->members()->size():" << model->members()->size(); + qDebug() << "model->ownedMembers()->size():" << model->ownedMembers()->size(); + qDebug() << "model->ownedRules()->size():" << model->ownedRules()->size(); + qDebug() << "model->packagedElements()->size():" << model->packagedElements()->size(); + qDebug(); + qDebug() << "package->qualifiedName():" << package->qualifiedName(); + qDebug() << "package->nestingPackage() ?" << ((package->nestingPackage() == 0) ? "Nao":"Sim"); + qDebug() << "class_->qualifiedName():" << class_->qualifiedName(); + qDebug() << "enumeration->qualifiedName():" << enumeration->qualifiedName(); + qDebug() << "primitiveType->qualifiedName():" << primitiveType->qualifiedName(); + qDebug() << "directionIn->qualifiedName():" << directionIn->qualifiedName(); + + //model->removeNestedPackage(package); + model->removePackagedElement(package); + model->addPackagedElement(package); + qDebug() << "REMOVED"; + + qDebug() << "model->ownedElements()->size():" << model->ownedElements()->size(); + qDebug() << "model->members()->size():" << model->members()->size(); + qDebug() << "model->ownedMembers()->size():" << model->ownedMembers()->size(); + qDebug() << "model->ownedRules()->size():" << model->ownedRules()->size(); + qDebug() << "model->packagedElements()->size():" << model->packagedElements()->size(); + qDebug(); + qDebug() << "package->qualifiedName():" << package->qualifiedName(); + qDebug() << "package->nestingPackage() ?" << ((package->nestingPackage() == 0) ? "Nao":"Sim"); + qDebug() << "class_->qualifiedName():" << class_->qualifiedName(); + qDebug() << "enumeration->qualifiedName():" << enumeration->qualifiedName(); + qDebug() << "primitiveType->qualifiedName():" << primitiveType->qualifiedName(); + qDebug() << "directionIn->qualifiedName():" << directionIn->qualifiedName(); + + QScopedPointer<QPackageList> nestedPackages (model->nestedPackages()); + qDebug() << "model->nestedPackages()->size():" << nestedPackages->size(); + + QScopedPointer<QStereotypeList> ownedStereotypes (model->ownedStereotypes()); + qDebug() << "model->ownedStereotypes()->size():" << ownedStereotypes->size(); + + QScopedPointer<QTypeList> ownedTypes (model->ownedTypes()); + qDebug() << "model->ownedTypes()->size():" << ownedTypes->size(); + + //checkProperties(model); + + QtUml::QComponent *c1 = new QtUml::QComponent; + QtUml::QComponent *c2 = new QtUml::QComponent; + QtUml::QComponentRealization *cr = new QtUml::QComponentRealization; + cr->setAbstraction(c1); + qDebug(); + qDebug() << "cr->suppliers()->size():" << cr->suppliers()->size(); + qDebug() << "c1->realizations()->size():" << c1->realizations()->size(); + qDebug() << "c2->realizations()->size():" << c2->realizations()->size(); + cr->setAbstraction(c2); + qDebug(); + qDebug() << "cr->suppliers()->size():" << cr->suppliers()->size(); + qDebug() << "c1->realizations()->size():" << c1->realizations()->size(); + qDebug() << "c2->realizations()->size():" << c2->realizations()->size(); + cr->setAbstraction(0); + qDebug(); + qDebug() << "cr->suppliers()->size():" << cr->suppliers()->size(); + qDebug() << "c1->realizations()->size():" << c1->realizations()->size(); + qDebug() << "c2->realizations()->size():" << c2->realizations()->size(); + + delete model; // That will delete all owned elements + + // All containers created by nestedPackages(), ownedStereotypes(), and ownedTypes() + // are destroyed by QScopedPointer +} + diff --git a/examples/uml/nested-packages/nested-packages.pro b/examples/uml/nested-packages/nested-packages.pro new file mode 100644 index 00000000..558d1579 --- /dev/null +++ b/examples/uml/nested-packages/nested-packages.pro @@ -0,0 +1,9 @@ +TEMPLATE = app +TARGET = nested-packages +DEPENDPATH += . +INCLUDEPATH += . + +QT += uml + +# Input +SOURCES += main.cpp |