summaryrefslogtreecommitdiffstats
path: root/src/uml/qumlstatemachine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/uml/qumlstatemachine.cpp')
-rw-r--r--src/uml/qumlstatemachine.cpp1266
1 files changed, 135 insertions, 1131 deletions
diff --git a/src/uml/qumlstatemachine.cpp b/src/uml/qumlstatemachine.cpp
index b3b5587e..4ffac829 100644
--- a/src/uml/qumlstatemachine.cpp
+++ b/src/uml/qumlstatemachine.cpp
@@ -40,832 +40,221 @@
****************************************************************************/
#include "qumlstatemachine.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
+#include "private/qumlstatemachineobject_p.h"
+
#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
#include <QtUml/QUmlPseudostate>
-#include <QtUml/QUmlReception>
#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
#include <QtUml/QUmlRegion>
#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlStateMachine
+ \class QUmlStateMachine
\inmodule QtUml
\brief State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine.
*/
-
-QUmlStateMachine::QUmlStateMachine(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStateMachine::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStateMachine::ownedElement() const
+QUmlStateMachine::QUmlStateMachine(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlStateMachineObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStateMachine::owner() const
+QUmlStateMachine::~QUmlStateMachine()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStateMachine::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStateMachine::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStateMachine::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStateMachine::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.
- */
-QString QUmlStateMachine::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlStateMachine::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlStateMachine::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlStateMachine::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlStateMachine::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlStateMachine::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlStateMachine::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlStateMachine::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
+// OWNED ATTRIBUTES
/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlStateMachine::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlStateMachine::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStateMachine::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStateMachine::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStateMachine::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlStateMachine::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlStateMachine::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlStateMachine::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features.
- */
-const QSet<QUmlFeature *> QUmlStateMachine::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlStateMachine::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlStateMachine::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlStateMachine::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlStateMachine::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlStateMachine::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlStateMachine::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlStateMachine::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlStateMachine::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlStateMachine::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlStateMachine::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlStateMachine::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlStateMachine::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlStateMachine::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlStateMachine::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlStateMachine::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlStateMachine::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlStateMachine::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlStateMachine::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlStateMachine::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.True when a class is abstract.
- */
-bool QUmlStateMachine::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class.
- */
-bool QUmlStateMachine::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlStateMachine::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlStateMachine::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlStateMachine::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
+ The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.
*/
-const QSet<QUmlReception *> QUmlStateMachine::ownedReception() const
+const QSet<QUmlPseudostate *>
+QUmlStateMachine::connectionPoint() const
{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
+ // This is a read-write association end
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlStateMachine::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
+ return _connectionPoint;
}
-// OWNED ATTRIBUTES [Behavior]
-
-/*!
- The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior.
- */
-QUmlBehavioredClassifier *QUmlStateMachine::context() const
+void QUmlStateMachine::addConnectionPoint(QUmlPseudostate *connectionPoint)
{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
-}
+ // This is a read-write association end
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlStateMachine::isReentrant() const
-{
- return _isReentrant;
-}
-
-/*!
- References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution.
- */
-const QList<QUmlParameter *> QUmlStateMachine::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
+ if (!_connectionPoint.contains(connectionPoint)) {
+ _connectionPoint.insert(connectionPoint);
+ if (connectionPoint->asQObject() && this->asQObject())
+ QObject::connect(connectionPoint->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConnectionPoint(QObject *)));
+ connectionPoint->asQObject()->setParent(this->asQObject());
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlStateMachine::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
+ // Adjust subsetted properties
+ addOwnedMember(connectionPoint);
-/*!
- An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
- */
-const QSet<QUmlConstraint *> QUmlStateMachine::postcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
+ // Adjust opposite properties
+ if (connectionPoint) {
+ connectionPoint->setStateMachine(this);
+ }
+ }
}
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlStateMachine::precondition() const
+void QUmlStateMachine::removeConnectionPoint(QUmlPseudostate *connectionPoint)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
+ // This is a read-write association end
-/*!
- Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlStateMachine::specification() const
-{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
-}
+ if (_connectionPoint.contains(connectionPoint)) {
+ _connectionPoint.remove(connectionPoint);
+ if (connectionPoint->asQObject())
+ connectionPoint->asQObject()->setParent(0);
-// OWNED ATTRIBUTES [StateMachine]
+ // Adjust subsetted properties
+ removeOwnedMember(connectionPoint);
-/*!
- The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.
- */
-const QSet<QUmlPseudostate *> QUmlStateMachine::connectionPoint() const
-{
- return *(reinterpret_cast<const QSet<QUmlPseudostate *> *>(&_connectionPoint));
+ // Adjust opposite properties
+ if (connectionPoint) {
+ connectionPoint->setStateMachine(0);
+ }
+ }
}
/*!
The state machines of which this is an extension.
*/
-const QSet<QUmlStateMachine *> QUmlStateMachine::extendedStateMachine() const
+const QSet<QUmlStateMachine *>
+QUmlStateMachine::extendedStateMachine() const
{
- return *(reinterpret_cast<const QSet<QUmlStateMachine *> *>(&_extendedStateMachine));
-}
+ // This is a read-write association end
-/*!
- The regions owned directly by the state machine.
- */
-const QSet<QUmlRegion *> QUmlStateMachine::region() const
-{
- return *(reinterpret_cast<const QSet<QUmlRegion *> *>(&_region));
+ return _extendedStateMachine;
}
-/*!
- References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.
- */
-const QSet<QUmlState *> QUmlStateMachine::submachineState() const
+void QUmlStateMachine::addExtendedStateMachine(QUmlStateMachine *extendedStateMachine)
{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_submachineState));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStateMachine::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (!_extendedStateMachine.contains(extendedStateMachine)) {
+ _extendedStateMachine.insert(extendedStateMachine);
+ if (extendedStateMachine->asQObject() && this->asQObject())
+ QObject::connect(extendedStateMachine->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExtendedStateMachine(QObject *)));
+ }
}
-/*!
- The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.
- */
-bool QUmlStateMachine::mustBeOwned() const
+void QUmlStateMachine::removeExtendedStateMachine(QUmlStateMachine *extendedStateMachine)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStateMachine::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStateMachine::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.
- */
-bool QUmlStateMachine::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStateMachine::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlStateMachine::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (_extendedStateMachine.contains(extendedStateMachine)) {
+ _extendedStateMachine.remove(extendedStateMachine);
+ }
}
/*!
- The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.
+ The regions owned directly by the state machine.
*/
-QSet<QString> QUmlStateMachine::getNamesOfMember(QUmlNamedElement *element) const
+const QSet<QUmlRegion *>
+QUmlStateMachine::region() const
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.
- */
-QSet<QUmlPackageableElement *> QUmlStateMachine::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _region;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlStateMachine::membersAreDistinguishable() const
+void QUmlStateMachine::addRegion(QUmlRegion *region)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (!_region.contains(region)) {
+ _region.insert(region);
+ if (region->asQObject() && this->asQObject())
+ QObject::connect(region->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRegion(QObject *)));
+ region->asQObject()->setParent(this->asQObject());
-/*!
- The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.
- */
-bool QUmlStateMachine::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
+ // Adjust subsetted properties
+ addOwnedMember(region);
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlStateMachine::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
+ // Adjust opposite properties
+ if (region) {
+ region->setStateMachine(this);
+ }
+ }
}
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-// OPERATIONS [TemplateableElement]
-
-/*!
- The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.
- */
-QSet<QUmlParameterableElement *> QUmlStateMachine::parameterableElements() const
+void QUmlStateMachine::removeRegion(QUmlRegion *region)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Classifier]
+ if (_region.contains(region)) {
+ _region.remove(region);
+ if (region->asQObject())
+ region->asQObject()->setParent(0);
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlStateMachine::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeOwnedMember(region);
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlStateMachine::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust opposite properties
+ if (region) {
+ region->setStateMachine(0);
+ }
+ }
}
/*!
- The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations.
+ References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.
*/
-bool QUmlStateMachine::conformsTo(QUmlClassifier *other) const
+const QSet<QUmlState *>
+QUmlStateMachine::submachineState() const
{
- return UmlClassifier::conformsTo(other);
-}
+ // This is a read-write association end
-/*!
- The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.
- */
-bool QUmlStateMachine::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ return _submachineState;
}
-/*!
- The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.
- */
-QSet<QUmlNamedElement *> QUmlStateMachine::inheritableMembers(QUmlClassifier *c) const
+void QUmlStateMachine::addSubmachineState(QUmlState *submachineState)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlStateMachine::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ if (!_submachineState.contains(submachineState)) {
+ _submachineState.insert(submachineState);
+ if (submachineState->asQObject() && this->asQObject())
+ QObject::connect(submachineState->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubmachineState(QObject *)));
-/*!
- The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.
- */
-bool QUmlStateMachine::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ // Adjust opposite properties
+ if (submachineState) {
+ submachineState->setSubmachine(this);
+ }
+ }
}
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlStateMachine::parents() const
+void QUmlStateMachine::removeSubmachineState(QUmlState *submachineState)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Class]
+ if (_submachineState.contains(submachineState)) {
+ _submachineState.remove(submachineState);
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlStateMachine::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (submachineState) {
+ submachineState->setSubmachine(0);
+ }
+ }
}
-// OPERATIONS [StateMachine]
+// OPERATIONS
/*!
The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.
*/
QUmlNamespace *QUmlStateMachine::LCA(QUmlState *s1, QUmlState *s2) const
{
- return reinterpret_cast<QUmlNamespace *>(UmlStateMachine::LCA(s1, s2));
+ qWarning("UmlStateMachine::LCA(): to be implemented (operation)");
+
+ Q_UNUSED(s1);
+ Q_UNUSED(s2);
+ return 0;
}
/*!
@@ -873,7 +262,11 @@ QUmlNamespace *QUmlStateMachine::LCA(QUmlState *s1, QUmlState *s2) const
*/
bool QUmlStateMachine::ancestor(QUmlState *s1, QUmlState *s2) const
{
- return UmlStateMachine::ancestor(s1, s2);
+ qWarning("UmlStateMachine::ancestor(): to be implemented (operation)");
+
+ Q_UNUSED(s1);
+ Q_UNUSED(s2);
+ return bool ();
}
/*!
@@ -881,7 +274,10 @@ bool QUmlStateMachine::ancestor(QUmlState *s1, QUmlState *s2) const
*/
bool QUmlStateMachine::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- return UmlStateMachine::isConsistentWith(redefinee);
+ qWarning("UmlStateMachine::isConsistentWith(): to be implemented (operation)");
+
+ Q_UNUSED(redefinee);
+ return bool ();
}
/*!
@@ -889,401 +285,9 @@ bool QUmlStateMachine::isConsistentWith(QUmlRedefinableElement *redefinee) const
*/
bool QUmlStateMachine::isRedefinitionContextValid(QUmlStateMachine *redefined) const
{
- return UmlStateMachine::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStateMachine::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStateMachine::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStateMachine::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStateMachine::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStateMachine::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStateMachine::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlStateMachine::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlStateMachine::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlStateMachine::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlStateMachine::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlStateMachine::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlStateMachine::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlStateMachine::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlStateMachine::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlStateMachine::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStateMachine::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlStateMachine::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlStateMachine::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlStateMachine::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlStateMachine::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlStateMachine::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlStateMachine::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlStateMachine::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlStateMachine::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlStateMachine::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStateMachine::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStateMachine::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlStateMachine::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlStateMachine::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStateMachine::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStateMachine::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlStateMachine::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlStateMachine::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlStateMachine::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlStateMachine::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlStateMachine::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlStateMachine::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlStateMachine::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlStateMachine::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlStateMachine::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlStateMachine::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlStateMachine::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlStateMachine::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlStateMachine::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlStateMachine::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlStateMachine::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlStateMachine::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlStateMachine::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlStateMachine::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlStateMachine::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlStateMachine::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlStateMachine::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlStateMachine::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlStateMachine::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlStateMachine::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlStateMachine::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlStateMachine::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlStateMachine::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlStateMachine::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlStateMachine::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlStateMachine::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlStateMachine::removePostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlStateMachine::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlStateMachine::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlStateMachine::setSpecification(QUmlBehavioralFeature *specification)
-{
- UmlBehavior::setSpecification(specification);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StateMachine]
-
-void QUmlStateMachine::addConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlStateMachine::addConnectionPoint(connectionPoint);
-}
-
-void QUmlStateMachine::removeConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlStateMachine::removeConnectionPoint(connectionPoint);
-}
-
-void QUmlStateMachine::addExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- UmlStateMachine::addExtendedStateMachine(extendedStateMachine);
-}
-
-void QUmlStateMachine::removeExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- UmlStateMachine::removeExtendedStateMachine(extendedStateMachine);
-}
+ qWarning("UmlStateMachine::isRedefinitionContextValid(): to be implemented (operation)");
-void QUmlStateMachine::addRegion(UmlRegion *region)
-{
- UmlStateMachine::addRegion(region);
+ Q_UNUSED(redefined);
+ return bool ();
}
-void QUmlStateMachine::removeRegion(UmlRegion *region)
-{
- UmlStateMachine::removeRegion(region);
-}
-
-void QUmlStateMachine::addSubmachineState(UmlState *submachineState)
-{
- UmlStateMachine::addSubmachineState(submachineState);
-}
-
-void QUmlStateMachine::removeSubmachineState(UmlState *submachineState)
-{
- UmlStateMachine::removeSubmachineState(submachineState);
-}
-
-QT_END_NAMESPACE
-