Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] How to get the super AspectElement from a given AspectElement

Have you tried creating a supertype hierarchy?
IType.newSupertypeHierarchy()  That is what I should have suggested
first, better than find type.

And this might also work as an AspectJ solution:

AsmManager.getAspectsWeavingFilesOnLastBuild()

You can get a handle on the AsmManager by this:
            AjCompiler compiler =
AspectJPlugin.getDefault().getCompilerFactory().getCompilerForProject(project);
            AsmManager existingState = compiler.getModel();

Haven't tried it myself...

As for the model of AspectJ and AJDT, it's something that I've always
wanted to do, but it is hard to find time for this with so many other
issues to deal with.

Hope this helps.

On Tue, Nov 24, 2009 at 4:49 PM, Johan Fabry <jfabry@xxxxxxxxxxxxx> wrote:
> Hi Andrew,
>
> thanks for the feedback, but sadly the name I am getting from
> getSuperclassName() is not fully qualified, so findType cant give me the
> super :-( . Any other ways in which this could work?
>
> On a side note, it would be really handy to have some sort of (maybe UML)
> document available that models the structure of the AspectJ compiler
> structure model (modeling the more 'important' elements of the model, heh).
> This way  people using it (i.e. me) are less confused. I dont want to sound
> demanding here, it is just that it would really help me to figure out the
> best way to navigate this structure, and I assume that it would be some help
> to the implementers/maintainers as well. For example not requireing you to
> think about my second question :-)
>
> On 24 Nov 2009, at 20:34, Andrew Eisenberg wrote:
>
>> HI Johan,
>>
>> With the fully qualified aspect name, you can do find type like this:
>>
>> thisAspect.getJavaPropject().findType(superAspectName, new
>> NullProgressMonitor());
>>
>> use a NullProgressMonitor to ensure that secondary types are found,
>> alternatively, you can use this:
>> thisAspect.getJavaPropject().findType(superAspectName);
>> But, here secondary types are not searched.
>>
>> As for your second question...I'm sure there's a way to do that, but
>> I'd have to think for a while on the best way.  But, since the first
>> suggestion will probably work, I'll just leave it at that, unless you
>> need more.
>>
>> --a
>>
>> On Tue, Nov 24, 2009 at 2:52 PM, Johan Fabry <jfabry@xxxxxxxxxxxxx> wrote:
>>>
>>> Hi all,
>>>
>>> I am extending my crosscutting reports plugin to give me some more
>>> structural information about the different aspects involved in a build.
>>> For
>>> now I am getting AspectElement instances by asking for the parent of all
>>> the
>>> advice that apply. I can get useful info from there, but I am missing a
>>> reference to the superaspect. I can get its name using
>>> getSuperclassName()
>>> but I want the AspectElement itself and I cant seem to get a hold of
>>> that.
>>> Is there a way to do this?
>>>
>>> Alternatively, is there a straightforward way to get a list of all the
>>> aspects involved in the most recent build, starting from a
>>> AJProjectModelFacade? (that allows me to get the same or more info than
>>> what
>>> I am doing above)
>>>
>>> Thanks in advance!
>>> --
>>> Johan Fabry
>>> jfabry@xxxxxxxxxxxxx - http://dcc.uchile.cl/~jfabry
>>> PLEIAD Lab - Computer Science Department (DCC) - University of Chile
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>
> --
> Johan Fabry
> jfabry@xxxxxxxxxxxxx - http://dcc.uchile.cl/~jfabry
> PLEIAD Lab - Computer Science Department (DCC) - University of Chile
>
>
>
>


Back to the top