Package org.aspectj.weaver
Klasse AjcMemberMaker
java.lang.Object
org.aspectj.weaver.AjcMemberMaker
The AjcMemberMaker is responsible for creating the representations of methods/fields/etc that are placed in both aspects and
affected target types. It uses the NameMangler class to create the actual names that will be used.
-
Feldübersicht
Modifizierer und TypFeldBeschreibungstatic final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
static final UnresolvedType
-
Konstruktorübersicht
-
Methodenübersicht
Modifizierer und TypMethodeBeschreibungstatic ResolvedMember
ajcPostClinitMethod
(UnresolvedType declaringType) static ResolvedMember
ajcPreClinitMethod
(UnresolvedType declaringType) static Member
static Member
static ResolvedMember
bridgerToInterMethod
(ResolvedMember meth, UnresolvedType aspectType) Sometimes the intertyped method requires a bridge method alongside it.static Member
static Member
static Member
static Member
static ResolvedMember
initFailureCauseField
(UnresolvedType declaringType) static ResolvedMember
inlineAccessMethodForFieldGet
(UnresolvedType aspectType, Member field) static ResolvedMember
inlineAccessMethodForFieldSet
(UnresolvedType aspectType, Member field) static ResolvedMember
inlineAccessMethodForMethod
(UnresolvedType aspectType, ResolvedMember method) static ResolvedMember
interConstructor
(ResolvedType targetType, ResolvedMember constructor, UnresolvedType aspectType) static Member
interfaceConstructor
(ResolvedType resolvedTypeX) static ResolvedMember
interFieldClassField
(ResolvedMember field, UnresolvedType aspectType, boolean newStyle) This field goes on the class the field is declared onto.static ResolvedMember
interFieldGetDispatcher
(ResolvedMember field, UnresolvedType aspectType) This static method goes on the aspect that declares the inter-type fieldstatic ResolvedMember
interFieldInitializer
(ResolvedMember field, UnresolvedType aspectType) static ResolvedMember
interFieldInterfaceField
(ResolvedMember field, UnresolvedType onClass, UnresolvedType aspectType, boolean newStyle) This field goes on top-most implementers of the interface the field is declared ontostatic ResolvedMember
interFieldInterfaceGetter
(ResolvedMember field, ResolvedType onType, UnresolvedType aspectType) This instance method goes on the interface the field is declared onto as well as its top-most implementorsstatic ResolvedMember
interFieldInterfaceSetter
(ResolvedMember field, ResolvedType onType, UnresolvedType aspectType) This instance method goes on the interface the field is declared onto as well as its top-most implementorsstatic ResolvedMember
interFieldSetDispatcher
(ResolvedMember field, UnresolvedType aspectType) This static method goes on the aspect that declares the inter-type fieldstatic ResolvedMember
interMethod
(ResolvedMember meth, UnresolvedType aspectType, boolean onInterface) This method goes on the target type of the inter-type method.static ResolvedMember
interMethodBody
(ResolvedMember meth, UnresolvedType aspectType) This method goes on the declaring aspect of the inter-type method.static ResolvedMember
interMethodBridger
(ResolvedMember meth, UnresolvedType aspectType, boolean onInterface) This method goes on the target type of the inter-type method.static ResolvedMember
interMethodDispatcher
(ResolvedMember meth, UnresolvedType aspectType) This static method goes on the declaring aspect of the inter-type method.static ResolvedMember
itdAtDeclareParentsField
(ResolvedType targetType, UnresolvedType itdType, UnresolvedType aspectType) static Member
static Member
static Member
static ResolvedMember
perCflowAspectOfMethod
(UnresolvedType declaringType) static ResolvedMember
perCflowField
(UnresolvedType declaringType) static ResolvedMember
perCflowHasAspectMethod
(UnresolvedType declaringType) static ResolvedMember
perCflowPush
(UnresolvedType declaringType) static ResolvedMember
perObjectAspectOfMethod
(UnresolvedType declaringType) static ResolvedMember
perObjectBind
(UnresolvedType declaringType) static ResolvedMember
perObjectField
(UnresolvedType declaringType, ResolvedType aspectType) static ResolvedMember
perObjectHasAspectMethod
(UnresolvedType declaringType) static ResolvedMember
perObjectInterfaceGet
(UnresolvedType aspectType) static ResolvedMember
perObjectInterfaceSet
(UnresolvedType aspectType) static UnresolvedType
perObjectInterfaceType
(UnresolvedType aspectType) static ResolvedMember
perSingletonAspectOfMethod
(UnresolvedType declaringType) static ResolvedMember
perSingletonField
(UnresolvedType declaringType) static ResolvedMember
perSingletonHasAspectMethod
(UnresolvedType declaringType) static ResolvedMember
perTypeWithinAspectOfMethod
(UnresolvedType declaringType, boolean inJava5Mode) static ResolvedMember
perTypeWithinCreateAspectInstance
(UnresolvedType declaringType) static ResolvedMember
perTypeWithinField
(UnresolvedType declaringType, ResolvedType aspectType) static ResolvedMember
perTypeWithinGetInstance
(UnresolvedType declaringType) static ResolvedMember
perTypeWithinGetWithinTypeNameMethod
(UnresolvedType declaringType, boolean inJava5Mode) static ResolvedMember
perTypeWithinHasAspectMethod
(UnresolvedType declaringType, boolean inJava5Mode) static ResolvedMember
perTypeWithinLocalAspectOf
(UnresolvedType shadowType, UnresolvedType aspectType) static ResolvedMember
perTypeWithinWithinTypeField
(UnresolvedType declaringType, ResolvedType aspectType) static ResolvedMember
postIntroducedConstructor
(UnresolvedType aspectType, UnresolvedType targetType, UnresolvedType[] paramTypes) static ResolvedMember
preIntroducedConstructor
(UnresolvedType aspectType, UnresolvedType targetType, UnresolvedType[] paramTypes) static ResolvedMember
privilegedAccessMethodForFieldGet
(UnresolvedType aspectType, Member field, boolean shortSyntax) Return a resolvedmember representing the synthetic getter for the field.static ResolvedMember
privilegedAccessMethodForFieldSet
(UnresolvedType aspectType, Member field, boolean shortSyntax) Return a resolvedmember representing the synthetic setter for the field.static ResolvedMember
privilegedAccessMethodForMethod
(UnresolvedType aspectType, ResolvedMember method) static ResolvedMember
superAccessMethod
(UnresolvedType baseType, ResolvedMember method) static ResolvedMember
toObjectConversionMethod
(UnresolvedType fromType)
-
Felddetails
-
CFLOW_STACK_TYPE
-
AROUND_CLOSURE_TYPE
-
CONVERSIONS_TYPE
-
NO_ASPECT_BOUND_EXCEPTION
-
ASPECT_ANNOTATION
-
BEFORE_ANNOTATION
-
AROUND_ANNOTATION
-
AFTERRETURNING_ANNOTATION
-
AFTERTHROWING_ANNOTATION
-
AFTER_ANNOTATION
-
POINTCUT_ANNOTATION
-
DECLAREERROR_ANNOTATION
-
DECLAREWARNING_ANNOTATION
-
DECLAREPRECEDENCE_ANNOTATION
-
DECLAREPARENTS_ANNOTATION
-
DECLAREMIXIN_ANNOTATION
-
TYPEX_JOINPOINT
-
TYPEX_PROCEEDINGJOINPOINT
-
TYPEX_STATICJOINPOINT
-
TYPEX_ENCLOSINGSTATICJOINPOINT
-
-
Konstruktordetails
-
AjcMemberMaker
public AjcMemberMaker()
-
-
Methodendetails
-
ajcPreClinitMethod
-
ajcPostClinitMethod
-
noAspectBoundExceptionInit
-
noAspectBoundExceptionInit2
-
noAspectBoundExceptionInitWithCause
-
perCflowPush
-
perCflowField
-
perSingletonField
-
initFailureCauseField
-
perObjectField
-
perTypeWithinField
public static ResolvedMember perTypeWithinField(UnresolvedType declaringType, ResolvedType aspectType) -
perTypeWithinWithinTypeField
public static ResolvedMember perTypeWithinWithinTypeField(UnresolvedType declaringType, ResolvedType aspectType) -
perObjectBind
-
perTypeWithinGetInstance
-
perTypeWithinGetWithinTypeNameMethod
public static ResolvedMember perTypeWithinGetWithinTypeNameMethod(UnresolvedType declaringType, boolean inJava5Mode) -
perTypeWithinCreateAspectInstance
-
perObjectInterfaceType
-
perObjectInterfaceGet
-
perObjectInterfaceSet
-
perTypeWithinLocalAspectOf
public static ResolvedMember perTypeWithinLocalAspectOf(UnresolvedType shadowType, UnresolvedType aspectType) -
perSingletonAspectOfMethod
-
perSingletonHasAspectMethod
-
perCflowAspectOfMethod
-
perCflowHasAspectMethod
-
perObjectAspectOfMethod
-
perObjectHasAspectMethod
-
perTypeWithinAspectOfMethod
public static ResolvedMember perTypeWithinAspectOfMethod(UnresolvedType declaringType, boolean inJava5Mode) -
perTypeWithinHasAspectMethod
public static ResolvedMember perTypeWithinHasAspectMethod(UnresolvedType declaringType, boolean inJava5Mode) -
privilegedAccessMethodForMethod
public static ResolvedMember privilegedAccessMethodForMethod(UnresolvedType aspectType, ResolvedMember method) -
privilegedAccessMethodForFieldGet
public static ResolvedMember privilegedAccessMethodForFieldGet(UnresolvedType aspectType, Member field, boolean shortSyntax) Return a resolvedmember representing the synthetic getter for the field. The old style (<1.6.9) is a heavyweight static method with a long name. The new style (1.6.9 and later) is short, and reusable across aspects.- Parameter:
aspectType
- the aspect attempting the accessfield
- the field to be accessedshortSyntax
- is the old (long) or new (short) style format being used- Gibt zurück:
- a resolvedmember representing the synthetic getter
-
privilegedAccessMethodForFieldSet
public static ResolvedMember privilegedAccessMethodForFieldSet(UnresolvedType aspectType, Member field, boolean shortSyntax) Return a resolvedmember representing the synthetic setter for the field. The old style (<1.6.9) is a heavyweight static method with a long name. The new style (1.6.9 and later) is short, not always static, and reusable across aspects.- Parameter:
aspectType
- the aspect attempting the accessfield
- the field to be accessedshortSyntax
- is the old or new style format being used- Gibt zurück:
- a resolvedmember representing the synthetic setter
-
superAccessMethod
-
inlineAccessMethodForMethod
public static ResolvedMember inlineAccessMethodForMethod(UnresolvedType aspectType, ResolvedMember method) -
inlineAccessMethodForFieldGet
-
inlineAccessMethodForFieldSet
-
cflowStackPeekInstance
-
cflowStackPushInstance
-
cflowStackIsValid
-
cflowStackInit
-
aroundClosurePreInitializationField
-
aroundClosurePreInitializationGetter
-
preIntroducedConstructor
public static ResolvedMember preIntroducedConstructor(UnresolvedType aspectType, UnresolvedType targetType, UnresolvedType[] paramTypes) -
postIntroducedConstructor
public static ResolvedMember postIntroducedConstructor(UnresolvedType aspectType, UnresolvedType targetType, UnresolvedType[] paramTypes) -
itdAtDeclareParentsField
public static ResolvedMember itdAtDeclareParentsField(ResolvedType targetType, UnresolvedType itdType, UnresolvedType aspectType) -
interConstructor
public static ResolvedMember interConstructor(ResolvedType targetType, ResolvedMember constructor, UnresolvedType aspectType) -
interFieldInitializer
-
interFieldSetDispatcher
public static ResolvedMember interFieldSetDispatcher(ResolvedMember field, UnresolvedType aspectType) This static method goes on the aspect that declares the inter-type field -
interFieldGetDispatcher
public static ResolvedMember interFieldGetDispatcher(ResolvedMember field, UnresolvedType aspectType) This static method goes on the aspect that declares the inter-type field -
interFieldClassField
public static ResolvedMember interFieldClassField(ResolvedMember field, UnresolvedType aspectType, boolean newStyle) This field goes on the class the field is declared onto. Field names for ITDs onto interfaces are handled below. -
interFieldInterfaceField
public static ResolvedMember interFieldInterfaceField(ResolvedMember field, UnresolvedType onClass, UnresolvedType aspectType, boolean newStyle) This field goes on top-most implementers of the interface the field is declared onto -
interFieldInterfaceSetter
public static ResolvedMember interFieldInterfaceSetter(ResolvedMember field, ResolvedType onType, UnresolvedType aspectType) This instance method goes on the interface the field is declared onto as well as its top-most implementors -
interFieldInterfaceGetter
public static ResolvedMember interFieldInterfaceGetter(ResolvedMember field, ResolvedType onType, UnresolvedType aspectType) This instance method goes on the interface the field is declared onto as well as its top-most implementors -
interMethod
public static ResolvedMember interMethod(ResolvedMember meth, UnresolvedType aspectType, boolean onInterface) This method goes on the target type of the inter-type method. (and possibly the topmost-implementors, if the target type is an interface). The implementation will call the interMethodDispatch method on the aspect. -
interMethodBridger
public static ResolvedMember interMethodBridger(ResolvedMember meth, UnresolvedType aspectType, boolean onInterface) This method goes on the target type of the inter-type method. (and possibly the topmost-implementors, if the target type is an interface). The implementation will call the interMethodDispatch method on the aspect. -
bridgerToInterMethod
Sometimes the intertyped method requires a bridge method alongside it. For example if the method 'N SomeI<N>.m()' is put onto an interface 'interface I<N extends Number>' and then a concrete implementation is 'class C implements I<Float>' then the ITD on the interface will be 'Number m()', whereas the ITD on the 'topmostimplementor' will be 'Float m()'. A bridge method needs to be created in the topmostimplementor 'Number m()' that delegates to 'Float m()' -
interMethodDispatcher
This static method goes on the declaring aspect of the inter-type method. The implementation calls the interMethodBody() method on the aspect. -
interMethodBody
This method goes on the declaring aspect of the inter-type method. It contains the real body of the ITD method. -
toObjectConversionMethod
-
interfaceConstructor
-