[
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