Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [qvto-dev] Oustanding discussion for QVT 1.3 Ballot 3


So providing that the logic of mapping m does something with the following inout/out parameters:
- dInout is simply modified (it changes an attribute)
- eOut comprises a Class instance newly created during mapping execution.
- fOut comprises a Class instance already existent prior mapping invokation (e.g. an object referenced by dInout)

Can you please state the result for the following resolve expressions ?

a) aIn.resolve(m) = ????
{dInout,eOut,fOut,gOut,hOut}
b) bin.resolve(m) = ?????
{dInout,eOut,fOut,gOut,hOut}
c) dInout.resolve(m) = ?????
{dInout,eOut,fOut,gOut,hOut}
d) gout.invresolve(m) = ????
{aIn,bIn,cIn,dInOut}
d) eout.invresolve(m) = ????
{aIn,bIn,cIn,dInOut}
d) fout.invresolve(m) = ????
{aIn,bIn,cIn,dInOut}
e) dInout.invresolve(m) = ????
{aIn,bIn,cIn,dInOut}

I can´t argue if this is what it SHOULD be specified. I didn´t simply expect:
- updated (non-created) objects be returned by a resolve call, as it occurs in a), b) and c)
- as commented "source.resolve()->includes(source)" as it occurs in c)

However, after another QVT spec reading, you are right, updated objects should be considered:

"A resolve _expression_ is an _expression_ that inspects trace objects of the transformation in order to retrieve target objects created or updated by mapping operation invocations executed previously on source objects. Conceptually, for each mapping invocation, the transformation records the correspondence between source and target objects participating in a given mapping invocation."

So just a couple of additional thoughts:
- I don´t think it´s worthwhile to disinguishing between context-parameter and in-parameters, specially providing that context-parameters can also be inout. I´d write:
  • in-parameters - the in (and inout) parameter objects or values (including the contextual parameter).
- One concern comes to my mind: what happens with objects that are created/updated inside the transformation but are not part of the mapping parameters . Shouldn´t they be considerd by resolve expressions ?

Regards,
Adolfo.

Back to the top