Home » Archived » M2M (model-to-model transformation) » [QVTO]string operations and blackboxes
[QVTO]string operations and blackboxes [message #79920] |
Wed, 23 April 2008 22:42 |
Eclipse User |
|
|
|
Originally posted by: comouraf-lixo.yahoo.fr
Hi,
I have strings like a<K->1,T->T1> and would like to separate parameters (in
this example, K and T) from their values (1 and T1). Apparently, QVTO
implements just a fraction of the string operations proposed in the spec,
making it very difficult (if possible at all) to "tokenize" strings. So, is
this a typical case for blackboxes? If so, how to implement them? Is there
any particularity or all I have to write is a plain (java?) class
implementing only the interface declared in the qvt file? Where to put my
classes?
Thanks,
César
|
|
|
Re: [QVTO]string operations and blackboxes [message #79935 is a reply to message #79920] |
Wed, 23 April 2008 23:24 |
Radomil Dvorak Messages: 249 Registered: July 2009 |
Senior Member |
|
|
Hi Cesar,
We have already implemented complete String operatons set according to the
spec.
But it was committed after M6, which you are apparently using.
We will produce integration build this week, so you could make use of it.
Anyway, once the QVT standard library does not implement all you want, you
have to blackbox it.
There was already mentioned meachism in this newsgroup -
see '[QVTO] Adding custom operations for primitive data types' topic.
This is an old way of blackboxing (came from Borland initial
contribution), we
plan to generate java skeletons from QVT operations headers.
So far, there is a helper String library available in QVTO, you access it
like this
import library Strings;
but most of its routine have been implemented in StdLib already.
Regards,
/Radek
On Thu, 24 Apr 2008 00:42:32 +0200, kaiserlautern <comouraf-lixo@yahoo.fr>
wrote:
> Hi,
>
> I have strings like a<K->1,T->T1> and would like to separate parameters
> (in this example, K and T) from their values (1 and T1). Apparently,
> QVTO implements just a fraction of the string operations proposed in the
> spec, making it very difficult (if possible at all) to "tokenize"
> strings. So, is this a typical case for blackboxes? If so, how to
> implement them? Is there any particularity or all I have to write is a
> plain (java?) class implementing only the interface declared in the qvt
> file? Where to put my classes?
>
> Thanks,
>
> César
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
|
|
|
Re: [QVTO]string operations and blackboxes [message #79950 is a reply to message #79935] |
Thu, 24 April 2008 10:22 |
Eclipse User |
|
|
|
Originally posted by: comouraf-lixo.yahoo.fr
Thanks, Radek,
Maybe I'm gonna wait for the integration build. Using the library, I got
strange things, like:
log(self.name); => prints out: b<k->1>
log(self.name.substring(0,self.name.indexOf('<'))) => prints out:
org.eclipse.emf.ecore.impl.DynamicEObjectImpl@f2869f (eClass:
org.eclipse.emf.ecore.impl.EClassImpl@64419f (name: Invalid_Class)
(instanceClassName: null) (abstract: false, interface: false))
Is it something I missed? I just added the import library Strings to the
transformation.
César
"Radek Dvorak" <radek.dvorak@borland.com> a écrit dans le message de
news:op.t927bqovhj1a1g@czprl-rdvorak2.emea.borl.net...
> Hi Cesar,
>
> We have already implemented complete String operatons set according to the
> spec.
> But it was committed after M6, which you are apparently using.
> We will produce integration build this week, so you could make use of it.
>
> Anyway, once the QVT standard library does not implement all you want, you
> have to blackbox it.
> There was already mentioned meachism in this newsgroup -
> see '[QVTO] Adding custom operations for primitive data types' topic.
>
> This is an old way of blackboxing (came from Borland initial
> contribution), we
> plan to generate java skeletons from QVT operations headers.
>
> So far, there is a helper String library available in QVTO, you access it
> like this
>
> import library Strings;
>
> but most of its routine have been implemented in StdLib already.
>
>
> Regards,
> /Radek
>
> On Thu, 24 Apr 2008 00:42:32 +0200, kaiserlautern <comouraf-lixo@yahoo.fr>
> wrote:
>
>> Hi,
>>
>> I have strings like a<K->1,T->T1> and would like to separate parameters
>> (in this example, K and T) from their values (1 and T1). Apparently,
>> QVTO implements just a fraction of the string operations proposed in the
>> spec, making it very difficult (if possible at all) to "tokenize"
>> strings. So, is this a typical case for blackboxes? If so, how to
>> implement them? Is there any particularity or all I have to write is a
>> plain (java?) class implementing only the interface declared in the qvt
>> file? Where to put my classes?
>>
>> Thanks,
>>
>> César
>
>
>
> --
> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
|
|
|
Re: [QVTO]string operations and blackboxes [message #79965 is a reply to message #79935] |
Thu, 24 April 2008 13:25 |
Adolfo Sanchez-Barbudo Herrera Messages: 260 Registered: July 2009 |
Senior Member |
|
|
Hi Radek,
I have recently started (again ¬¬!! ) a discussion in the OCL newsgroup
about the OCL and QVTo standard libraries. I precisely named you and
colleagues to join it ;).
Since there isn't too many people working around this. It could be
interesting having several points of view, and try to align them to
improve the OMG specification... Oh they seem Ken's word ;P.
I'm glad that you a have added the Std Lib to the CVS. I'll have to
download your code to contrast it with my approach ;).
Cheers,
Adolfo.
Radek Dvorak escribió:
> Hi Cesar,
>
> We have already implemented complete String operatons set according to
> the spec.
> But it was committed after M6, which you are apparently using.
> We will produce integration build this week, so you could make use of it.
>
> Anyway, once the QVT standard library does not implement all you want,
> you have to blackbox it.
> There was already mentioned meachism in this newsgroup -
> see '[QVTO] Adding custom operations for primitive data types' topic.
>
> This is an old way of blackboxing (came from Borland initial
> contribution), we
> plan to generate java skeletons from QVT operations headers.
>
> So far, there is a helper String library available in QVTO, you access
> it like this
>
> import library Strings;
>
> but most of its routine have been implemented in StdLib already.
>
>
> Regards,
> /Radek
>
> On Thu, 24 Apr 2008 00:42:32 +0200, kaiserlautern
> <comouraf-lixo@yahoo.fr> wrote:
>
>> Hi,
>>
>> I have strings like a<K->1,T->T1> and would like to separate
>> parameters (in this example, K and T) from their values (1 and T1).
>> Apparently, QVTO implements just a fraction of the string operations
>> proposed in the spec, making it very difficult (if possible at all) to
>> "tokenize" strings. So, is this a typical case for blackboxes? If so,
>> how to implement them? Is there any particularity or all I have to
>> write is a plain (java?) class implementing only the interface
>> declared in the qvt file? Where to put my classes?
>>
>> Thanks,
>>
>> César
>
>
>
|
|
|
Re: [QVTO]string operations and blackboxes [message #79977 is a reply to message #79965] |
Thu, 24 April 2008 14:05 |
Radomil Dvorak Messages: 249 Registered: July 2009 |
Senior Member |
|
|
Hi Adolfo,
Thanks for pinging me, I will join the discussion.
Our StdLib is just in the first phase, building a corresponding model for
available StdLib elements (if possible ;-)).
The approach taken now it's not complete and just builds the model
programmatically,
attaches adapters to operations - call handlers, written by hand in java ->
no QVT library source yet.
It's pretty fast call dispatching and no explicit switching code.
Actually, an analogous mechanism should be used in the next phase too.
The AST library model will be created from QVT concrete syntax -> from
which
an ecore model representing the java impl will be generated.
In a next step - code generation - initially empty java operation skeletons
(later customized by the user) will be generated.
The binding of java operation impls to AST model will be done
automatically when loading the library
for execution.
Basically, the user should write just operation headers etc. in QVT and a
proper
java type binding should be generated automatically.
Perhaps sounds a bit complex, but it should not address the StdLib only
but blackbox libs
in general. Also, the gen model to use and java impl binding might be
replacable by
different kinds of impls, simple by extending a common extension point.
So at the moment, not too much to see as a complete picture of an approach
in the code yet. ;-))
Actually, a uniform model approach made the StdLib content instantly and
correctly applicable in the code-completion
which we have committed recently. So it's not a bad way to go ;-).
Regard,
/Radek
On Thu, 24 Apr 2008 15:25:54 +0200, Adolfo Sánchez-Barbudo Herrera
<adolfosbh@opencanarias.com> wrote:
> Hi Radek,
>
> I have recently started (again ¬¬!! ) a discussion in the OCL newsgroup
> about the OCL and QVTo standard libraries. I precisely named you and
> colleagues to join it ;).
>
> Since there isn't too many people working around this. It could be
> interesting having several points of view, and try to align them to
> improve the OMG specification... Oh they seem Ken's word ;P.
>
> I'm glad that you a have added the Std Lib to the CVS. I'll have to
> download your code to contrast it with my approach ;).
>
> Cheers,
> Adolfo.
>
> Radek Dvorak escribió:
>> Hi Cesar,
>> We have already implemented complete String operatons set according to
>> the spec.
>> But it was committed after M6, which you are apparently using.
>> We will produce integration build this week, so you could make use of
>> it.
>> Anyway, once the QVT standard library does not implement all you want,
>> you have to blackbox it.
>> There was already mentioned meachism in this newsgroup -
>> see '[QVTO] Adding custom operations for primitive data types' topic.
>> This is an old way of blackboxing (came from Borland initial
>> contribution), we
>> plan to generate java skeletons from QVT operations headers.
>> So far, there is a helper String library available in QVTO, you access
>> it like this
>> import library Strings;
>> but most of its routine have been implemented in StdLib already.
>> Regards,
>> /Radek
>> On Thu, 24 Apr 2008 00:42:32 +0200, kaiserlautern
>> <comouraf-lixo@yahoo.fr> wrote:
>>
>>> Hi,
>>>
>>> I have strings like a<K->1,T->T1> and would like to separate
>>> parameters (in this example, K and T) from their values (1 and T1).
>>> Apparently, QVTO implements just a fraction of the string operations
>>> proposed in the spec, making it very difficult (if possible at all) to
>>> "tokenize" strings. So, is this a typical case for blackboxes? If so,
>>> how to implement them? Is there any particularity or all I have to
>>> write is a plain (java?) class implementing only the interface
>>> declared in the qvt file? Where to put my classes?
>>>
>>> Thanks,
>>>
>>> César
>>
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
|
|
|
Re: [QVTO]string operations and blackboxes [message #79991 is a reply to message #79950] |
Thu, 24 April 2008 14:16 |
Radomil Dvorak Messages: 249 Registered: July 2009 |
Senior Member |
|
|
Hi César,
The String operations using positions are 1 based, as well as with
collections.
The strange log record you can see is caused by 0 index at
self.name.substring(0,self.name.indexOf('<'))
so this call results in OclInvalid instance, as it can't give any result.
But you have made a good point, we have to log it meaningfully ;-)
/Radek
On Thu, 24 Apr 2008 12:22:13 +0200, kaiserlautern <comouraf-lixo@yahoo.fr>
wrote:
> Thanks, Radek,
>
> Maybe I'm gonna wait for the integration build. Using the library, I got
> strange things, like:
>
> log(self.name); => prints out: b<k->1>
>
> log(self.name.substring(0,self.name.indexOf('<'))) => prints out:
> org.eclipse.emf.ecore.impl.DynamicEObjectImpl@f2869f (eClass:
> org.eclipse.emf.ecore.impl.EClassImpl@64419f (name: Invalid_Class)
> (instanceClassName: null) (abstract: false, interface: false))
>
> Is it something I missed? I just added the import library Strings to the
> transformation.
>
> César
>
> "Radek Dvorak" <radek.dvorak@borland.com> a écrit dans le message de
> news:op.t927bqovhj1a1g@czprl-rdvorak2.emea.borl.net...
>> Hi Cesar,
>>
>> We have already implemented complete String operatons set according to
>> the spec.
>> But it was committed after M6, which you are apparently using.
>> We will produce integration build this week, so you could make use of
>> it.
>>
>> Anyway, once the QVT standard library does not implement all you want,
>> you have to blackbox it.
>> There was already mentioned meachism in this newsgroup -
>> see '[QVTO] Adding custom operations for primitive data types' topic.
>>
>> This is an old way of blackboxing (came from Borland initial
>> contribution), we
>> plan to generate java skeletons from QVT operations headers.
>>
>> So far, there is a helper String library available in QVTO, you access
>> it like this
>>
>> import library Strings;
>>
>> but most of its routine have been implemented in StdLib already.
>>
>>
>> Regards,
>> /Radek
>>
>> On Thu, 24 Apr 2008 00:42:32 +0200, kaiserlautern
>> <comouraf-lixo@yahoo.fr> wrote:
>>
>>> Hi,
>>>
>>> I have strings like a<K->1,T->T1> and would like to separate
>>> parameters (in this example, K and T) from their values (1 and T1).
>>> Apparently, QVTO implements just a fraction of the string operations
>>> proposed in the spec, making it very difficult (if possible at all) to
>>> "tokenize" strings. So, is this a typical case for blackboxes? If so,
>>> how to implement them? Is there any particularity or all I have to
>>> write is a plain (java?) class implementing only the interface
>>> declared in the qvt file? Where to put my classes?
>>>
>>> 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/
|
|
|
Goto Forum:
Current Time: Thu Apr 18 12:55:37 GMT 2024
Powered by FUDForum. Page generated in 0.02874 seconds
|