25
26 package com.sun.tools.apt.mirror.declaration;
27
28
29 import java.lang.annotation.Annotation;
30 import java.lang.annotation.Inherited;
31 import java.util.ArrayList;
32 import java.util.Collection;
33
34 import com.sun.mirror.declaration.*;
35 import com.sun.mirror.type.ClassType;
36 import com.sun.mirror.util.DeclarationVisitor;
37 import com.sun.tools.apt.mirror.AptEnv;
38 import com.sun.tools.javac.code.*;
39 import com.sun.tools.javac.code.Symbol.*;
40
41
42 /**
43 * Implementation of ClassDeclaration
44 */
45
46 public class ClassDeclarationImpl extends TypeDeclarationImpl
47 implements ClassDeclaration {
48
49 ClassDeclarationImpl(AptEnv env, ClassSymbol sym) {
50 super(env, sym);
51 }
52
53
54 /**
55 * {@inheritDoc}
56 * Overridden here to handle @Inherited.
57 */
58 public <A extends Annotation> A getAnnotation(Class<A> annoType) {
59
60 boolean inherited = annoType.isAnnotationPresent(Inherited.class);
61 for (Type t = sym.type;
62 t.tsym != env.symtab.objectType.tsym && !t.isErroneous();
63 t = env.jctypes.supertype(t)) {
64
65 A result = getAnnotation(annoType, t.tsym);
|
25
26 package com.sun.tools.apt.mirror.declaration;
27
28
29 import java.lang.annotation.Annotation;
30 import java.lang.annotation.Inherited;
31 import java.util.ArrayList;
32 import java.util.Collection;
33
34 import com.sun.mirror.declaration.*;
35 import com.sun.mirror.type.ClassType;
36 import com.sun.mirror.util.DeclarationVisitor;
37 import com.sun.tools.apt.mirror.AptEnv;
38 import com.sun.tools.javac.code.*;
39 import com.sun.tools.javac.code.Symbol.*;
40
41
42 /**
43 * Implementation of ClassDeclaration
44 */
45 @SuppressWarnings("deprecation")
46 public class ClassDeclarationImpl extends TypeDeclarationImpl
47 implements ClassDeclaration {
48
49 ClassDeclarationImpl(AptEnv env, ClassSymbol sym) {
50 super(env, sym);
51 }
52
53
54 /**
55 * {@inheritDoc}
56 * Overridden here to handle @Inherited.
57 */
58 public <A extends Annotation> A getAnnotation(Class<A> annoType) {
59
60 boolean inherited = annoType.isAnnotationPresent(Inherited.class);
61 for (Type t = sym.type;
62 t.tsym != env.symtab.objectType.tsym && !t.isErroneous();
63 t = env.jctypes.supertype(t)) {
64
65 A result = getAnnotation(annoType, t.tsym);
|