This munger is used for @AJ aspects for which inlining wrapper is not done at compile time.
Specific state and logic is kept in the munger ala ITD so that call/get/set pointcuts can still be matched on the wrapped member thanks to the EffectiveSignature attribute.
| Modifier and Type | Field and Description |
|---|---|
| private LazyClassGen | |
| private Set | inlineAccessorMethodGens
The wrapper methods representing any created inlineAccessors |
| private Map |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| private ResolvedMember | createOrGetInlineAccessorForFieldGet(ResolvedMember resolvedMember)
Add an inline wrapper for a non public field get |
| private ResolvedMember | createOrGetInlineAccessorForFieldSet(ResolvedMember resolvedMember)
Add an inline wrapper for a non public field set |
| private ResolvedMember | createOrGetInlineAccessorForMethod(ResolvedMember resolvedMember)
Find (or add if not yet created) an inline wrapper for a non public method call |
| private ResolvedMember | createOrGetInlineAccessorForSuperDispatch(ResolvedMember resolvedMember)
Add an inline wrapper for a non public super.method call |
| public ResolvedMember | getMatchingSyntheticMember(Member member)
Overrides org. |
| public ResolvedMember | |
| public boolean | matches(ResolvedType onType)
Match only the aspect for which we act
|
| public boolean | |
| private void | openAroundAdvice(LazyMethodGen aroundAdvice)
Prepare the around advice, flag it as cannot be inlined if it can't be |
| aspectGen | back to summary |
|---|---|
| private LazyClassGen aspectGen | |
| inlineAccessorMethodGens | back to summary |
|---|---|
| private Set<LazyMethodGen> inlineAccessorMethodGens The wrapper methods representing any created inlineAccessors | |
| inlineAccessors | back to summary |
|---|---|
| private Map<String, ResolvedMember> inlineAccessors | |
| BcelAccessForInlineMunger | back to summary |
|---|---|
| public BcelAccessForInlineMunger(ResolvedType aspectType) | |
| createOrGetInlineAccessorForFieldGet | back to summary |
|---|---|
| private ResolvedMember createOrGetInlineAccessorForFieldGet(ResolvedMember resolvedMember) Add an inline wrapper for a non public field get | |
| createOrGetInlineAccessorForFieldSet | back to summary |
|---|---|
| private ResolvedMember createOrGetInlineAccessorForFieldSet(ResolvedMember resolvedMember) Add an inline wrapper for a non public field set | |
| createOrGetInlineAccessorForMethod | back to summary |
|---|---|
| private ResolvedMember createOrGetInlineAccessorForMethod(ResolvedMember resolvedMember) Find (or add if not yet created) an inline wrapper for a non public method call | |
| createOrGetInlineAccessorForSuperDispatch | back to summary |
|---|---|
| private ResolvedMember createOrGetInlineAccessorForSuperDispatch(ResolvedMember resolvedMember) Add an inline wrapper for a non public super.method call | |
| getMatchingSyntheticMember | back to summary |
|---|---|
| public ResolvedMember getMatchingSyntheticMember(Member member) Overrides org. Looks in the wrapper we have added so that we can find their effective signature if needed
| |
| getSignature | back to summary |
|---|---|
| public ResolvedMember getSignature() Overrides org.
| |
| matches | back to summary |
|---|---|
| public boolean matches(ResolvedType onType) Overrides org. Match only the aspect for which we act
| |
| munge | back to summary |
|---|---|
| public boolean munge(BcelClassWeaver weaver) Overrides org.
| |
| openAroundAdvice | back to summary |
|---|---|
| private void openAroundAdvice(LazyMethodGen aroundAdvice) Prepare the around advice, flag it as cannot be inlined if it can't be | |