[QVT-R] Problem with subvertex [message #550172] |
Thu, 29 July 2010 08:59  |
Eclipse User |
|
|
|
Hi there,
I'm trying desperately to transform an uml state Machine Diagram,. I just wanted to add a new state with a region into the region off the state machine.
The input diagram looks like this:
- package
---- stateMachine
-------- smRegion
-----------.....
After the transformation it looks :
- package
---- stateMachine
--------smRegion
-----------.... .....
-compositeStete
---- csRegion
So it is in the same level of the package, I tray using 'subvertex' but I can't do it...
I would like that it be like this :
- package
----stateMachine
--------smRegion
-----------.... .....
-----------compositeStete
---------------- csRegion
My implementation look like this :
transformation stateMachinesDiagram2stateMachinesDiagram(source : uml, target : uml) {
top relation package2package {
packageName : String;
enforce domain source packageS: uml::Package {
name = packageName
};
checkonly domain target packageT: uml::Package {
name = packageName
};
}
top relation stateMachine2stateMachine {
smName : String;
enforce domain source stateMachineS: uml::StateMachine {
name = smName,
_package = packageS : uml::Package {}
};
checkonly domain target stateMachineT: uml::StateMachine{
name = smName,
_package = packageT : uml::Package {}
};
when{package2package(packageS,packageT);}
}
top relation region2region {
smName : String;
--sv : OrderedSet(uml::Vertex);
enforce domain source regionS: uml::Region {
name = smName,
-- subvertex =sv : uml::Vertex {},
stateMachine = smS : uml::StateMachine {}
};
checkonly domain target regionT: uml::Region{
name = smName,
state = newState : uml::State {
name = 'compositeStete',
region = reg : uml::Region {
name = 'csRegion'
}
},
stateMachine = smT : uml::StateMachine {}
};
when{stateMachine2stateMachine(smS,smT);}
}
}
Someone could help me please, how can I do it please ?
With regards
|
|
|
Re: [QVT-R] Problem with subvertex [message #550260 is a reply to message #550172] |
Thu, 29 July 2010 12:17   |
Eclipse User |
|
|
|
Hi Bler
Since Eclipse QVTR currently has no execution capability, you are
presumably not using Eclipse QVTr, so you should probably ask on the
support group of whatever tool you are using.
My general approach to a problem that I cannot solve is to debug it,
variously using single step, 'printf', or incremental change.
Regards
Ed Willink
On 29/07/2010 13:59, Bler wrote:
> Hi there,
>
> I'm trying desperately to transform an uml state Machine Diagram,. I
> just wanted to add a new state with a region into the region off the
> state machine.
>
> The input diagram looks like this: - package
> ---- stateMachine
> -------- smRegion
> -----------.....
>
> After the transformation it looks :
> - package
> ---- stateMachine
> --------smRegion
> -----------.... .....
> -compositeStete ---- csRegion
> So it is in the same level of the package, I tray using 'subvertex' but
> I can't do it...
> I would like that it be like this :
>
> - package
> ----stateMachine
> --------smRegion
> -----------.... .....
> -----------compositeStete ---------------- csRegion
>
> My implementation look like this :
>
> transformation stateMachinesDiagram2stateMachinesDiagram(source : uml,
> target : uml) {
> top relation package2package {
> packageName : String;
> enforce domain source packageS: uml::Package {
> name = packageName
> };
> checkonly domain target packageT: uml::Package {
> name = packageName
> };
> }
>
> top relation stateMachine2stateMachine {
> smName : String;
> enforce domain source stateMachineS: uml::StateMachine {
> name = smName, _package = packageS : uml::Package {}
> };
> checkonly domain target stateMachineT: uml::StateMachine{
> name = smName, _package = packageT : uml::Package {}
> };
> when{package2package(packageS,packageT);}
> }
>
> top relation region2region {
> smName : String;
> --sv : OrderedSet(uml::Vertex);
> enforce domain source regionS: uml::Region {
> name = smName, -- subvertex =sv : uml::Vertex {},
> stateMachine = smS : uml::StateMachine {} };
> checkonly domain target regionT: uml::Region{
> name = smName,
> state = newState : uml::State {
> name = 'compositeStete',
> region = reg : uml::Region {
> name = 'csRegion' }
> }, stateMachine = smT : uml::StateMachine {}
> };
> when{stateMachine2stateMachine(smS,smT);}
> }
> }
>
>
> Someone could help me please, how can I do it please ?
>
> With regards
>
|
|
|
Re: [QVT-R] Problem with subvertex [message #550265 is a reply to message #550172] |
Thu, 29 July 2010 12:38  |
Eclipse User |
|
|
|
Hi Edward
Thank you so much for your commentaries, I found the solution anyway I have an other problem...
How does it possible to search an element only in the target model, please ? in QVT-R
I tray like this : uml::State.allInstances()-> select .....
Is there any possibility to specify the model, 'out' in this case, please ?
(in ATL we can Do : : uml::State.allInstancesFrom('out') )
With regards
bler
|
|
|
Powered by
FUDForum. Page generated in 0.24068 seconds