wrapping around fields [message #15438] |
Thu, 23 January 2003 03:02 |
Somik Raha Messages: 6 Registered: July 2009 |
Junior Member |
|
|
Hi,
I was experimenting with aspectJ - couldnt get it to run on Eclipse 2.1,
so got the older 2.0. I was trying this :
aspect A {
pointcut getVar(Object whatever): get(* Person.name) &&
target(whatever);
pointcut getVarInt(int whatever): get(* Person.age) && target(whatever);
int around(int whatever): getVarInt(whatever) {
System.out.println("in around(int)");
return -1;
}
Object around(Object whatever): getVar(whatever) {
System.out.println("in around");
return "HELLO";
}
}
where the Person class is :
public class Person {
public int age;
public String name;
}
Here is a sample testcase which I started with, in order to "exercise" the
aspects :
public class VarAspectTest extends TestCase {
public VarAspectTest(String arg0) {
super(arg0);
}
public void testVarGet() {
System.out.println("Accessing Person.name..." + new Person().name);
System.out.println("Accessing Person.age..." + new Person().age);
}
}
The result seems weird- although I am able to get "HELLO" as the name, the
age shows up as 0 - i.e. the aspect on the int member wasn't triggered.
Next, I tried :
pointcut getVar(Object whatever): get(* Person.String) &&
target(whatever);
pointcut getVarInt(int whatever): get(* Person.int) && target(whatever);
This too had the same results. I'm actually looking for a way to process all
string and int members. If I do this :
pointcut getVar(Object whatever): get(* Person.*) && target(whatever);
I am able to trap everything, but the primitive types give a class-cast
exception. So, another question is - is it possible to handle primitive
types in aspectJ ?
I am new to aspects, so I might probably be doing something wrong.
Thanks in advance for any suggestions.
Regards,
Somik
|
|
|
Re: wrapping around fields [message #15472 is a reply to message #15438] |
Thu, 23 January 2003 06:18 |
Eclipse User |
|
|
|
Originally posted by: somik.yahoo.com
Oh, looks like I got the wrong user group - sorry about that, will post in
the aspectj-user mailing list.
Regards,
Somik
"Somik Raha" <somik@industriallogic.com> wrote in message
news:b0nks6$c16$1@rogue.oti.com...
> Hi,
> I was experimenting with aspectJ - couldnt get it to run on Eclipse 2.1,
> so got the older 2.0. I was trying this :
>
> aspect A {
> pointcut getVar(Object whatever): get(* Person.name) &&
> target(whatever);
> pointcut getVarInt(int whatever): get(* Person.age) &&
target(whatever);
>
> int around(int whatever): getVarInt(whatever) {
> System.out.println("in around(int)");
> return -1;
> }
> Object around(Object whatever): getVar(whatever) {
> System.out.println("in around");
> return "HELLO";
> }
> }
>
> where the Person class is :
>
> public class Person {
> public int age;
> public String name;
> }
>
> Here is a sample testcase which I started with, in order to "exercise" the
> aspects :
>
> public class VarAspectTest extends TestCase {
> public VarAspectTest(String arg0) {
> super(arg0);
> }
> public void testVarGet() {
> System.out.println("Accessing Person.name..." + new
Person().name);
> System.out.println("Accessing Person.age..." + new Person().age);
> }
> }
>
> The result seems weird- although I am able to get "HELLO" as the name, the
> age shows up as 0 - i.e. the aspect on the int member wasn't triggered.
>
> Next, I tried :
>
> pointcut getVar(Object whatever): get(* Person.String) &&
> target(whatever);
> pointcut getVarInt(int whatever): get(* Person.int) &&
target(whatever);
>
> This too had the same results. I'm actually looking for a way to process
all
> string and int members. If I do this :
> pointcut getVar(Object whatever): get(* Person.*) && target(whatever);
>
> I am able to trap everything, but the primitive types give a class-cast
> exception. So, another question is - is it possible to handle primitive
> types in aspectJ ?
>
> I am new to aspects, so I might probably be doing something wrong.
> Thanks in advance for any suggestions.
>
> Regards,
> Somik
>
>
|
|
|
Re: wrapping around fields [message #564130 is a reply to message #15438] |
Thu, 23 January 2003 06:18 |
Somik Raha Messages: 6 Registered: July 2009 |
Junior Member |
|
|
Oh, looks like I got the wrong user group - sorry about that, will post in
the aspectj-user mailing list.
Regards,
Somik
"Somik Raha" <somik@industriallogic.com> wrote in message
news:b0nks6$c16$1@rogue.oti.com...
> Hi,
> I was experimenting with aspectJ - couldnt get it to run on Eclipse 2.1,
> so got the older 2.0. I was trying this :
>
> aspect A {
> pointcut getVar(Object whatever): get(* Person.name) &&
> target(whatever);
> pointcut getVarInt(int whatever): get(* Person.age) &&
target(whatever);
>
> int around(int whatever): getVarInt(whatever) {
> System.out.println("in around(int)");
> return -1;
> }
> Object around(Object whatever): getVar(whatever) {
> System.out.println("in around");
> return "HELLO";
> }
> }
>
> where the Person class is :
>
> public class Person {
> public int age;
> public String name;
> }
>
> Here is a sample testcase which I started with, in order to "exercise" the
> aspects :
>
> public class VarAspectTest extends TestCase {
> public VarAspectTest(String arg0) {
> super(arg0);
> }
> public void testVarGet() {
> System.out.println("Accessing Person.name..." + new
Person().name);
> System.out.println("Accessing Person.age..." + new Person().age);
> }
> }
>
> The result seems weird- although I am able to get "HELLO" as the name, the
> age shows up as 0 - i.e. the aspect on the int member wasn't triggered.
>
> Next, I tried :
>
> pointcut getVar(Object whatever): get(* Person.String) &&
> target(whatever);
> pointcut getVarInt(int whatever): get(* Person.int) &&
target(whatever);
>
> This too had the same results. I'm actually looking for a way to process
all
> string and int members. If I do this :
> pointcut getVar(Object whatever): get(* Person.*) && target(whatever);
>
> I am able to trap everything, but the primitive types give a class-cast
> exception. So, another question is - is it possible to handle primitive
> types in aspectJ ?
>
> I am new to aspects, so I might probably be doing something wrong.
> Thanks in advance for any suggestions.
>
> Regards,
> Somik
>
>
|
|
|
Powered by
FUDForum. Page generated in 0.03440 seconds