KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > nuts > annotations > AnnotationMemberPredicate


1 package jfun.yan.nuts.annotations;
2
3 import java.lang.annotation.Annotation JavaDoc;
4 import java.lang.reflect.Constructor JavaDoc;
5 import java.lang.reflect.Field JavaDoc;
6 import java.lang.reflect.Member JavaDoc;
7 import java.lang.reflect.Method JavaDoc;
8
9 import jfun.yan.util.MemberPredicate;
10
11 /**
12  * A MemberPredicate implementation that checks the presence of
13  * a certain annotation.
14  * <p>
15  * @author Ben Yu
16  * Dec 30, 2005 10:55:50 PM
17  */

18 public class AnnotationMemberPredicate implements MemberPredicate {
19   private final Class JavaDoc<? extends Annotation JavaDoc> annotation;
20   public boolean isMember(String JavaDoc name, Member JavaDoc m) {
21     if(m instanceof Method JavaDoc){
22       return ((Method JavaDoc)m).isAnnotationPresent(annotation);
23     }
24     else if(m instanceof Field JavaDoc){
25       return ((Field JavaDoc)m).isAnnotationPresent(annotation);
26     }
27     else if(m instanceof Constructor JavaDoc){
28       return ((Constructor JavaDoc)m).isAnnotationPresent(annotation);
29     }
30     return false;
31   }
32   public AnnotationMemberPredicate(Class JavaDoc<? extends Annotation JavaDoc> annotation) {
33     this.annotation = annotation;
34   }
35   public boolean equals(Object JavaDoc obj) {
36     if(obj instanceof AnnotationMemberPredicate){
37       final AnnotationMemberPredicate other = (AnnotationMemberPredicate)obj;
38       return annotation.equals(other.annotation);
39     }
40     else return false;
41   }
42   public int hashCode() {
43     return annotation.hashCode();
44   }
45   public String JavaDoc toString() {
46     return annotation.toString();
47   }
48
49 }
50
Popular Tags