summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-06-22 22:54:30 -0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-23 03:54:22 +0200
commitb2b0a0ef671b362b58a309a5231426a3f21be67e (patch)
tree9c104fc7d40725d508011b403dd0e1d91f27e665 /scripts
parent9ba79ded05ec78858a9199ce9011f7037e72ca6b (diff)
Provide support for profiles and profile applications
Change-Id: I73fe7c7c6145d2b15316d7fab7017f939c34470e Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/normative-xmi/SADuSEProfile.qtxmi13
-rw-r--r--scripts/normative-xmi/SADuSEProfile.xmi16
-rw-r--r--scripts/normative-xmi/xmi2qt.xq5
3 files changed, 32 insertions, 2 deletions
diff --git a/scripts/normative-xmi/SADuSEProfile.qtxmi b/scripts/normative-xmi/SADuSEProfile.qtxmi
new file mode 100644
index 00000000..117cb2e4
--- /dev/null
+++ b/scripts/normative-xmi/SADuSEProfile.qtxmi
@@ -0,0 +1,13 @@
+<qtxmi:XMI xmlns:qtxmi="http://www.qt-project.org" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.omg.org/spec/UML/20110701">
+ <namespace path="QtSADuse">
+ <class name="QSADuseProcessComponent" isAbstract="false">
+ <forwarddecl namespace="QtUml" class="QUmlComponent"/>
+ <associationend isDerived="false" isDerivedUnion="false" isReadOnly="false" subsettedProperty="" redefinedProperty="" id="ProcessComponent-base_Component" defaultValue="" aggregation="none" oppositeEnd="" subsettedBy="">
+ <accessor return="QUmlComponent *" name="base_Component" constness=" const"/>
+ <accessor return="void " name="setBase_Component" constness="">
+ <parameter type="QUmlComponent *" name="base_Component"/>
+ </accessor>
+ </associationend>
+ </class>
+ </namespace>
+</qtxmi:XMI>
diff --git a/scripts/normative-xmi/SADuSEProfile.xmi b/scripts/normative-xmi/SADuSEProfile.xmi
new file mode 100644
index 00000000..04f57488
--- /dev/null
+++ b/scripts/normative-xmi/SADuSEProfile.xmi
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.omg.org/spec/UML/20110701">
+ <uml:Profile name="SADuSEProfile" xmi:id="" URI="http://liveblue.wordpress.com/SADuSEProfile">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_elementImport.0">
+ <importedElement href=":/metamodels/UML.xmi#Component"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" name="ProcessComponent" xmi:id="ProcessComponent">
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="base_Component" xmi:id="ProcessComponent-base_Component" association="A_component_processComponent">
+ <type xmi:type="uml:Class" href=":/metamodels/UML.xmi#Component"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" name="A_component_processComponent" xmi:id="A_component_processComponent" memberEnd="A_component_processComponent-ProcessComponent ProcessComponent-base_Component">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="A_component_processComponent-ProcessComponent" name="extension_ProcessComponent" type="ProcessComponent" aggregation="composite" association="A_component_processComponent"/>
+ </packagedElement>
+ </uml:Profile>
+</xmi:XMI>
diff --git a/scripts/normative-xmi/xmi2qt.xq b/scripts/normative-xmi/xmi2qt.xq
index 594852bc..1d718d99 100644
--- a/scripts/normative-xmi/xmi2qt.xq
+++ b/scripts/normative-xmi/xmi2qt.xq
@@ -18,6 +18,7 @@ declare function qtxmi:mappedBaseNamespace($xmiFile as xs:string*) as xs:string*
else if ($xmiFile = "MOF.xmi") then "QtMof"
else if ($xmiFile = "MOF-merged.xmi") then "QtMof"
else if ($xmiFile = "DuSE.xmi") then "QtDuse"
+ else if ($xmiFile = "SADuSEProfile.xmi") then "QtSADuse"
else "QtUnknown"
};
@@ -236,11 +237,11 @@ declare function qtxmi:subsettedBy($property as node()) as xs:string {
<qtxmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.omg.org/spec/UML/20110701" xmlns:qtxmi="http://www.qt-project.org">
{
-for $namespace in distinct-values((doc($xmiFile)//packagedElement[@xmi:type="uml:Package"] | doc($xmiFile)//uml:Package)/@xmi:id)
+for $namespace in distinct-values((doc($xmiFile)//packagedElement[@xmi:type="uml:Package" or @xmi:type="uml:Profile"] | doc($xmiFile)//uml:Package | doc($xmiFile)//uml:Profile)/@xmi:id)
return
<namespace path="{replace(replace(replace(concat(qtxmi:mappedBaseNamespace($xmiFile), $namespace), "-", "/"), "::", "/"), "/$", "")}">
{
-for $class in doc($xmiFile)//*[@xmi:id=$namespace]/packagedElement[@xmi:type="uml:Class"]
+for $class in doc($xmiFile)//*[@xmi:id=$namespace]/packagedElement[@xmi:type="uml:Class" or @xmi:type="uml:Stereotype"]
let $namespace := concat(replace(concat(qtxmi:mappedBaseNamespace($xmiFile), $namespace), "-", "::"), "::")
let $superClasses := $class/generalization/@general | $class/generalization/general/@xmi:idref | $class/generalization/general/@href
let $isAbstract := if ($class/@isAbstract) then $class/@isAbstract else "false"