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
FelderModifizierer und TypFeldBeschreibungstatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedTypestatic final UnresolvedType -
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungstatic ResolvedMemberajcPostClinitMethod(UnresolvedType declaringType) static ResolvedMemberajcPreClinitMethod(UnresolvedType declaringType) static Memberstatic Memberstatic ResolvedMemberbridgerToInterMethod(ResolvedMember meth, UnresolvedType aspectType) Sometimes the intertyped method requires a bridge method alongside it.static Memberstatic Memberstatic Memberstatic Memberstatic ResolvedMemberinitFailureCauseField(UnresolvedType declaringType) static ResolvedMemberinlineAccessMethodForFieldGet(UnresolvedType aspectType, Member field) static ResolvedMemberinlineAccessMethodForFieldSet(UnresolvedType aspectType, Member field) static ResolvedMemberinlineAccessMethodForMethod(UnresolvedType aspectType, ResolvedMember method) static ResolvedMemberinterConstructor(ResolvedType targetType, ResolvedMember constructor, UnresolvedType aspectType) static MemberinterfaceConstructor(ResolvedType resolvedTypeX) static ResolvedMemberinterFieldClassField(ResolvedMember field, UnresolvedType aspectType, boolean newStyle) This field goes on the class the field is declared onto.static ResolvedMemberinterFieldGetDispatcher(ResolvedMember field, UnresolvedType aspectType) This static method goes on the aspect that declares the inter-type fieldstatic ResolvedMemberinterFieldInitializer(ResolvedMember field, UnresolvedType aspectType) static ResolvedMemberinterFieldInterfaceField(ResolvedMember field, UnresolvedType onClass, UnresolvedType aspectType, boolean newStyle) This field goes on top-most implementers of the interface the field is declared ontostatic ResolvedMemberinterFieldInterfaceGetter(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 ResolvedMemberinterFieldInterfaceSetter(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 ResolvedMemberinterFieldSetDispatcher(ResolvedMember field, UnresolvedType aspectType) This static method goes on the aspect that declares the inter-type fieldstatic ResolvedMemberinterMethod(ResolvedMember meth, UnresolvedType aspectType, boolean onInterface) This method goes on the target type of the inter-type method.static ResolvedMemberinterMethodBody(ResolvedMember meth, UnresolvedType aspectType) This method goes on the declaring aspect of the inter-type method.static ResolvedMemberinterMethodBridger(ResolvedMember meth, UnresolvedType aspectType, boolean onInterface) This method goes on the target type of the inter-type method.static ResolvedMemberinterMethodDispatcher(ResolvedMember meth, UnresolvedType aspectType) This static method goes on the declaring aspect of the inter-type method.static ResolvedMemberitdAtDeclareParentsField(ResolvedType targetType, UnresolvedType itdType, UnresolvedType aspectType) static Memberstatic Memberstatic Memberstatic ResolvedMemberperCflowAspectOfMethod(UnresolvedType declaringType) static ResolvedMemberperCflowField(UnresolvedType declaringType) static ResolvedMemberperCflowHasAspectMethod(UnresolvedType declaringType) static ResolvedMemberperCflowPush(UnresolvedType declaringType) static ResolvedMemberperObjectAspectOfMethod(UnresolvedType declaringType) static ResolvedMemberperObjectBind(UnresolvedType declaringType) static ResolvedMemberperObjectField(UnresolvedType declaringType, ResolvedType aspectType) static ResolvedMemberperObjectHasAspectMethod(UnresolvedType declaringType) static ResolvedMemberperObjectInterfaceGet(UnresolvedType aspectType) static ResolvedMemberperObjectInterfaceSet(UnresolvedType aspectType) static UnresolvedTypeperObjectInterfaceType(UnresolvedType aspectType) static ResolvedMemberperSingletonAspectOfMethod(UnresolvedType declaringType) static ResolvedMemberperSingletonField(UnresolvedType declaringType) static ResolvedMemberperSingletonHasAspectMethod(UnresolvedType declaringType) static ResolvedMemberperTypeWithinAspectOfMethod(UnresolvedType declaringType, boolean inJava5Mode) static ResolvedMemberperTypeWithinCreateAspectInstance(UnresolvedType declaringType) static ResolvedMemberperTypeWithinField(UnresolvedType declaringType, ResolvedType aspectType) static ResolvedMemberperTypeWithinGetInstance(UnresolvedType declaringType) static ResolvedMemberperTypeWithinGetWithinTypeNameMethod(UnresolvedType declaringType, boolean inJava5Mode) static ResolvedMemberperTypeWithinHasAspectMethod(UnresolvedType declaringType, boolean inJava5Mode) static ResolvedMemberperTypeWithinLocalAspectOf(UnresolvedType shadowType, UnresolvedType aspectType) static ResolvedMemberperTypeWithinWithinTypeField(UnresolvedType declaringType, ResolvedType aspectType) static ResolvedMemberpostIntroducedConstructor(UnresolvedType aspectType, UnresolvedType targetType, UnresolvedType[] paramTypes) static ResolvedMemberpreIntroducedConstructor(UnresolvedType aspectType, UnresolvedType targetType, UnresolvedType[] paramTypes) static ResolvedMemberprivilegedAccessMethodForFieldGet(UnresolvedType aspectType, Member field, boolean shortSyntax) Return a resolvedmember representing the synthetic getter for the field.static ResolvedMemberprivilegedAccessMethodForFieldSet(UnresolvedType aspectType, Member field, boolean shortSyntax) Return a resolvedmember representing the synthetic setter for the field.static ResolvedMemberprivilegedAccessMethodForMethod(UnresolvedType aspectType, ResolvedMember method) static ResolvedMembersuperAccessMethod(UnresolvedType baseType, ResolvedMember method) static ResolvedMembertoObjectConversionMethod(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
-