src/share/classes/com/sun/tools/apt/mirror/declaration/ClassDeclarationImpl.java

Print this page




  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);