summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BUGS2
-rw-r--r--examples/uml/duse-mt/src/app/SADuse.xmi247
-rw-r--r--src/plugins/metamodels/duse/qdusemetamodelplugin.cpp1
3 files changed, 230 insertions, 20 deletions
diff --git a/BUGS b/BUGS
index 14df19ad..820eb33b 100644
--- a/BUGS
+++ b/BUGS
@@ -4,4 +4,4 @@
- Verify why QList<QObject *> cannot be directly passed to QML. Only QVariantList works by now
- Investigate the use of qScriptRegisterSequenceMetaType also for QSets (see src/plugins/metamodels/duse/qdusemetamodel.cpp)
- The property visibility, for attributes, when changing isn't presented in boldface in property editor
-
+- QModelingObjectView::handleAddMethod() needs refactoring to use new metamodel plugins instantiation mechanism
diff --git a/examples/uml/duse-mt/src/app/SADuse.xmi b/examples/uml/duse-mt/src/app/SADuse.xmi
index 57e99bc8..de7d16fa 100644
--- a/examples/uml/duse-mt/src/app/SADuse.xmi
+++ b/examples/uml/duse-mt/src/app/SADuse.xmi
@@ -30,43 +30,252 @@
<language>JavaScript</language>
<body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
</instanceSelectionRule>
- <variationPoint xmi:type="duse:VariationPoint" name="Proportional" xmi:id="SADuse-ControlLaw-Proportional"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Proportional-Integral" xmi:id="SADuse-ControlLaw-Proportional-Integral"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Dynamic State Feedback" xmi:id="SADuse-ControlLaw-Dynamic State Feedback"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Static State Feedback" xmi:id="SADuse-ControlLaw-Static State Feedback"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Proportional-Integral-Derivative" xmi:id="SADuse-ControlLaw-Proportional-Integral-Derivative"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Precompensated Static State Feedback" xmi:id="SADuse-ControlLaw-Precompensated Static State Feedback"/>
+ <variationPoint xmi:type="duse:VariationPoint" name="Proportional" xmi:id="SADuse-ControlLaw-Proportional">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlLaw-Proportional-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-Proportional-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-Proportional-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Proportional-Integral" xmi:id="SADuse-ControlLaw-Proportional-Integral">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlLaw-Proportional-Integral-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-Proportional-Integral-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-Proportional-Integral-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Dynamic State Feedback" xmi:id="SADuse-ControlLaw-DynamicStateFeedback">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlLaw-DynamicStateFeedback-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-DynamicStateFeedback-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-DynamicStateFeedback-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Static State Feedback" xmi:id="SADuse-ControlLaw-StaticStateFeedback">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlLaw-StaticStateFeedback-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-StaticStateFeedback-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-StaticStateFeedback-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Proportional-Integral-Derivative" xmi:id="SADuse-ControlLaw-Proportional-Integral-Derivative">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlLaw-Proportional-Integral-Derivative-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-Proportional-Integral-Derivative-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-Proportional-Integral-Derivative-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Precompensated Static State Feedback" xmi:id="SADuse-ControlLaw-PrecompensatedStaticStateFeedback">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlLaw-PrecompensatedStaticStateFeedback-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-PrecompensatedStaticStateFeedback-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-PrecompensatedStaticStateFeedback-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
</designDimension>
<designDimension xmi:type="duse:DesignDimension" name="Tuning Approach" xmi:id="SADuse-TunningApproach">
<instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-InstanceSelectionRule">
<language>JavaScript</language>
<body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
</instanceSelectionRule>
- <variationPoint xmi:type="duse:VariationPoint" name="Cohen-Coon" xmi:id="SADuse-TunningApproach-Cohen-Coon"/>
- <variationPoint xmi:type="duse:VariationPoint" name="CHR-20OS-DR" xmi:id="SADuse-TunningApproach-CHR-20OS-DR"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Ziegler-Nichols" xmi:id="SADuse-TunningApproach-Ziegler-Nichols"/>
- <variationPoint xmi:type="duse:VariationPoint" name="CHR-20OS-RT" xmi:id="SADuse-TunningApproach-CHR-20OS-RT"/>
- <variationPoint xmi:type="duse:VariationPoint" name="CHR-0OS-DR" xmi:id="SADuse-TunningApproach-CHR-0OS-DR"/>
- <variationPoint xmi:type="duse:VariationPoint" name="CHR-0OS-RT" xmi:id="SADuse-TunningApproach-CHR-0OS-RT"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Linear Quadratic Regulator" xmi:id="SADuse-TunningApproach-Linear Quadratic Regulator"/>
+ <variationPoint xmi:type="duse:VariationPoint" name="Cohen-Coon" xmi:id="SADuse-TunningApproach-Cohen-Coon">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-Cohen-Coon-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-Cohen-Coon-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-Cohen-Coon-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="CHR-20OS-DR" xmi:id="SADuse-TunningApproach-CHR-20OS-DR">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-CHR-20OS-DR-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-20OS-DR-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-20OS-DR-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Ziegler-Nichols" xmi:id="SADuse-TunningApproach-Ziegler-Nichols">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-Ziegler-Nichols-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-PrecompensatedStaticStateFeedback-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-Ziegler-Nichols-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="CHR-20OS-RT" xmi:id="SADuse-TunningApproach-CHR-20OS-RT">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-CHR-20OS-RT-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-20OS-RT-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-20OS-RT-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="CHR-0OS-DR" xmi:id="SADuse-TunningApproach-CHR-0OS-DR">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-CHR-0OS-DR-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-0OS-DR-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-0OS-DR-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="CHR-0OS-RT" xmi:id="SADuse-TunningApproach-CHR-0OS-RT">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-CHR-0OS-RT-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-0OS-RT-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-CHR-0OS-RT-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Linear Quadratic Regulator" xmi:id="SADuse-TunningApproach-LinearQuadraticRegulator">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-LinearQuadraticRegulator-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-LinearQuadraticRegulator-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-LinearQuadraticRegulator-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
</designDimension>
<designDimension xmi:type="duse:DesignDimension" name="Control Adaptation" xmi:id="SADuse-ControlAdaptation">
<instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-InstanceSelectionRule">
<language>JavaScript</language>
<body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
</instanceSelectionRule>
- <variationPoint xmi:type="duse:VariationPoint" name="Gain Scheduling" xmi:id="SADuse-ControlAdaptation-Gain Scheduling"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Model Identification Adaptive Control (MIAC)" xmi:id="SADuse-ControlAdaptation-Model Identification Adaptive Control (MIAC)"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Fixed Gain (no adaptation)" xmi:id="SADuse-ControlAdaptation-Fixed Gain (no adaptation)"/>
+ <variationPoint xmi:type="duse:VariationPoint" name="Gain Scheduling" xmi:id="SADuse-ControlAdaptation-GainScheduling">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlAdaptation-GainScheduling-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-GainScheduling-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-GainScheduling-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Model Identification Adaptive Control (MIAC)" xmi:id="SADuse-ControlAdaptation-ModelIdentificationAdaptiveControl">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlAdaptation-ModelIdentificationAdaptiveControl-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-ModelIdentificationAdaptiveControl-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-ModelIdentificationAdaptiveControl-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Fixed Gain (no adaptation)" xmi:id="SADuse-ControlAdaptation-FixedGain">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlAdaptation-FixedGain-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-FixedGain-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-FixedGain-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
</designDimension>
<designDimension xmi:type="duse:DesignDimension" name="MAPE Deployment" xmi:id="SADuse-MAPEDeployment">
<instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-InstanceSelectionRule">
<language>JavaScript</language>
<body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
</instanceSelectionRule>
- <variationPoint xmi:type="duse:VariationPoint" name="Local Control + Shared Reference" xmi:id="SADuse-MAPEDeployment-Local Control + Shared Reference"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Local Control + Shared Error" xmi:id="SADuse-MAPEDeployment-Local Control + Shared Error"/>
- <variationPoint xmi:type="duse:VariationPoint" name="Global Control" xmi:id="SADuse-MAPEDeployment-Global Control"/>
+ <variationPoint xmi:type="duse:VariationPoint" name="Local Control + Shared Reference" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedReference">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedReference-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedReference-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedReference-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Local Control + Shared Error" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedError">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedError-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedError-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-LocalControl+SharedError-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
+ <variationPoint xmi:type="duse:VariationPoint" name="Global Control" xmi:id="SADuse-MAPEDeployment-GlobalControl">
+ <modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-MAPEDeployment-GlobalControl-ModelChange1">
+ <targetSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-GlobalControl-ModelChange1-TargetSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </targetSelectionRule>
+ <valueSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-GlobalControl-ModelChange1-ValueSelectionRule">
+ <language>JavaScript</language>
+ <body>input</body>
+ </valueSelectionRule>
+ </modelChange>
+ </variationPoint>
</designDimension>
</duse:DesignSpace>
</xmi:XMI>
diff --git a/src/plugins/metamodels/duse/qdusemetamodelplugin.cpp b/src/plugins/metamodels/duse/qdusemetamodelplugin.cpp
index 0bd8f854..6f87d5df 100644
--- a/src/plugins/metamodels/duse/qdusemetamodelplugin.cpp
+++ b/src/plugins/metamodels/duse/qdusemetamodelplugin.cpp
@@ -56,6 +56,7 @@ QModelingElement *QDuseMetaModelPlugin::createModelingElement(QString type)
if (type == "QDuseDesignDimensionInstance") return new QDuseDesignDimensionInstance;
if (type == "QDuseVariationPoint") return new QDuseVariationPoint;
if (type == "QDuseQualityMetric") return new QDuseQualityMetric;
+ if (type == "QDuseModelChange") return new QDuseModelChange;
Q_ASSERT_X(true,
"QDuseMetaModelPlugin::createModelingElement",
QStringLiteral("QDuseMetaModelPlugin does not know how to create instances of '%1' type !").arg(type).toLatin1());