Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] ajc$interField methods

I wonder... is there anything I can do to avoid ITD'ing an interface?
I want to add a field to any weavable class. In order to do so I
currently introduce a marker interface IsWeavable and then declare the
ITD on that interface:

	declare parents: !(java.lang.Object) && !(ca..*) implements IsWeavable;

	public Map<String, RegionAndLocations> IsWeavable.fieldToRegion = new
ConcurrentHashMap<String, RegionAndLocations>();

If not, is there any other way I could get rid of these accessor methods?

Eric

	

2008/9/15 Eric Bodden <eric.bodden@xxxxxxxxxxxxxx>:
> Thanks, Andy!
>
> 2008/9/15 Andy Clement <andrew.clement@xxxxxxxxx>:
>> The getters are created on the interface so that the interface type can be
>> used throughout (rather than the actual implementing type) and then
>> generated implementations in each interface implementation access the actual
>> field.  I remember writing it up in an old bug, you might want to search
>> fixed bugs for interFieldGet ...
>>
>> Andy.
>>
>> 2008/9/15 Eric Bodden <eric.bodden@xxxxxxxxxxxxxx>
>>>
>>> Yes I am.
>>>
>>> Eric
>>>
>>> 2008/9/15 Andy Clement <andrew.clement@xxxxxxxxx>:
>>> > Are you ITDing onto an interface by any chance?
>>> >
>>> > 2008/9/15 Eric Bodden <eric.bodden@xxxxxxxxxxxxxx>
>>> >>
>>> >> Hi.
>>> >>
>>> >> Can somebody tell me why ajc generates ajc$interField* methods for
>>> >> ITDs, even if those are public? can ajc not access the field directly?
>>> >> I am currently doing some profiling and my profile looks like...
>>> >>
>>> >>   1  8.75%  8.75%      99 300279
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>   2  7.86% 16.61%      89 300327
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>   3  2.83% 19.43%      32 300329
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>   4  2.65% 22.08%      30 300164
>>> >> java.util.concurrent.ConcurrentHashMap.put
>>> >>   5  2.56% 24.65%      29 300325
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>   6  2.39% 27.03%      27 300333
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>   7  1.86% 28.89%      21 300156
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>   8  1.86% 30.74%      21 300332
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>   9  1.77% 32.51%      20 300219
>>> >> java.util.concurrent.ConcurrentHashMap.get
>>> >>  10  1.77% 34.28%      20 300328
>>> >> raytracer.Vec.ajc$interFieldGet$ca_mcgill_...
>>> >>
>>> >> Therefore I think that I could safe quite some time through direct
>>> >> field
>>> >> access.
>>> >>
>>> >> Cheers,
>>> >> Eric
>>> >>
>>> >> --
>>> >> Eric Bodden
>>> >> Sable Research Group
>>> >> McGill University, Montréal, Canada
>>> >> _______________________________________________
>>> >> aspectj-dev mailing list
>>> >> aspectj-dev@xxxxxxxxxxx
>>> >> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>>> >
>>> >
>>> > _______________________________________________
>>> > aspectj-dev mailing list
>>> > aspectj-dev@xxxxxxxxxxx
>>> > https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> Eric Bodden
>>> Sable Research Group
>>> McGill University, Montréal, Canada
>>> _______________________________________________
>>> aspectj-dev mailing list
>>> aspectj-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>>
>>
>> _______________________________________________
>> aspectj-dev mailing list
>> aspectj-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>>
>>
>
>
>
> --
> Eric Bodden
> Sable Research Group
> McGill University, Montréal, Canada
>



-- 
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada


Back to the top