1 /* 2 * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Sun designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Sun in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 22 * CA 95054 USA or visit www.sun.com if you need additional information or 23 * have any questions. 24 */ 25 26 package com.sun.tools.apt.mirror.type; 27 28 29 import com.sun.mirror.declaration.*; 30 import com.sun.mirror.type.*; 31 import com.sun.mirror.util.TypeVisitor; 32 import com.sun.tools.apt.mirror.AptEnv; 33 import com.sun.tools.javac.code.Type; 34 35 36 /** 37 * Implementation of ClassType 38 */ 39 40 public class ClassTypeImpl extends DeclaredTypeImpl implements ClassType { 41 42 ClassTypeImpl(AptEnv env, Type.ClassType type) { 43 super(env, type); 44 } 45 46 47 /** 48 * {@inheritDoc} 49 */ 50 public ClassDeclaration getDeclaration() { 51 return (ClassDeclaration) super.getDeclaration(); 52 } 53 54 /** 55 * {@inheritDoc} 56 */ 57 public ClassType getSuperclass() { 58 // java.lang.Object has no superclass 59 if (type.tsym == env.symtab.objectType.tsym) { 60 return null; 61 } 62 Type sup = env.jctypes.supertype(type); 63 return (ClassType) env.typeMaker.getType(sup); 64 } 65 66 /** 67 * {@inheritDoc} 68 */ 69 public void accept(TypeVisitor v) { 70 v.visitClassType(this); 71 } 72 }