Package org.aspectj.weaver
Class PrivilegedAccessMunger
java.lang.Object
org.aspectj.weaver.ResolvedTypeMunger
org.aspectj.weaver.PrivilegedAccessMunger
- Direct Known Subclasses:
ExposeTypeMunger
A privileged access munger is for handling privileged access to a member. It determines the names of the getter/setter that will
be used to access a private field in some type, or the special method that provides access to a private method.
There are two syntax styles for field access, the older style was in use up to AspectJ 1.6.9 and involves long named getters and
setters which include the requesting aspect and the target type. The short style syntax is use from AspectJ 1.6.9 onwards is
simply 'ajc$get$<fieldname>' and 'ajc$set$<fieldname>' - as the requesting aspect isn't included in the name they can be shared
across aspects.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.weaver.ResolvedTypeMunger
ResolvedTypeMunger.Kind
-
Field Summary
Fields inherited from class org.aspectj.weaver.ResolvedTypeMunger
AnnotationOnType, Constructor, declaredSignature, Field, FieldHost, InnerClass, kind, Method, MethodDelegate, MethodDelegate2, Parent, PerObjectInterface, PerTypeWithinInterface, PrivilegedAccess, signature, SUPER_DISPATCH_NAME, typeVariableAliases
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
Some type mungers are created purely to help with the implementation of shadow mungers.getMatchingSyntheticMember(Member member, ResolvedType aspectType)
int
hashCode()
void
Methods inherited from class org.aspectj.weaver.ResolvedTypeMunger
changesPublicSignature, getDeclaredSignature, getDeclaringType, getKind, getSignature, getSourceLocation, getSuperMethodsCalled, getTypeVariableAliases, hasTypeVariableAliases, isLateMunger, matches, needsAccessToTopmostImplementor, parameterizedFor, parameterizeWith, read, readInTypeAliases, readSourceLocation, readSuperMethodsCalled, setDeclaredSignature, setSourceLocation, setSuperMethodsCalled, setTypeVariableAliases, sharesTypeVariablesWithGenericType, toString, writeOutTypeAliases, writeSourceLocation, writeSuperMethodsCalled
-
Field Details
-
shortSyntax
public boolean shortSyntax
-
-
Constructor Details
-
PrivilegedAccessMunger
-
-
Method Details
-
write
- Specified by:
write
in classResolvedTypeMunger
- Throws:
IOException
-
getMember
-
getMatchingSyntheticMember
- Overrides:
getMatchingSyntheticMember
in classResolvedTypeMunger
-
equals
-
hashCode
public int hashCode() -
existsToSupportShadowMunging
public boolean existsToSupportShadowMunging()Description copied from class:ResolvedTypeMunger
Some type mungers are created purely to help with the implementation of shadow mungers. For example to support the cflow() pointcut we create a new cflow field in the aspect, and that is added via a BcelCflowCounterFieldAdder. During compilation we need to compare sets of type mungers, and if some only come into existence after the 'shadowy' type things have been processed, we need to ignore them during the comparison. Returning true from this method indicates the type munger exists to support 'shadowy' stuff - and so can be ignored in some comparison.- Overrides:
existsToSupportShadowMunging
in classResolvedTypeMunger
-