Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » M2M (model-to-model transformation) » [QVTO] Model elements disappear
[QVTO] Model elements disappear [message #478756] Thu, 06 August 2009 17:19 Go to next message
Eclipse UserFriend
Originally posted by: formatzeh.gmx.de

This is a multi-part message in MIME format.
--------------090603070902020503010905
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

I have a strange problem and I don't know why my transformation behaves
like this. So I try to post here all which is important and hope someone
can help me. As I don't know where the issue comes from I attached some
files (model instance and blackbox library).

I implemented a blackbox library which does some computations for a
specified model and then generates a new element which will be added to
the same input model. In my metamodel I defined components which can
have type references. For those type references I will generate a data
channel. For the type references a list will be created. After this
every element in the list will be checked and if it is valid it will be
added to the input model. But after the iteration (method
generateCommunicationModel) the typereferences of the events get null.
The references simply disappear. The strange thing is that the type
references won't disappear from the operations. Example:

before transformation:

<component xsi:type="ccm:ServiceAccessComponent"
name="InternalBuildingsProvider"
descriptionLocation="localhost:8080/BuildingsService?wsdl">
<operation name="collectBuildings"/>
<event xsi:type="ccm:Event" name="getBuildings">
<typeReference
complexType="//@model.0/@dataTypes/@dataType[name='BuildingList'] "/>
</event>
</component>

after transformation:

<component xsi:type="ccm:ServiceAccessComponent"
name="InternalBuildingsProvider"
descriptionLocation="localhost:8080/BuildingsService?wsdl">
<operation name="collectBuildings"/>
<event xsi:type="ccm:Event" name="getBuildings"/>
</component>

And I don't know why the type reference will be removed. Maybe someone
can look over my code and tell me. I'm very desperate.

best regards,
Gilbert

--------------090603070902020503010905
Content-Type: text/plain;
name="CommunicationChannelGenerationLibrary.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="CommunicationChannelGenerationLibrary.java"

cGFja2FnZSBkZS5qYW5yZWltb25lLmNydWlzZS5jb21wb3NpdGlvbm1vZGVs LnRyYW5zZm9y
bWF0aW9ucy5saWJyYXJpZXM7DQoNCmltcG9ydCBqYXZhLnV0aWwuSGFzaE1h cDsNCmltcG9y
dCBqYXZhLnV0aWwuTWFwOw0KDQppbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNv bW1vbi51dGls
LkVMaXN0Ow0KDQppbXBvcnQgZGUuamFucmVpbW9uZS5jcnVpc2UuQ1JVSVNl TWV0YU1vZGVs
LkNSVUlTZU1ldGFNb2RlbEZhY3Rvcnk7DQppbXBvcnQgZGUuamFucmVpbW9u ZS5jcnVpc2Uu
Q1JVSVNlTWV0YU1vZGVsLkNvbW11bmljYXRpb25Nb2RlbDsNCmltcG9ydCBk ZS5qYW5yZWlt
b25lLmNydWlzZS5DUlVJU2VNZXRhTW9kZWwuQ29tcG9uZW50Ow0KaW1wb3J0 IGRlLmphbnJl
aW1vbmUuY3J1aXNlLkNSVUlTZU1ldGFNb2RlbC5Db25jZXB0dWFsTW9kZWw7 DQppbXBvcnQg
ZGUuamFucmVpbW9uZS5jcnVpc2UuQ1JVSVNlTWV0YU1vZGVsLkRhdGFDaGFu bmVsOw0KaW1w
b3J0IGRlLmphbnJlaW1vbmUuY3J1aXNlLkNSVUlTZU1ldGFNb2RlbC5JRXZl bnQ7DQppbXBv
cnQgZGUuamFucmVpbW9uZS5jcnVpc2UuQ1JVSVNlTWV0YU1vZGVsLklQdWJs aXNoZXI7DQpp
bXBvcnQgZGUuamFucmVpbW9uZS5jcnVpc2UuQ1JVSVNlTWV0YU1vZGVsLklT dWJzY3JpYmVy
Ow0KaW1wb3J0IGRlLmphbnJlaW1vbmUuY3J1aXNlLkNSVUlTZU1ldGFNb2Rl bC5PcGVyYXRp
b247DQppbXBvcnQgZGUuamFucmVpbW9uZS5jcnVpc2UuQ1JVSVNlTWV0YU1v ZGVsLlB1Ymxp
c2hTdWJzY3JpYmU7DQppbXBvcnQgZGUuamFucmVpbW9uZS5jcnVpc2UuQ1JV SVNlTWV0YU1v
ZGVsLlR5cGVSZWZlcmVuY2U7DQppbXBvcnQgZGUuamFucmVpbW9uZS5jcnVp c2UuY29tcG9z
aXRpb25zbW9kZWwudHJhbnNmb3JtYXRpb25zLnV0aWwuUHVibGlzaFN1YnNj cmliZVNldHM7
DQppbXBvcnQgZGUuamFucmVpbW9uZS5jcnVpc2UuY29tcG9zaXRpb25zbW9k ZWwudHJhbnNm
b3JtYXRpb25zLnV0aWwuVHlwZVJlZmVyZW5jZVV0aWw7DQoNCnB1YmxpYyBj bGFzcyBDb21t
dW5pY2F0aW9uQ2hhbm5lbEdlbmVyYXRpb25MaWJyYXJ5IHsNCg0KCXByaXZh dGUgTWFwPEVM
aXN0PFR5cGVSZWZlcmVuY2U+LCBQdWJsaXNoU3Vic2NyaWJlU2V0cz4gZGF0 YUNoYW5uZWxz
ID0gbmV3IEhhc2hNYXA8RUxpc3Q8VHlwZVJlZmVyZW5jZT4sIFB1Ymxpc2hT dWJzY3JpYmVT
ZXRzPigpOw0KCXByaXZhdGUgc3RhdGljIENSVUlTZU1ldGFNb2RlbEZhY3Rv cnkgRkFDVE9S
WSA9IENSVUlTZU1ldGFNb2RlbEZhY3RvcnkuZUlOU1RBTkNFOw0KDQoJcHVi bGljIENvbW11
bmljYXRpb25DaGFubmVsR2VuZXJhdGlvbkxpYnJhcnkoKSB7DQoJCXN1cGVy KCk7DQoJfQ0K
DQovLwlAb3JnLmVjbGlwc2UubTJtLnF2dC5vbWwuYmxhY2tib3guamF2YS5P cGVyYXRpb24o
Y29udGV4dHVhbCA9IHRydWUsIGRlc2NyaXB0aW9uID0gIkdlbmVyYXRlcyB0 aGUgQ29tbXVu
aWNhdGlvbk1vZGVsIGJ5IGluZmVyaW5nIG92ZXIgYWxsIGV2ZW50cyIgKw0K Ly8JIm9mIGFs
bCBjb21wb25lbnRzIGFuZCB0aGUgb3BlcmF0aW9ucyBvZiBhbGwgY29tcG9u ZW50cy4iLCBr
aW5kID0gS2luZC5PUEVSQVRJT04pDQoJcHVibGljIENvbW11bmljYXRpb25N b2RlbCBnZW5l
cmF0ZUNvbW11bmljYXRpb25Nb2RlbChDb25jZXB0dWFsTW9kZWwgbW9kZWwp ew0KCQlFTGlz
dDxDb21wb25lbnQ+IGNvbXBvbmVudHMgPSBtb2RlbC5nZXRDb21wb25lbnQo KTsNCgkJLy8g
UHVibGlzaGVyDQoJCWdlbmVyYXRlUHVibGlzaGVycyhjb21wb25lbnRzKTsN CgkJLy8gU3Vi
c2NyaWJlcg0KCQlnZW5lcmF0ZVN1YnNjcmliZXJzKGNvbXBvbmVudHMpOw0K DQoJCUNvbW11
bmljYXRpb25Nb2RlbCBjb21tTW9kZWwgPSBGQUNUT1JZLmNyZWF0ZUNvbW11 bmljYXRpb25N
b2RlbCgpOw0KCQlQdWJsaXNoU3Vic2NyaWJlIHB1YnN1YiA9IEZBQ1RPUlku Y3JlYXRlUHVi
bGlzaFN1YnNjcmliZSgpOw0KCQljb21tTW9kZWwuc2V0Q29tbXVuaWNhdGlv bihwdWJzdWIp
Ow0KCQlmb3IgKFB1Ymxpc2hTdWJzY3JpYmVTZXRzIHBzU2V0cyA6IGRhdGFD aGFubmVscy52
YWx1ZXMoKSkgew0KCQkJaWYocHNTZXRzLmlzVmFsaWQoKSl7DQoJCQkJRGF0 YUNoYW5uZWwg
Y2hhbm5lbCA9IEZBQ1RPUlkuY3JlYXRlRGF0YUNoYW5uZWwoKTsNCgkJCQlj aGFubmVsLnNl
dE5hbWUoZ2VuZXJhdGVDaGFubmVsTmFtZShwc1NldHMuZ2V0RGF0YUNoYW5u ZWxTaWduYXR1
cmUoKSkpOw0KCQkJCWNoYW5uZWwuZ2V0UHVibGlzaGVyKCkuYWRkQWxsKHBz U2V0cy5nZXRQ
dWJsaXNoZXIoKSk7DQoJCQkJY2hhbm5lbC5nZXRTdWJzY3JpYmVyKCkuYWRk QWxsKHBzU2V0
cy5nZXRTdWJzY3JpYmVyKCkpOw0KCQkJCWNoYW5uZWwuZ2V0VHlwZVJlZmVy ZW5jZSgpLmFk
ZEFsbChwc1NldHMuZ2V0RGF0YUNoYW5uZWxTaWduYXR1cmUoKSk7DQoJCQkJ cHVic3ViLmdl
dENoYW5uZWwoKS5hZGQoY2hhbm5lbCk7DQoJCQl9DQoJCX0NCgkJcmV0dXJu IGNvbW1Nb2Rl
bDsNCgl9DQoNCglwcml2YXRlIFN0cmluZyBnZW5lcmF0ZUNoYW5uZWxOYW1l KEVMaXN0PFR5
cGVSZWZlcmVuY2U+IHR5cGVzKXsNCgkJU3RyaW5nIG5hbWUgPSAiIjsNCgkJ Zm9yIChUeXBl
UmVmZXJlbmNlIHR5cGUgOiB0eXBlcykgew0KCQkJaWYodHlwZS5nZXRDb21w bGV4VHlwZSgp
ICE9IG51bGwpew0KCQkJCW5hbWUgKz0gdHlwZS5nZXRDb21wbGV4VHlwZSgp LmdldE5hbWUo
KTsNCgkJCX0gZWxzZSB7DQoJCQkJbmFtZSArPSB0eXBlLmdldFByaW1pdGl2 ZVR5cGUoKTsN
CgkJCX0NCg0KCQl9DQoJCW5hbWUgKz0gIkNoYW5uZWwiOw0KCQlyZXR1cm4g bmFtZTsNCgl9
DQoNCglwcml2YXRlIHZvaWQgZ2VuZXJhdGVTdWJzY3JpYmVycyhFTGlzdDxD b21wb25lbnQ+
IGNvbXBvbmVudHMpIHsNCgkJZm9yIChDb21wb25lbnQgY29tcG9uZW50IDog Y29tcG9uZW50
cykgew0KCQkJRUxpc3Q8T3BlcmF0aW9uPiBvcGVyYXRpb25zID0gY29tcG9u ZW50LmdldE9w
ZXJhdGlvbigpOw0KCQkJZm9yIChPcGVyYXRpb24gb3AgOiBvcGVyYXRpb25z KSB7DQoJCQkJ
RUxpc3Q8VHlwZVJlZmVyZW5jZT4gdHlwZXMgPSBvcC5nZXRUeXBlUmVmZXJl bmNlKCk7DQoJ
CQkJaWYoIXR5cGVzLmlzRW1wdHkoKSl7DQoJCQkJCWlmKCFjb250YWluc1R5 cGVzKHR5cGVz
KSl7DQoJCQkJCQlQdWJsaXNoU3Vic2NyaWJlU2V0cyBwc1NldHMgPSBuZXcg UHVibGlzaFN1
YnNjcmliZVNldHMoKTsNCgkJCQkJCWZvciAoVHlwZVJlZmVyZW5jZSB0eXBl IDogdHlwZXMp
IHsNCgkJCQkJCQlwc1NldHMuYWRkRGF0YUNoYW5uZWxUeXBlKHR5cGUpOw0K CQkJCQkJfQ0K
CQkJCQkJY3JlYXRlQW5kQWRkRGF0YVN1YnNjcmliZXIocHNTZXRzLCBvcCk7 DQoJCQkJCQlk
YXRhQ2hhbm5lbHMucHV0KHR5cGVzLCBwc1NldHMpOw0KCQkJCQl9IGVsc2Ug ew0KCQkJCQkJ
UHVibGlzaFN1YnNjcmliZVNldHMgcHNTZXRzID0gZ2V0UHVibGlzaFN1YnNj cmliZVNldHMo
dHlwZXMpOw0KCQkJCQkJY3JlYXRlQW5kQWRkRGF0YVN1YnNjcmliZXIocHNT ZXRzLCBvcCk7
DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoNCglwcml2YXRlIHZv aWQgZ2VuZXJh
dGVQdWJsaXNoZXJzKEVMaXN0PENvbXBvbmVudD4gY29tcG9uZW50cykgew0K CQlmb3IgKENv
bXBvbmVudCBjb21wb25lbnQgOiBjb21wb25lbnRzKSB7DQoJCQlFTGlzdDxJ RXZlbnQ+IGV2
ZW50cyA9IGNvbXBvbmVudC5nZXRFdmVudCgpOw0KCQkJZm9yIChJRXZlbnQg ZXZlbnQgOiBl
dmVudHMpIHsNCgkJCQlFTGlzdDxUeXBlUmVmZXJlbmNlPiB0eXBlcyA9IGV2 ZW50LmdldFR5
cGVSZWZlcmVuY2UoKTsNCgkJCQlpZighdHlwZXMuaXNFbXB0eSgpKXsNCgkJ CQkJaWYoIWNv
bnRhaW5zVHlwZXModHlwZXMpKXsNCgkJCQkJCVB1Ymxpc2hTdWJzY3JpYmVT ZXRzIHBzU2V0
cyA9IG5ldyBQdWJsaXNoU3Vic2NyaWJlU2V0cygpOw0KCQkJCQkJZm9yIChU eXBlUmVmZXJl
bmNlIHR5cGUgOiB0eXBlcykgew0KCQkJCQkJCXBzU2V0cy5hZGREYXRhQ2hh bm5lbFR5cGUo
dHlwZSk7DQoJCQkJCQl9DQoJCQkJCQljcmVhdGVBbmRBZGREYXRhUHVibGlz aGVyKHBzU2V0
cywgZXZlbnQpOw0KCQkJCQkJZGF0YUNoYW5uZWxzLnB1dCh0eXBlcywgcHNT ZXRzKTsNCgkJ
CQkJfSBlbHNlIHsNCgkJCQkJCVB1Ymxpc2hTdWJzY3JpYmVTZXRzIHBzU2V0 cyA9IGdldFB1
Ymxpc2hTdWJzY3JpYmVTZXRzKHR5cGVzKTsNCgkJCQkJCWNyZWF0ZUFuZEFk ZERhdGFQdWJs
aXNoZXIocHNTZXRzLCBldmVudCk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJ CX0NCgl9DQoN
Cglwcml2YXRlIHN0YXRpYyB2b2lkIGNyZWF0ZUFuZEFkZERhdGFQdWJsaXNo ZXIoUHVibGlz
aFN1YnNjcmliZVNldHMgcHNTZXRzLCBJRXZlbnQgZXZlbnQpew0KCQlJUHVi bGlzaGVyIHB1
Ymxpc2hlciA9IEZBQ1RPUlkuY3JlYXRlUHVibGlzaGVyKCk7DQoJCXB1Ymxp c2hlci5zZXRF
dmVudChldmVudCk7DQoJCXBzU2V0cy5hZGRQdWJsaXNoZXIocHVibGlzaGVy KTsNCgl9DQoN
Cglwcml2YXRlIHN0YXRpYyB2b2lkIGNyZWF0ZUFuZEFkZERhdGFTdWJzY3Jp YmVyKFB1Ymxp
c2hTdWJzY3JpYmVTZXRzIHBzU2V0cywgT3BlcmF0aW9uIG9wKXsNCgkJSVN1 YnNjcmliZXIg
c3Vic2NyaWJlciA9IEZBQ1RPUlkuY3JlYXRlU3Vic2NyaWJlcigpOw0KCQlz dWJzY3JpYmVy
LnNldE9wZXJhdGlvbihvcCk7DQoJCXBzU2V0cy5hZGRTdWJzY3JpYmVyKHN1 YnNjcmliZXIp
Ow0KCX0NCg0KCXByaXZhdGUgYm9vbGVhbiBjb250YWluc1R5cGVzKEVMaXN0 PFR5cGVSZWZl
cmVuY2U+IHR5cGVzKSB7DQoJCXJldHVybiAoZ2V0UHVibGlzaFN1YnNjcmli ZVNldHModHlw
ZXMpICE9IG51bGwpPyB0cnVlIDogZmFsc2U7DQoJfQ0KDQoJcHJpdmF0ZSBQ dWJsaXNoU3Vi
c2NyaWJlU2V0cyBnZXRQdWJsaXNoU3Vic2NyaWJlU2V0cyhFTGlzdDxUeXBl UmVmZXJlbmNl
PiB0eXBlcykgew0KCQlmb3IgKEVMaXN0PFR5cGVSZWZlcmVuY2U+IGVMaXN0 IDogZGF0YUNo
YW5uZWxzLmtleVNldCgpKSB7DQoJCQlpZihUeXBlUmVmZXJlbmNlVXRpbC5h cmVUeXBlUmVm
ZXJlbmNlTGlzdHNFcXVhbChlTGlzdCwgdHlwZXMpKXsNCgkJCQlyZXR1cm4g ZGF0YUNoYW5u
ZWxzLmdldChlTGlzdCk7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIG51bGw7DQoJ fQ0KfQ0K
--------------090603070902020503010905
Content-Type: text/xml;
name="ImmoManagement.ccm"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="ImmoManagement.ccm"

<?xml version="1.0" encoding="UTF-8"?>
<ccm:CRUISeCompositionModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ccm="http://CRUISeMetaModel/1.0">
<model xsi:type="ccm:ConceptualModel">
<component xsi:type="ccm:ServiceAccessComponent" name="InternalBuildingsProvider" descriptionLocation="localhost:8080/BuildingsService?wsdl">
<operation name="collectBuildings"/>
<event xsi:type="ccm:Event" name="getBuildings">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='BuildingList'] "/>
</event>
</component>
<component xsi:type="ccm:ServiceAccessComponent" name="FlickrPhotosProvider" descriptionLocation="http://api.flickr.com/services">
<operation name="collectPhotosByTag">
<typeReference primitiveType="String"/>
</operation>
<event xsi:type="ccm:Event" name="onPhotosCollected">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='URLList'] "/>
</event>
<configuration>
<key name="format">
<value xsi:type="ccm:Value" value="atom"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:ServiceAccessComponent" name="YellowPagesProvider" descriptionLocation="http://yellowpages.com/services?wsdl">
<operation name="collectProvidersByAddressDomain">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Address'] "/>
<typeReference primitiveType="String"/>
</operation>
<event xsi:type="ccm:Event" name="getServiceProviderList">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='ServiceProviderList'] "/>
</event>
</component>
<component xsi:type="ccm:UIService" name="BuildingsBrowser" url="http://www.cruise-projekt.de/uis/UISBrowser">
<operation name="displayList">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='BuildingList'] "/>
</operation>
<event xsi:type="ccm:Event" name="onListItemSelected">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='BuildingList'] "/>
</event>
<configuration>
<key name="appearance">
<value xsi:type="ccm:Value" value="tree"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:Iterator" name="SelectedBuildingsIterator">
<operation name="iterate">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='BuildingList'] "/>
</operation>
<event xsi:type="ccm:Event" name="nextElement">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Building'] "/>
</event>
</component>
<component xsi:type="ccm:UIService" name="BuildingCostsChart" url="http://www.cruise-projekt.de/uis/UISBuildingChart">
<operation name="showChart">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Building'] "/>
</operation>
<configuration>
<key name="chartKind">
<value xsi:type="ccm:Value" value="pie"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:UIService" name="BuildingMap" classificationCategory="GenericMap">
<operation name="markHouse">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Address'] "/>
</operation>
<operation name="markServiceProvider">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='ServiceProviderList'] "/>
</operation>
<configuration>
<key name="marker">
<value xsi:type="ccm:Value" value="House"/>
<value xsi:type="ccm:Value" value="ServiceProvider"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:UIService" name="PhotoGallery" url="http://www.cruise-projekt.de/uis/UISGallery">
<operation name="displayPhotos">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='URLList'] "/>
</operation>
<configuration>
<key name="columns">
<value xsi:type="ccm:Value" value="1"/>
</key>
<key name="photoMaxDimension">
<value xsi:type="ccm:Value" value="200px"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:UIService" name="TwoStateButton" classificationCategory="2StateButton">
<event xsi:type="ccm:Event" name="onProvidersClick"/>
<event xsi:type="ccm:Event" name="onBuildingClick"/>
<configuration>
<key name="entries">
<value xsi:type="ccm:Value" value="Suche Dienstleister"/>
<value xsi:type="ccm:Value" value="Zeige Details"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:UIService" name="ServiceProviderTable" classificationCategory="GenericTable">
<operation name="displayData">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='ServiceProviderList'] "/>
</operation>
<event xsi:type="ccm:Event" name="onRowClick">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='ServiceProvider'] "/>
</event>
<configuration>
<key name="columns">
<value xsi:type="ccm:Value" value="Kategorie"/>
<value xsi:type="ccm:Value" value="Honorar"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:UIService" name="ServiceProviderDetailsTable" classificationCategory="GenericTable">
<operation name="displayData">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='ServiceProvider'] "/>
</operation>
<configuration>
<key name="columns">
<value xsi:type="ccm:Value" value="Attribut"/>
<value xsi:type="ccm:Value" value="Wert"/>
</key>
</configuration>
</component>
<component xsi:type="ccm:LogicComponent" name="BuildingDataSplitter">
<operation name="splitData">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Building'] "/>
</operation>
<event xsi:type="ccm:Event" name="onAddressSplitted">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Address'] "/>
</event>
<event xsi:type="ccm:Event" name="onIDSplitted">
<typeReference primitiveType="String"/>
</event>
</component>
<component xsi:type="ccm:LogicComponent" name="AddressDomainJoin">
<operation name="setDomain">
<typeReference primitiveType="String"/>
</operation>
<operation name="setAddress">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Address'] "/>
</operation>
<event xsi:type="ccm:Event" name="onJoin">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Address'] "/>
<typeReference primitiveType="String"/>
</event>
</component>
<styles>
<contains xsi:type="ccm:DimensionStyle">
<contains xsi:type="ccm:BorderStyle" decorates="//@model.0/@component[name='BuildingsBrowser']" borderColor="666666"/>
</contains>
</styles>
<runtime>
<operation name="providerClick"/>
<operation name="setBuilding">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Building'] "/>
</operation>
<event xsi:type="ccm:Event" name="getBuilding">
<typeReference complexType="//@model.0/@dataTypes/@dataType[name='Building'] "/>
</event>
<event xsi:type="ccm:Event" name="getDomain">
<typeReference primitiveType="String"/>
</event>
<configuration>
<key name="yellowPagesDomain">
<value xsi:type="ccm:Value" value="House Maintenance"/>
</key>
</configuration>
<initOperation name="initSomeComponents" invoke=" //@model.0/@component[name='InternalBuildingsProvider']/@ope ration[name='collectBuildings'] "/>
</runtime>
<dataTypes>
<dataType xsi:type="ccm:DataType" name="Building" xpointer=" xlink:DataTypes.xsd#xpointer(//complexType[@name=&quot;B uilding&quot;]) "/>
<dataType xsi:type="ccm:DataType" name="Address" xpointer=" xlink:DataTypes.xsd#xpointer(//complexType[@name=&quot;A ddress&quot;]) "/>
<dataType xsi:type="ccm:DataType" name="BuildingList" xpointer=" xlink:DataTypes.xsd#xpointer(//complexType[@name=&quot;B uildingList&quot;]) "/>
<dataType xsi:type="ccm:DataType" name="URL" xpointer=" xlink:DataTypes.xsd#xpointer(//complexType[@name=&quot;U RL&quot;]) "/>
<dataType xsi:type="ccm:DataType" name="URLList" xpointer=" xlink:DataTypes.xsd#xpointer(//complexType[@name=&quot;U RLList&quot;]) "/>
<dataType xsi:type="ccm:DataType" name="ServiceProvider" xpointer=" xlink:DataTypes.xsd#xpointer(//complexType[@name=&quot;S erviceProvider&quot;]) "/>
<dataType xsi:type="ccm:DataType" name="ServiceProviderList" xpointer=" xlink:DataTypes.xsd#xpointer(//complexType[@name=&quot;S erviceProviderList&quot;]) "/>
</dataTypes>
</model>
<model xsi:type="ccm:LayoutModel">
<layout xsi:type="ccm:GridLayout" name="ServiceProviderLayout" unit="percent" width="100" height="100">
<consistsOf xsi:type="ccm:Row" unit="percent" height="50">
<column locate="//@model.0/@component[name='BuildingsBrowser']" unit="percent" width="33"/>
<column locate="//@model.0/@component[name='BuildingMap']" unit="percent" width="33"/>
<column locate="//@model.0/@component[name='ServiceProviderTable']" unit="percent" width="33"/>
</consistsOf>
<row unit="percent" height="50">
<column locate="//@model.0/@component[name='TwoStateButton']" unit="percent" width="33"/>
<column locate="//@model.0/@component[name='ServiceProviderDetailsTable'] " unit="percent" width="33"/>
</row>
</layout>
<layout xsi:type="ccm:AbsolutLayout" name="TestLayout" width="800" height="800">
<position locate="//@model.0/@component[name='BuildingCostsChart']" x="50" y="50"/>
</layout>
<layout xsi:type="ccm:FillLayout" name="FillLayoutTest" unit="percent" width="100" height="100" fillStyle="Vertical">
<fillElement locate="//@model.0/@component[name='BuildingMap']"/>
<fillElement locate="//@model.0/@component[name='PhotoGallery']"/>
</layout>
</model>
<model xsi:type="ccm:NavigationModel">
<view xsi:type="ccm:View" name="ServiceProviderLayoutView" layout="//@model.1/@layout[name='ServiceProviderLayout']">
<transition xsi:type="ccm:ViewTransition"/>
</view>
<view xsi:type="ccm:View" name="TestLayoutView" layout="//@model.1/@layout[name='TestLayout']">
<transition xsi:type="ccm:ViewTransition"/>
</view>
<view xsi:type="ccm:View" name="FillLayoutTestView" layout="//@model.1/@layout[name='FillLayoutTest']">
<transition xsi:type="ccm:ViewTransition"/>
</view>
</model>
</ccm:CRUISeCompositionModel>

--------------090603070902020503010905--
Re: [QVTO] Model elements disappear [message #478857 is a reply to message #478756] Fri, 07 August 2009 09:33 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: formatzeh.gmx.de

I discovered something. I have the following method:

private void generatePublishers(EList<Component> components) {
for (Component component : components) {
EList<IEvent> events = component.getEvent();
for (IEvent event : events) {
EList<TypeReference> types = event.getTypeReference();
if(!types.isEmpty()){
if(!containsTypes(types)){
DataChannel channel = FACTORY.createDataChannel();
channel.getTypeReference().addAll(types);
createAndAddDataPublisher(channel, (Event) event);
dataChannels.put(types, channel);
} else {
DataChannel channel = getPublishSubscribeSets(types);
createAndAddDataPublisher(channel, (Event) event);
}
}
}
}
}

With the method containsTypes(types) a map will be searched for existing
keys already containing the types. If such a key doesn't exist then a
new entry will be added. But I discovered that the following line makes
me desperate:

channel.getTypeReference().addAll(types);

In debug mode I found out that after this line the "types" will be added
correctly with addAll but all places where that EList<TypeReference> is
referenced will remain empty. That means that all references will be
null. That's why the types will be deleted where they came from and at
all places where they are referenced.
Is something wrong with the addAll method? Or lies the problem in my
metamodel?
Re: [QVTO] Model elements disappear [message #478873 is a reply to message #478857] Fri, 07 August 2009 10:25 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: formatzeh.gmx.de

It just seems so as if the reference will be moved and not a new
reference will be created. Anybody an idea?
Re: [QVTO] Model elements disappear [message #478885 is a reply to message #478873] Fri, 07 August 2009 10:55 Go to previous message
Eclipse UserFriend
Originally posted by: formatzeh.gmx.de

I got it. By adAll all objects within the list where moved. I had to
create new objects containing the required references. Now it works.
Previous Topic:problem with bpel.ecore
Next Topic:[ATL] Combining values from several input models
Goto Forum:
  


Current Time: Sat Apr 27 00:04:27 GMT 2024

Powered by FUDForum. Page generated in 0.03323 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top