org.apache.shiro.aop
Class DefaultAnnotationResolver
java.lang.Object
org.apache.shiro.aop.DefaultAnnotationResolver
- All Implemented Interfaces:
- AnnotationResolver
public class DefaultAnnotationResolver
- extends Object
- implements AnnotationResolver
Default AnnotationResolver
implementation that merely inspects the
MethodInvocation
's target method
,
and returns targetMethod
.getAnnotation(class)
.
Unfortunately Java's default reflection API for Annotations is not very robust, and this logic
may not be enough - if the incoming method invocation represents a method from an interface,
this default logic would not discover the annotation if it existed on the method implementation
directly (as opposed to being defined directly in the interface definition).
More complex class hierarchy traversal logic is required to exhaust a method's target object's
classes, parent classes, interfaces and parent interfaces. That logic will likely be added
to this implementation in due time, but for now, this implementation relies on the JDK's default
Method.getAnnotation(class)
logic.
- Since:
- 1.1
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DefaultAnnotationResolver
public DefaultAnnotationResolver()
getAnnotation
public Annotation getAnnotation(MethodInvocation mi,
Class<? extends Annotation> clazz)
- Returns
methodInvocation.
getMethod()
.getAnnotation(clazz)
.
- Specified by:
getAnnotation
in interface AnnotationResolver
- Parameters:
mi
- the intercepted method to be invoked.clazz
- the annotation class to use to find an annotation instance on the method.
- Returns:
- the discovered annotation or
null
if an annotation instance could not be
found.
Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.