On Wed, Jun 8, 2011 at 5:16 PM, Tudor Girba <tudor@tudorgirba.com> wrote:
Hi,

On 8 Jun 2011, at 17:07, Usman Bhatti wrote:

> On Wed, Jun 8, 2011 at 3:54 PM, Tudor Girba <tudor@tudorgirba.com> wrote:
> Hi,
>
> On 8 Jun 2011, at 15:45, Usman Bhatti wrote:
>
> > On Wed, Jun 8, 2011 at 3:10 PM, Tudor Girba <tudor@tudorgirba.com> wrote:
> > Hi,
> >
> > On 8 Jun 2011, at 14:21, Simon Denier wrote:
> >
> > >
> > > On 8 juin 2011, at 11:52, Usman Bhatti wrote:
> > >
> > >> I am looking to understand what mse entities are created for associations (except inheritance i.e. invocations, access, refs) in code and how to exactly treat the duplicates. I have seen a reference of it in a bug reported for VerveineJ but I am not sure if this issue has been discussed elsewhere.
> > >>
> > >> For example,
> > >>
> > >> A a;
> > >> M()
> > >> {
> > >>    a = new A();
> > >>    a = new A();
> > >>    a.CallAMethod();
> > >>    a.CallAMethod();
> > >>
> > >> }
> > >>
> > >> The above code creates these associations (with Verveinesharp) ..
> > >> 1. An invocations to A's constructor (duplicate constructor invocation is ignored).
> > >> 2. A field access to the field a (only one instance is recorded, the others are just ignored).
> > >> 3. An invocation to CallAMethod (field access is already recorded so this one is not considered).
> > >> 4. A reference from method M() to type A (Duplicate reference is ignored).
> > >
> > >
> > > To me it seems like there are:
> > > - 2 invocations to A constructor
> > > - 2 field accesses to a
> > > - 2 invocations to CallAMethod
> > >
> > > There is no direct reference to class A, only indirect references through the constructor/method calls.
> >
> > Yes! This is the correct interpretation.
> >
> > Usman, please do it like suggested by Simon.
> >
> > So, we keep the duplicates in MSE. Ok I'll change VerveineSharp to implement this interpretation. But I do not understand what is mean by direct and indirect references because as I understand the meta-model provides only one type i.e. a Reference class to instantiate references. How do we do the different between direct and indirect?
>
> What Simon meant is that in the code there is no Reference to class A. There are only calls to the constructor A. And a call to a constructor can be considered an indirect reference. But, the model should only represent what is found in the code.
>
> Is direct reference = static reference?

Pretty much.

> Because we can only refer to an object of a class through a field or through a constructor. Static references refer to the class directly.Sorry for insisting on that but I want to implement this thing correctly.

Well, this is an unclear territory, so do not feel bad for insisting :). The thing is like this. If you would manipulate the class as a variable, this would be a reference to that class. For example:
- if you pass the class as a parameter to a function, or

just a final clarification (I hope :-)
m (A a)
{
   //do square brackets provide correct interpretation?
   a.CallAmethod(); [not a reference, access and invocation only]
   A b = new A();
   a = b; [reference to A + 2 accesses to A]
}
 
- if you invoke a static method on a class

Is that better?

Yep, much better :-).. thanx
 

Cheers,
Doru

>
>
> Cheers,
> Doru
>
>
> >
> > Cheers,
> > Doru
> >
> >
> > >
> > >>
> > >> Please let me know if there an anomaly.
> > >>
> > >> thanx,
> > >>
> > >> Usman
> > >> _______________________________________________
> > >> Moose-dev mailing list
> > >> Moose-dev@iam.unibe.ch
> > >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> > >
> > > --
> > > Simon Denier
> > >
> > >
> > >
> > > _______________________________________________
> > > Moose-dev mailing list
> > > Moose-dev@iam.unibe.ch
> > > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > --
> > www.tudorgirba.com
> >
> > "Every thing has its own flow."
> >
> >
> >
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > Moose-dev@iam.unibe.ch
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > _______________________________________________
> > Moose-dev mailing list
> > Moose-dev@iam.unibe.ch
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Don't give to get. Just give."
>
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Live like you mean it."


_______________________________________________
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev