public class AspectMetadata
extends java.lang.Object
implements java.io.Serializable
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
,
Serialized FormModifier and Type | Field and Description |
---|---|
private <any> |
ajType
AspectJ reflection information (AspectJ 5 / Java 5 specific).
|
private java.lang.Class<?> |
aspectClass
The aspect class, stored separately for re-resolution of the
corresponding AjType on deserialization.
|
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) . |
<any> |
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 void |
readObject(java.io.ObjectInputStream inputStream) |
private final java.lang.String aspectName
private final java.lang.Class<?> aspectClass
private transient <any> ajType
private final Pointcut perClausePointcut
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 <any> 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()
private void readObject(java.io.ObjectInputStream inputStream) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException