class InstantiationModelAwarePointcutAdvisorImpl extends java.lang.Object implements InstantiationModelAwarePointcutAdvisor, AspectJPrecedenceInformation
Modifier and Type | Class and Description |
---|---|
private class |
InstantiationModelAwarePointcutAdvisorImpl.PerTargetInstantiationModelPointcut
Pointcut implementation that changes its behaviour when the advice is instantiated.
|
Modifier and Type | Field and Description |
---|---|
private MetadataAwareAspectInstanceFactory |
aspectInstanceFactory |
private java.lang.String |
aspectName |
private AspectJAdvisorFactory |
atAspectJAdvisorFactory |
private int |
declarationOrder |
private AspectJExpressionPointcut |
declaredPointcut |
private Advice |
instantiatedAdvice |
private java.lang.Boolean |
isAfterAdvice |
private java.lang.Boolean |
isBeforeAdvice |
private boolean |
lazy |
private java.lang.reflect.Method |
method |
private Pointcut |
pointcut |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
InstantiationModelAwarePointcutAdvisorImpl(AspectJAdvisorFactory af,
AspectJExpressionPointcut ajexp,
MetadataAwareAspectInstanceFactory aif,
java.lang.reflect.Method method,
int declarationOrderInAspect,
java.lang.String aspectName) |
Modifier and Type | Method and Description |
---|---|
private void |
determineAdviceType()
Duplicates some logic from getAdvice, but importantly does not force
creation of the advice.
|
Advice |
getAdvice()
Lazily instantiate advice if necessary.
|
MetadataAwareAspectInstanceFactory |
getAspectInstanceFactory() |
AspectMetadata |
getAspectMetadata()
Return the AspectJ AspectMetadata for this advisor.
|
java.lang.String |
getAspectName()
The name of the aspect (bean) in which the advice was declared.
|
int |
getDeclarationOrder()
The declaration order of the advice member within the aspect.
|
AspectJExpressionPointcut |
getDeclaredPointcut() |
int |
getOrder()
Return the order value of this object, with a
higher value meaning greater in terms of sorting.
|
Pointcut |
getPointcut()
The pointcut for Spring AOP to use.
|
private Advice |
instantiateAdvice(AspectJExpressionPointcut pcut) |
boolean |
isAdviceInstantiated()
Return whether this advisor has already instantiated its advice.
|
boolean |
isAfterAdvice()
Return whether this is an after advice.
|
boolean |
isBeforeAdvice()
Return whether this is a before advice.
|
boolean |
isLazy()
Return whether this advisor is lazily initializing its underlying advice.
|
boolean |
isPerInstance()
This is only of interest for Spring AOP: AspectJ instantiation semantics
are much richer.
|
java.lang.String |
toString() |
private final AspectJExpressionPointcut declaredPointcut
private Pointcut pointcut
private final MetadataAwareAspectInstanceFactory aspectInstanceFactory
private final java.lang.reflect.Method method
private final boolean lazy
private final AspectJAdvisorFactory atAspectJAdvisorFactory
private Advice instantiatedAdvice
private int declarationOrder
private java.lang.String aspectName
private java.lang.Boolean isBeforeAdvice
private java.lang.Boolean isAfterAdvice
public InstantiationModelAwarePointcutAdvisorImpl(AspectJAdvisorFactory af, AspectJExpressionPointcut ajexp, MetadataAwareAspectInstanceFactory aif, java.lang.reflect.Method method, int declarationOrderInAspect, java.lang.String aspectName)
public Pointcut getPointcut()
getPointcut
in interface PointcutAdvisor
public boolean isPerInstance()
true
means here is that the aspect is not a SINGLETON.isPerInstance
in interface Advisor
public AspectMetadata getAspectMetadata()
public Advice getAdvice()
getAdvice
in interface Advisor
org.aopalliance.intercept.MethodInterceptor
,
BeforeAdvice
,
ThrowsAdvice
,
AfterReturningAdvice
public boolean isLazy()
InstantiationModelAwarePointcutAdvisor
isLazy
in interface InstantiationModelAwarePointcutAdvisor
public boolean isAdviceInstantiated()
InstantiationModelAwarePointcutAdvisor
isAdviceInstantiated
in interface InstantiationModelAwarePointcutAdvisor
private Advice instantiateAdvice(AspectJExpressionPointcut pcut)
public MetadataAwareAspectInstanceFactory getAspectInstanceFactory()
public AspectJExpressionPointcut getDeclaredPointcut()
public int getOrder()
Ordered
Normally starting with 0, with Integer.MAX_VALUE
indicating the greatest value. Same order values will result
in arbitrary positions for the affected objects.
Higher values can be interpreted as lower priority. As a consequence, the object with the lowest value has highest priority (somewhat analogous to Servlet "load-on-startup" values).
public java.lang.String getAspectName()
AspectJPrecedenceInformation
getAspectName
in interface AspectJPrecedenceInformation
public int getDeclarationOrder()
AspectJPrecedenceInformation
getDeclarationOrder
in interface AspectJPrecedenceInformation
public boolean isBeforeAdvice()
AspectJPrecedenceInformation
isBeforeAdvice
in interface AspectJPrecedenceInformation
public boolean isAfterAdvice()
AspectJPrecedenceInformation
isAfterAdvice
in interface AspectJPrecedenceInformation
private void determineAdviceType()
public java.lang.String toString()
toString
in class java.lang.Object