Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] what for args pointcut designator?

When I read your response I have an impression that you have not read the message. You respond to the question in the topic. Why would I write the body if not for you to read it? The body clarifies the meaning of the question in the topic.

In the message I asked for the most important reason for having args in the language. I mentioned that I don't view the type bounding as an important reason. I expect something more.

Luntain

Wes wrote:
this(), args(), and target() allow you to bind variables in a type-safe way and to do runtime tests.

E.g., for
    void put(Object key, Object value)

you might want to pick out only join points with keys of type foo:

    execution(void put(Object, Object)) && args(Foo, Object)

If you were to do something with it (e.g., put Foo in a wrapper with a better hashcode), then you'd want to bind the variable.  Without binding (i.e., using reflection) you only get Object, which makes for a lot of runtime ClassCastException.

Wes

What is the most important reason for having args pointcut designator in aspectj language? I would prefer exposing args in signature like this

aPointcut(int i): execution( * *.method( int i ) );

The one thing that comes to my mind is

execution( * *.meth( Object) ) && args( String )

That is, however, not an everyday use and can be achieved by type checking in the advice body.

The reason I go through it is because I want to implement aspectj like aop. I mean a reasonable subset. I wonder if I could just forget about args.

Luntain
_______________________________________________
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