001: /*
002: * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004: *
005: * This code is free software; you can redistribute it and/or modify it
006: * under the terms of the GNU General Public License version 2 only, as
007: * published by the Free Software Foundation. Sun designates this
008: * particular file as subject to the "Classpath" exception as provided
009: * by Sun in the LICENSE file that accompanied this code.
010: *
011: * This code is distributed in the hope that it will be useful, but WITHOUT
012: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014: * version 2 for more details (a copy is included in the LICENSE file that
015: * accompanied this code).
016: *
017: * You should have received a copy of the GNU General Public License version
018: * 2 along with this work; if not, write to the Free Software Foundation,
019: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020: *
021: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022: * CA 95054 USA or visit www.sun.com if you need additional information or
023: * have any questions.
024: */
025:
026: package com.sun.tools.javadoc;
027:
028: import com.sun.javadoc.*;
029:
030: import com.sun.tools.javac.code.Symbol;
031: import com.sun.tools.javac.code.Symbol.ClassSymbol;
032:
033: import com.sun.tools.javac.code.Type;
034: import com.sun.tools.javac.code.TypeTags;
035: import com.sun.tools.javac.code.Type.ClassType;
036:
037: class PrimitiveType implements com.sun.javadoc.Type {
038:
039: private final String name;
040:
041: static final PrimitiveType voidType = new PrimitiveType("void");
042: static final PrimitiveType booleanType = new PrimitiveType(
043: "boolean");
044: static final PrimitiveType byteType = new PrimitiveType("byte");
045: static final PrimitiveType charType = new PrimitiveType("char");
046: static final PrimitiveType shortType = new PrimitiveType("short");
047: static final PrimitiveType intType = new PrimitiveType("int");
048: static final PrimitiveType longType = new PrimitiveType("long");
049: static final PrimitiveType floatType = new PrimitiveType("float");
050: static final PrimitiveType doubleType = new PrimitiveType("double");
051:
052: // error type, should never actually be used
053: static final PrimitiveType errorType = new PrimitiveType("");
054:
055: PrimitiveType(String name) {
056: this .name = name;
057: }
058:
059: /**
060: * Return unqualified name of type excluding any dimension information.
061: * <p>
062: * For example, a two dimensional array of String returns 'String'.
063: */
064: public String typeName() {
065: return name;
066: }
067:
068: /**
069: * Return qualified name of type excluding any dimension information.
070: *<p>
071: * For example, a two dimensional array of String
072: * returns 'java.lang.String'.
073: */
074: public String qualifiedTypeName() {
075: return name;
076: }
077:
078: /**
079: * Return the simple name of this type.
080: */
081: public String simpleTypeName() {
082: return name;
083: }
084:
085: /**
086: * Return the type's dimension information, as a string.
087: * <p>
088: * For example, a two dimensional array of String returns '[][]'.
089: */
090: public String dimension() {
091: return "";
092: }
093:
094: /**
095: * Return this type as a class. Array dimensions are ignored.
096: *
097: * @return a ClassDocImpl if the type is a Class.
098: * Return null if it is a primitive type..
099: */
100: public ClassDoc asClassDoc() {
101: return null;
102: }
103:
104: /**
105: * Return null, as this is not an annotation type.
106: */
107: public AnnotationTypeDoc asAnnotationTypeDoc() {
108: return null;
109: }
110:
111: /**
112: * Return null, as this is not an instantiation.
113: */
114: public ParameterizedType asParameterizedType() {
115: return null;
116: }
117:
118: /**
119: * Return null, as this is not a type variable.
120: */
121: public TypeVariable asTypeVariable() {
122: return null;
123: }
124:
125: /**
126: * Return null, as this is not a wildcard type;
127: */
128: public WildcardType asWildcardType() {
129: return null;
130: }
131:
132: /**
133: * Returns a string representation of the type.
134: *
135: * Return name of type including any dimension information.
136: * <p>
137: * For example, a two dimensional array of String returns
138: * <code>String[][]</code>.
139: *
140: * @return name of type including any dimension information.
141: */
142: public String toString() {
143: return qualifiedTypeName();
144: }
145:
146: /**
147: * Return true if this is a primitive type.
148: */
149: public boolean isPrimitive() {
150: return true;
151: }
152: }
|