/**************************************************************************** ** ** Copyright (C) 2012 Sandro S. Andrade ** Contact: http://www.qt-project.org/ ** ** This file is part of the QtMof 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 QTMOF_QASSOCIATION_H #define QTMOF_QASSOCIATION_H #include // Base class includes #include using QtWrappedObjects::QWrappedObject; #include #include // Qt includes #include #include QT_BEGIN_HEADER QT_BEGIN_NAMESPACE_QTMOF QT_MODULE(QtMof) // Forward decls for function parameters class QType; class QProperty; class QAssociationPrivate; class Q_MOF_EXPORT QAssociation : public QWrappedObject { Q_OBJECT Q_PROPERTY(bool isDerived READ isDerived WRITE setDerived RESET unsetDerived) Q_PROPERTY(const QList * endTypes READ endTypes STORED false) Q_PROPERTY(const QSet * navigableOwnedEnds READ navigableOwnedEnds) Q_PROPERTY(const QList * ownedEnds READ ownedEnds) Q_PROPERTY(const QList * memberEnds READ memberEnds) Q_DISABLE_COPY(QAssociation) Q_DECLARE_PRIVATE(QAssociation) public: Q_INVOKABLE explicit QAssociation(QWrappedObject *parent = 0, QWrappedObject *wrapper = 0); virtual ~QAssociation(); // 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); // Association ends from aggregated QRelationship Q_INVOKABLE const QSet *relatedElements() const; // 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 QNamespace *namespace_() const; // Attributes from aggregated QPackageableElement Q_INVOKABLE QtMof::VisibilityKind visibility() const; Q_INVOKABLE void setVisibility(QtMof::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 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; // 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 *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 const QSet *redefinedClassifiers() const; Q_INVOKABLE void addRedefinedClassifier(QClassifier *redefinedClassifier); Q_INVOKABLE void removeRedefinedClassifier(QClassifier *redefinedClassifier); Q_INVOKABLE const QSet *inheritedMembers() const; Q_INVOKABLE const QSet *generalizations() const; Q_INVOKABLE void addGeneralization(QGeneralization *generalization); Q_INVOKABLE void removeGeneralization(QGeneralization *generalization); // Attributes from QAssociation Q_INVOKABLE bool isDerived() const; Q_INVOKABLE void setDerived(bool isDerived); Q_INVOKABLE void unsetDerived(); // Association ends from QAssociation Q_INVOKABLE const QList *endTypes() const; Q_INVOKABLE const QSet *navigableOwnedEnds() const; Q_INVOKABLE void addNavigableOwnedEnd(QProperty *navigableOwnedEnd); Q_INVOKABLE void removeNavigableOwnedEnd(QProperty *navigableOwnedEnd); Q_INVOKABLE const QList *ownedEnds() const; Q_INVOKABLE void addOwnedEnd(QProperty *ownedEnd); Q_INVOKABLE void removeOwnedEnd(QProperty *ownedEnd); Q_INVOKABLE const QList *memberEnds() const; Q_INVOKABLE void addMemberEnd(QProperty *memberEnd); Q_INVOKABLE void removeMemberEnd(QProperty *memberEnd); virtual void registerMetaTypes() const; protected: explicit QAssociation(QAssociationPrivate &dd, QWrappedObject *parent = 0, QWrappedObject *wrapper = 0); private: QRelationship *_wrappedRelationship; QClassifier *_wrappedClassifier; }; QT_END_NAMESPACE_QTMOF Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE_QTMOF(QAssociation) *) Q_DECLARE_METATYPE(const QSet *) Q_DECLARE_METATYPE(const QList *) QT_END_HEADER #endif // QTMOF_QASSOCIATION_H