Home » Archived » M2M (model-to-model transformation) » [QVTO]when a type does not conform to itself?
[QVTO]when a type does not conform to itself? [message #79695] |
Mon, 21 April 2008 17:16  |
Eclipse User |
|
|
|
Originally posted by: comouraf-lixo.yahoo.fr
Hi,
I'm getting the following error:
> "The type 'collections::Bag(MySpecialConnector)' does not conform to the
> type 'Bag(MySpecialConnector)' of the property 'ownedConnectors'"
originating in the line:
> ownedConnectors:=self.ownedConnector->map toMySpecialConnector();
where 'ownedConnectors' is an attribute from a superclass defined in another
metamodel (visible via code completion). The same assignement works when
called in the superclass.
Any idea on what is happening here?
Thanks,
César
|
|
|
Re: [QVTO]when a type does not conform to itself? [message #79710 is a reply to message #79695] |
Mon, 21 April 2008 17:43   |
Eclipse User |
|
|
|
Hi César,
Just a hint that first came to my mind, in case you use unqualified type
names and
both the source and target metamodel contain 'MySpecialConnector' type.
Could you check this case?
The type name can be qualified with the package name or even modeltype
name to resolve
ambiguities.
PS: However, if it's this case, we have to report ambiguos type reference.
Regards,
/Radek
On Mon, 21 Apr 2008 23:16:38 +0200, kaiserlautern <comouraf-lixo@yahoo.fr>
wrote:
> Hi,
>
> I'm getting the following error:
>
>> "The type 'collections::Bag(MySpecialConnector)' does not conform to
>> the type 'Bag(MySpecialConnector)' of the property 'ownedConnectors'"
>
> originating in the line:
>
> > ownedConnectors:=self.ownedConnector->map toMySpecialConnector();
>
> where 'ownedConnectors' is an attribute from a superclass defined in
> another metamodel (visible via code completion). The same assignement
> works when called in the superclass.
>
> Any idea on what is happening here?
>
> Thanks,
>
> César
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
|
|
|
Re: [QVTO]when a type does not conform to itself? [message #79726 is a reply to message #79710] |
Mon, 21 April 2008 18:57   |
Eclipse User |
|
|
|
Originally posted by: comouraf-lixo.yahoo.fr
Hi, Radek,
I'm afraid this is not the problem, since all types are fully qualified.
Also, source mm is UML (no MySpecialConnector ;-). In any case, I reproduce
the whole mapping below. In this case, all attributes defined in the
subclass (Temp::ParameterableComponent) work fine, while ownedConnectors,
and any other attribute inherited from the superclass fail. If you have time
to check this problem, I can send you the metamodels.
Thank you again,
César
mapping UML::Class::toParameterableComponent():Temp::ParameterableCo mponent
when{ not self.ownedTemplateSignature.oclIsUndefined() }
{
init{
log(self.name);
result:=self.resolveone(Temp::ParameterableComponent);
}
name:=self.name;
formal:=self.ownedTemplateSignature.ownedParameter->map
toFormalParameter()->asOrderedSet();
innerElement:=self.ownedAttribute->map toParamProperty()->asOrderedSet();
innerElement+=self.ownedConnector->map toParamConnector()->asOrderedSet();
--ownedConnectors:=self.ownedConnector->map toAssemblyConnector();
}
"Radek Dvorak" <radek.dvorak@borland.com> a écrit dans le message de
news:op.t9zdahyihj1a1g@czprl-rdvorak2.emea.borl.net...
> Hi César,
>
> Just a hint that first came to my mind, in case you use unqualified type
> names and
> both the source and target metamodel contain 'MySpecialConnector' type.
> Could you check this case?
> The type name can be qualified with the package name or even modeltype
> name to resolve
> ambiguities.
>
> PS: However, if it's this case, we have to report ambiguos type reference.
>
> Regards,
> /Radek
>
>
> On Mon, 21 Apr 2008 23:16:38 +0200, kaiserlautern <comouraf-lixo@yahoo.fr>
> wrote:
>
>> Hi,
>>
>> I'm getting the following error:
>>
>>> "The type 'collections::Bag(MySpecialConnector)' does not conform to
>>> the type 'Bag(MySpecialConnector)' of the property 'ownedConnectors'"
>>
>> originating in the line:
>>
>> > ownedConnectors:=self.ownedConnector->map toMySpecialConnector();
>>
>> where 'ownedConnectors' is an attribute from a superclass defined in
>> another metamodel (visible via code completion). The same assignement
>> works when called in the superclass.
>>
>> Any idea on what is happening here?
>>
>> Thanks,
>>
>> César
>
>
>
> --
> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
|
|
|
Re: [QVTO]when a type does not conform to itself? [message #79740 is a reply to message #79726] |
Mon, 21 April 2008 19:09   |
Eclipse User |
|
|
|
Sure, send the metamodels if you can please ;-)
/Radek
On Tue, 22 Apr 2008 00:57:57 +0200, kaiserlautern <comouraf-lixo@yahoo.fr>
wrote:
> Hi, Radek,
>
> I'm afraid this is not the problem, since all types are fully qualified.
> Also, source mm is UML (no MySpecialConnector ;-). In any case, I
> reproduce the whole mapping below. In this case, all attributes defined
> in the subclass (Temp::ParameterableComponent) work fine, while
> ownedConnectors, and any other attribute inherited from the superclass
> fail. If you have time to check this problem, I can send you the
> metamodels.
>
> Thank you again,
>
> César
>
> mapping
> UML::Class::toParameterableComponent():Temp::ParameterableCo mponent
> when{ not self.ownedTemplateSignature.oclIsUndefined() }
> {
> init{
> log(self.name);
> result:=self.resolveone(Temp::ParameterableComponent);
> }
> name:=self.name;
> formal:=self.ownedTemplateSignature.ownedParameter->map
> toFormalParameter()->asOrderedSet();
> innerElement:=self.ownedAttribute->map
> toParamProperty()->asOrderedSet();
> innerElement+=self.ownedConnector->map
> toParamConnector()->asOrderedSet();
> --ownedConnectors:=self.ownedConnector->map toAssemblyConnector();
> }
>
> "Radek Dvorak" <radek.dvorak@borland.com> a écrit dans le message de
> news:op.t9zdahyihj1a1g@czprl-rdvorak2.emea.borl.net...
>> Hi César,
>>
>> Just a hint that first came to my mind, in case you use unqualified
>> type names and
>> both the source and target metamodel contain 'MySpecialConnector' type.
>> Could you check this case?
>> The type name can be qualified with the package name or even modeltype
>> name to resolve
>> ambiguities.
>>
>> PS: However, if it's this case, we have to report ambiguos type
>> reference.
>>
>> Regards,
>> /Radek
>>
>>
>> On Mon, 21 Apr 2008 23:16:38 +0200, kaiserlautern
>> <comouraf-lixo@yahoo.fr> wrote:
>>
>>> Hi,
>>>
>>> I'm getting the following error:
>>>
>>>> "The type 'collections::Bag(MySpecialConnector)' does not conform to
>>>> the type 'Bag(MySpecialConnector)' of the property 'ownedConnectors'"
>>>
>>> originating in the line:
>>>
>>> > ownedConnectors:=self.ownedConnector->map toMySpecialConnector();
>>>
>>> where 'ownedConnectors' is an attribute from a superclass defined in
>>> another metamodel (visible via code completion). The same assignement
>>> works when called in the superclass.
>>>
>>> Any idea on what is happening here?
>>>
>>> Thanks,
>>>
>>> César
>>
>>
>>
>> -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
|
|
| |
Re: [QVTO]when a type does not conform to itself? [message #630111 is a reply to message #630085] |
Thu, 30 September 2010 12:21  |
Eclipse User |
|
|
|
Hi
'xxx::Bag(LocalVariable)'
is a Collection, which in OCL 2.0 and QVT 1.0 does not conform to any
non-collection.
In OCL 2.2, which is not fully supported by MDT/OCL 3.0.0 and so
probably not supported by M2M/QVTo, a Collection conforms to OclAny,
which still does not conform to a Variable.
I think the message is just telling you that you are confused about your
collections.
Regards
Ed Willink
On 30/09/2010 16:28, Macca1892 wrote:
> Hello, I have a similar problem
>
> "The type 'xxx::Bag(LocalVariable)' does not conform to the type
> 'abc::Variable' of the property 'Variable'"
>
> varExp.Variable := exp.oclAsType(sm::VariableExpression).variable->map
> mapVar();
>
> ---
> The mapping is very simple like this:
> mapping sm::Variable::mapVar() : nqc::LocalVariable{
> ..
> }
>
> any suggestions?
|
|
|
Goto Forum:
Current Time: Wed Jul 16 08:02:19 EDT 2025
Powered by FUDForum. Page generated in 0.06264 seconds
|