/**************************************************************************** ** ** Copyright (C) 2012 Sandro S. Andrade ** Contact: http://www.qt-project.org/ ** ** This file is part of the QtUml module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** GNU Lesser General Public License Usage ** This file may be used under the terms of the GNU Lesser General Public ** License version 2.1 as published by the Free Software Foundation and ** appearing in the file LICENSE.LGPL included in the packaging of this ** file. Please review the following information to ensure the GNU Lesser ** General Public License version 2.1 requirements will be met: ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU General ** Public License version 3.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of this ** file. Please review the following information to ensure the GNU General ** Public License version 3.0 requirements will be met: ** http://www.gnu.org/copyleft/gpl.html. ** ** Other Usage ** Alternatively, this file may be used in accordance with the terms and ** conditions contained in a signed written agreement between you and Nokia. ** ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTUML_QCOLLABORATION_H #define QTUML_QCOLLABORATION_H #include // Base class includes #include using QtWrappedObjects::QWrappedObject; #include #include // Qt includes #include QT_BEGIN_HEADER QT_BEGIN_NAMESPACE_QTUML QT_MODULE(QtUml) // Forward decls for function parameters class QConnectableElement; class QCollaborationPrivate; class Q_UML_EXPORT QCollaboration : public QWrappedObject { Q_OBJECT Q_PROPERTY(QSet collaborationRoles READ collaborationRoles) Q_DISABLE_COPY(QCollaboration) Q_DECLARE_PRIVATE(QCollaboration) public: Q_INVOKABLE explicit QCollaboration(QWrappedObject *parent = 0, QWrappedObject *wrapper = 0); virtual ~QCollaboration(); // Association ends from aggregated QElement Q_INVOKABLE const QSet &ownedElements() const; Q_INVOKABLE QElement *owner() const; Q_INVOKABLE const QSet &ownedComments() const; Q_INVOKABLE void addOwnedComment(QComment *ownedComment); Q_INVOKABLE void removeOwnedComment(QComment *ownedComment); // Attributes from aggregated QNamedElement Q_INVOKABLE QString name() const; Q_INVOKABLE void setName(QString name); Q_INVOKABLE QString qualifiedName() const; // Association ends from aggregated QNamedElement Q_INVOKABLE QStringExpression *nameExpression() const; Q_INVOKABLE void setNameExpression(QStringExpression *nameExpression); Q_INVOKABLE QNamespace *namespace_() const; Q_INVOKABLE const QSet &clientDependencies() const; Q_INVOKABLE void addClientDependency(QDependency *clientDependency); Q_INVOKABLE void removeClientDependency(QDependency *clientDependency); // Association ends from aggregated QNamespace Q_INVOKABLE const QSet &packageImports() const; Q_INVOKABLE void addPackageImport(QPackageImport *packageImport); Q_INVOKABLE void removePackageImport(QPackageImport *packageImport); Q_INVOKABLE const QSet &members() const; Q_INVOKABLE const QSet &importedMembers() const; Q_INVOKABLE const QSet &elementImports() const; Q_INVOKABLE void addElementImport(QElementImport *elementImport); Q_INVOKABLE void removeElementImport(QElementImport *elementImport); Q_INVOKABLE const QSet &ownedRules() const; Q_INVOKABLE void addOwnedRule(QConstraint *ownedRule); Q_INVOKABLE void removeOwnedRule(QConstraint *ownedRule); Q_INVOKABLE const QSet &ownedMembers() const; // Association ends from aggregated QParameterableElement Q_INVOKABLE QTemplateParameter *owningTemplateParameter() const; Q_INVOKABLE void setOwningTemplateParameter(QTemplateParameter *owningTemplateParameter); // Attributes from aggregated QPackageableElement Q_INVOKABLE QtUml::VisibilityKind visibility() const; Q_INVOKABLE void setVisibility(QtUml::VisibilityKind visibility); Q_INVOKABLE void unsetVisibility(); // Association ends from aggregated QType Q_INVOKABLE QPackage *package() const; Q_INVOKABLE void setPackage(QPackage *package); // Attributes from aggregated QRedefinableElement Q_INVOKABLE bool isLeaf() const; Q_INVOKABLE void setLeaf(bool isLeaf); Q_INVOKABLE void unsetLeaf(); // Association ends from aggregated QRedefinableElement Q_INVOKABLE const QSet &redefinedElements() const; Q_INVOKABLE const QSet &redefinitionContexts() const; // Association ends from aggregated QTemplateableElement Q_INVOKABLE const QSet &templateBindings() const; Q_INVOKABLE void addTemplateBinding(QTemplateBinding *templateBinding); Q_INVOKABLE void removeTemplateBinding(QTemplateBinding *templateBinding); // Attributes from aggregated QClassifier Q_INVOKABLE bool isAbstract() const; Q_INVOKABLE void setAbstract(bool isAbstract); Q_INVOKABLE void unsetAbstract(); Q_INVOKABLE bool isFinalSpecialization() const; Q_INVOKABLE void setFinalSpecialization(bool isFinalSpecialization); Q_INVOKABLE void unsetFinalSpecialization(); // Association ends from aggregated QClassifier Q_INVOKABLE const QSet &ownedUseCases() const; Q_INVOKABLE void addOwnedUseCase(QUseCase *ownedUseCase); Q_INVOKABLE void removeOwnedUseCase(QUseCase *ownedUseCase); Q_INVOKABLE const QSet &powertypeExtents() const; Q_INVOKABLE void addPowertypeExtent(QGeneralizationSet *powertypeExtent); Q_INVOKABLE void removePowertypeExtent(QGeneralizationSet *powertypeExtent); Q_INVOKABLE const QSet &useCases() const; Q_INVOKABLE void addUseCase(QUseCase *useCase); Q_INVOKABLE void removeUseCase(QUseCase *useCase); Q_INVOKABLE QClassifierTemplateParameter *templateParameter() const; Q_INVOKABLE void setTemplateParameter(QClassifierTemplateParameter *templateParameter); Q_INVOKABLE const QSet &redefinedClassifiers() const; Q_INVOKABLE void addRedefinedClassifier(QClassifier *redefinedClassifier); Q_INVOKABLE void removeRedefinedClassifier(QClassifier *redefinedClassifier); Q_INVOKABLE QRedefinableTemplateSignature *ownedTemplateSignature() const; Q_INVOKABLE void setOwnedTemplateSignature(QRedefinableTemplateSignature *ownedTemplateSignature); Q_INVOKABLE const QSet &collaborationUses() const; Q_INVOKABLE void addCollaborationUse(QCollaborationUse *collaborationUse); Q_INVOKABLE void removeCollaborationUse(QCollaborationUse *collaborationUse); Q_INVOKABLE const QSet &attributes() const; Q_INVOKABLE const QSet &features() const; Q_INVOKABLE const QSet &generals() const; Q_INVOKABLE void addGeneral(QClassifier *general); Q_INVOKABLE void removeGeneral(QClassifier *general); Q_INVOKABLE QCollaborationUse *representation() const; Q_INVOKABLE void setRepresentation(QCollaborationUse *representation); Q_INVOKABLE const QSet &generalizations() const; Q_INVOKABLE void addGeneralization(QGeneralization *generalization); Q_INVOKABLE void removeGeneralization(QGeneralization *generalization); Q_INVOKABLE const QSet &inheritedMembers() const; Q_INVOKABLE const QSet &substitutions() const; Q_INVOKABLE void addSubstitution(QSubstitution *substitution); Q_INVOKABLE void removeSubstitution(QSubstitution *substitution); // Association ends from aggregated QStructuredClassifier Q_INVOKABLE const QSet &roles() const; Q_INVOKABLE const QList &ownedAttributes() const; Q_INVOKABLE void addOwnedAttribute(QProperty *ownedAttribute); Q_INVOKABLE void removeOwnedAttribute(QProperty *ownedAttribute); Q_INVOKABLE const QSet &parts() const; Q_INVOKABLE const QSet &ownedConnectors() const; Q_INVOKABLE void addOwnedConnector(QConnector *ownedConnector); Q_INVOKABLE void removeOwnedConnector(QConnector *ownedConnector); // Association ends from aggregated QBehavioredClassifier Q_INVOKABLE const QSet &ownedBehaviors() const; Q_INVOKABLE void addOwnedBehavior(QBehavior *ownedBehavior); Q_INVOKABLE void removeOwnedBehavior(QBehavior *ownedBehavior); Q_INVOKABLE const QSet &interfaceRealizations() const; Q_INVOKABLE void addInterfaceRealization(QInterfaceRealization *interfaceRealization); Q_INVOKABLE void removeInterfaceRealization(QInterfaceRealization *interfaceRealization); Q_INVOKABLE QBehavior *classifierBehavior() const; Q_INVOKABLE void setClassifierBehavior(QBehavior *classifierBehavior); // Association ends from QCollaboration Q_INVOKABLE const QSet &collaborationRoles() const; Q_INVOKABLE void addCollaborationRole(QConnectableElement *collaborationRole); Q_INVOKABLE void removeCollaborationRole(QConnectableElement *collaborationRole); protected: explicit QCollaboration(QCollaborationPrivate &dd, QWrappedObject *parent = 0, QWrappedObject *wrapper = 0); private: QStructuredClassifier *_wrappedStructuredClassifier; QBehavioredClassifier *_wrappedBehavioredClassifier; }; QT_END_NAMESPACE_QTUML QT_END_HEADER #endif // QTUML_QCOLLABORATION_H