public class AspectMetadata
extends java.lang.Object
Uses AspectJ 5 AJType reflection API, so is only supported on Java 5. Enables us to work with different AspectJ instantiation models such as "singleton", "pertarget" and "perthis".
AspectJExpressionPointcut
Modifier and Type | Field and Description |
---|---|
private AjType |
ajType
AspectJ reflection information (AspectJ 5 / Java 5 specific).
|
private java.lang.String |
aspectName
The name of this aspect as defined to Spring (the bean name) -
allows us to determine if two pieces of advice come from the
same aspect and hence their relative precedence.
|
private Pointcut |
perClausePointcut
Spring AOP pointcut corresponding to the per clause of the
aspect.
|
Constructor and Description |
---|
AspectMetadata(java.lang.Class<?> aspectClass,
java.lang.String aspectName)
Create a new AspectMetadata instance for the given aspect class.
|
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
findPerClause(java.lang.Class<?> aspectClass)
Extract contents from String of form
pertarget(contents) . |
AjType |
getAjType()
Return AspectJ reflection information.
|
java.lang.Class |
getAspectClass()
Return the aspect class.
|
java.lang.String |
getAspectName()
Return the aspect class.
|
Pointcut |
getPerClausePointcut()
Return a Spring pointcut expression for a singleton aspect.
|
boolean |
isLazilyInstantiated()
Return whether the aspect needs to be lazily instantiated.
|
boolean |
isPerThisOrPerTarget()
Return whether the aspect is defined as "perthis" or "pertarget".
|
boolean |
isPerTypeWithin()
Return whether the aspect is defined as "pertypewithin".
|
private final AjType ajType
private final Pointcut perClausePointcut
private java.lang.String aspectName
public AspectMetadata(java.lang.Class<?> aspectClass, java.lang.String aspectName)
aspectClass
- the aspect classaspectName
- the name of the aspectprivate java.lang.String findPerClause(java.lang.Class<?> aspectClass)
pertarget(contents)
.public AjType getAjType()
public java.lang.Class getAspectClass()
public java.lang.String getAspectName()
public Pointcut getPerClausePointcut()
Pointcut.TRUE
if it's a singleton).public boolean isPerThisOrPerTarget()
public boolean isPerTypeWithin()
public boolean isLazilyInstantiated()