Package org.aspectj.weaver
Class CrosscuttingMembers
java.lang.Object
org.aspectj.weaver.CrosscuttingMembers
This holds on to all members that have an invasive effect outside of there own compilation unit. These members need to be all
gathered up and in a world before any weaving can take place.
They are also important in the compilation process and need to be gathered up before the inter-type declaration weaving stage
(unsurprisingly).
All members are concrete.
- Author:
- Jim Hugunin
-
Constructor Summary
ConstructorDescriptionCrosscuttingMembers
(ResolvedType inAspect, boolean shouldConcretizeIfNeeded) -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
addDeclare
(Declare declare) void
addDeclares
(Collection<Declare> declares) void
void
void
addPrivilegedAccesses
(Collection<ResolvedMember> accessedMembers) void
void
void
void
void
exposeType
(UnresolvedType typeToExpose) void
exposeTypes
(List<UnresolvedType> typesToExpose) includes declare @method and @constructorboolean
replaceWith
(CrosscuttingMembers other, boolean careAboutShadowMungers) Updates the records if something has changed.void
setPerClause
(PerClause perClause)
-
Constructor Details
-
CrosscuttingMembers
-
-
Method Details
-
addConcreteShadowMunger
-
addShadowMungers
-
addTypeMungers
-
addTypeMunger
-
addLateTypeMungers
-
addLateTypeMunger
-
addDeclares
-
addDeclare
-
exposeTypes
-
exposeType
-
addPrivilegedAccesses
-
getCflowEntries
-
replaceWith
Updates the records if something has changed. This is called at most twice, firstly whilst collecting ITDs and declares. At this point the CrosscuttingMembers we're comparing ourselves with doesn't know about shadowmungers. Therefore a straight comparison with the existing list of shadowmungers would return that something has changed even though it might not have, so in this first round we ignore the shadowMungers. The second time this is called is whilst we're preparing to weave. At this point we know everything in the system and so we're able to compare the shadowMunger list. (see bug 129163)- Parameters:
other
-careAboutShadowMungers
-- Returns:
- true if something has changed since the last time this method was called, false otherwise
-
setPerClause
-
getDeclareDominates
-
getDeclareParents
-
getDeclareSofts
-
getShadowMungers
-
getTypeMungers
-
getLateTypeMungers
-
getDeclareAnnotationOnTypes
-
getDeclareAnnotationOnFields
-
getDeclareAnnotationOnMethods
includes declare @method and @constructor -
getDeclareTypeErrorOrWarning
-
getCflowBelowFields
-
getCflowFields
-
clearCaches
public void clearCaches()
-