[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Adding fields to a Class
|
Hi,
I tried it and it works. Is the incremental compilation bug
still there ? AJDT still shows that X.TLInterface cannot be resolved
to a type.
Thanks,
Mohan
On 7/8/08, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
> Example:
> --- Test.java ---
> public class Test {
>
> public static void main(String[] argv) {
> A a = new A();
> B b = new B();
> if (a instanceof X.TLInterface) System.out.println("A has it");
> if (b instanceof X.TLInterface) System.out.println("B has it");
> }
> }
>
> class A {}
> class B {
> public void run() {}
> }
>
> aspect X {
> interface TLInterface {}
>
> ThreadLocal TLInterface.local;
>
> declare parents: hasmethod(public void run(..)) implements TLInterface;
>
> }
> ---------------
>
> C:\temp>ajc -XhasMember Test.java -showWeaveInfo
> Type 'X$TLInterface' (Test.java) has intertyped field from 'X'
> (Test.java:'java.lang.ThreadLocal X$TLInterface.local')
>
> Extending interface set for type 'B' (Test.java) to include
> 'X$TLInterface' (Test.java)
>
> Type 'B' (Test.java) has intertyped field from 'X'
> (Test.java:'java.lang.ThreadLocal X$TLInterface.local')
>
>
>
> Andy.
>
>
> 2008/7/7 100ji <itz100ji@xxxxxxxxx>:
>
> > Hi all,
> >
> > I want to add a ThreadLocal field to all the classes that contain the
> > run method using aspects. Currently, I have the following aspect code
> > that gives me a list of all classes that have the run method.
> >
> > public aspect AddTaintVarToThread {
> > pointcut startThreads(): execution(void *.run());
> >
> > before(Object o) : startThreads() && target(o){
> > System.out.println("Hurray! Thread advice works!" +
> > o.getClass().getName());
> > }
> > }
> >
> > Once I get the class name, can I add a field to the class inside a
> > method call in aspectj? Or more specifically, can I perform a
> > inter-type declaration inside the advice? If I can't do it this way,
> > are there better ways? I tried googling list archives but found
> > nothing. Any pointers will prove helpful.
> >
> > TIA,
> > -S-
> > _______________________________________________
> > 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
>