Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: R: Re: [aspectj-users] ITD syntax

Dave,

One of the issues we will need to work through is the mapping between
the two syntax styles. Perhaps, the only issue we need to work through
is clarifying the supported models (insertion and delegation) through
appropriate syntax. I think your option c (or a variation of it--that
explicitly mentions "defaultImpl" or "defaultDelegate" or something to
the same effect) clarifies that better that my "declare extends". You
option c also better mirrors the semantics associated with
@DeclareParents in that it combined parenting and delegation in one
declaration.

Assuming the delegate model is supported with code-style syntax, do we
need simplified syntax for the insertion model (option a)?

-Ramnivas

On Fri, Dec 5, 2008 at 1:59 PM, Dave Whittaker <dave@xxxxxxxxxx> wrote:
> Ramnivas,
> Hmmm... now I think I'm a bit confused.  I haven't used the @DeclareParents
> annotation, as a matter of fact I wasn't aware it existed until you
> mentioned it, but if it already uses delegation to accomplish what we're
> talking about then that's a different story.  If both methods (delegation
> and direct insertion) already exist within AspectJ I would think that it's
> less confusing to allow delegation both through annotations and through
> declarations than to only allow it when using annotations.  It also would
> imply that the work involved in adding a delegation feature would be a lot
> less than what I would have expected otherwise.  Another thing to think
> about....
> On Dec 5, 2008, at 1:44 PM, Ramnivas Laddad wrote:
>
> That's quite a good discussion we've had!
>
> There are indeed two different model for implementation for ITDs as
> Herman distilled well: the classic member introduction (the current
> code-style AspectJ model and Dave's original proposal) and delegation
> model (the one implemented in @AspectJ's @DeclareParents and most
> likely implementation of my "declare extends" proposal)
>
> So I guess we have two questions to ponder:
> 1. Do both model make sense. If yes, how to best present them to avoid
> confusing users (ss Simone pointed). If not, what should be the status
> of @DeclareParents in @AspectJ.
> 2. (Back to Dave's original question) What is best syntax for "bulk
> ITD" i.e. introducing a set of members with a simpler syntax.
>
> -Ramnivas
>
>
> 2008/12/5 Simone Gianni <simoneg@xxxxxxxxxx>:
>
>
> Hi Herman,
>
> you perfectly got the point. We are moving from IDT to something else, and
>
> that what I felt in the first place without being able to express it with
>
> the clarity you had. I agree on splitting this thread on "A simpler syntax
>
> for IDTs" and "A delegation approach to IDTs".
>
> As long as the simpler syntax for IDTs in involved, I like Dave's
>
> proposal, also because it uses a construct very similar to the "with", which
>
> is present in a number of languages but missing in Java, and many
>
> programmers are already used to it. Also, it simply requires less typing
>
> without changing the semnatics of the IDT.
>
> There can be better ways of doing mixins/IDTs, including the delegation
>
> based ones, but that's another discussion.
>
> Simone
>
> ----- Messaggio originale -----
>
> Da: Ichthyostega <prg@xxxxxxxxxxxxxxx>
>
> A: aspectj-users@xxxxxxxxxxx
>
> Posta Inviata: giovedì 4 dicembre 2008 22.42.08 GMT+0100 Europe/Berlin
>
> Oggetto: Re: [aspectj-users] ITD syntax
>
> -----BEGIN PGP SIGNED MESSAGE-----
>
> Hash: SHA1
>
> Hi Dave,
>
> I'm glad for this discussion because it's helped me in refining how I
>
> think
>
> this would work best.
>
> Same here. I saw your answer just after posting mine.
>
> Probably we are facing a decision on two possible routes to take:
>
> - - provide some convenience for Delegation using AspectJ
>
> - - stick to the ITD semantics but provide a better syntax.
>
> My feeling is we would be best off if we took a clear decision on
>
> one of those routes and don't try to mix them up. Even if we were
>
> able to come with a combined solution, it will confuse people.
>
> Thus, if we go the "Delegation" route, "this" should be really rebound
>
> the moment we are within the scope of the delegate to mean the delegate,
>
> the same way as if all of this was just implemented in plain Java.
>
> OTOH, when going the "ITD" route, the source class (ITDDefaultImpl
>
> or DoSomethingImpl) is rather sort-of a template for code woven into
>
> the target. I.e., at runtime, no class DoSomethingImpl will be loaded.
>
> Then the question remains what should happen with private fields.
>
> Consider, both the class Doer and class DoSomethingImpl may use
>
> a private field with the same name for their implementation.
>
> Hermann
>
>
>
>
>
> -----BEGIN PGP SIGNATURE-----
>
> Version: GnuPG v1.4.6 (GNU/Linux)
>
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFJOE6wZbZrB6HelLIRAjRcAJ9lpaNl/nFsSX/dTl34LL364s5qyQCfQ8wS
>
> CmLlX5bTe+LvoI6V8sh29K8=
>
> =EYAe
>
> -----END PGP SIGNATURE-----
>
> _______________________________________________
>
> aspectj-users mailing list
>
> aspectj-users@xxxxxxxxxxx
>
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
> _______________________________________________
>
> aspectj-users mailing list
>
> aspectj-users@xxxxxxxxxxx
>
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>


Back to the top