001 /*
002 * Copyright 2005-2006 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 javax.lang.model.type;
027
028 /**
029 * The kind of a type mirror.
030 *
031 * <p>Note that it is possible additional type kinds will be added to
032 * accommodate new, currently unknown, language structures added to
033 * future versions of the Java™ programming language.
034 *
035 * @author Joseph D. Darcy
036 * @author Scott Seligman
037 * @author Peter von der Ahé
038 * @version 1.11 07/05/05
039 * @see TypeMirror
040 * @since 1.6
041 */
042 public enum TypeKind {
043 /**
044 * The primitive type {@code boolean}.
045 */
046 BOOLEAN,
047
048 /**
049 * The primitive type {@code byte}.
050 */
051 BYTE,
052
053 /**
054 * The primitive type {@code short}.
055 */
056 SHORT,
057
058 /**
059 * The primitive type {@code int}.
060 */
061 INT,
062
063 /**
064 * The primitive type {@code long}.
065 */
066 LONG,
067
068 /**
069 * The primitive type {@code char}.
070 */
071 CHAR,
072
073 /**
074 * The primitive type {@code float}.
075 */
076 FLOAT,
077
078 /**
079 * The primitive type {@code double}.
080 */
081 DOUBLE,
082
083 /**
084 * The pseudo-type corresponding to the keyword {@code void}.
085 * @see NoType
086 */
087 VOID,
088
089 /**
090 * A pseudo-type used where no actual type is appropriate.
091 * @see NoType
092 */
093 NONE,
094
095 /**
096 * The null type.
097 */
098 NULL,
099
100 /**
101 * An array type.
102 */
103 ARRAY,
104
105 /**
106 * A class or interface type.
107 */
108 DECLARED,
109
110 /**
111 * A class or interface type that could not be resolved.
112 */
113 ERROR,
114
115 /**
116 * A type variable.
117 */
118 TYPEVAR,
119
120 /**
121 * A wildcard type argument.
122 */
123 WILDCARD,
124
125 /**
126 * A pseudo-type corresponding to a package element.
127 * @see NoType
128 */
129 PACKAGE,
130
131 /**
132 * A method, constructor, or initializer.
133 */
134 EXECUTABLE,
135
136 /**
137 * An implementation-reserved type.
138 * This is not the type you are looking for.
139 */
140 OTHER;
141
142 /**
143 * Returns {@code true} if this kind corresponds to a primitive
144 * type and {@code false} otherwise.
145 * @return {@code true} if this kind corresponds to a primitive type
146 */
147 public boolean isPrimitive() {
148 switch (this ) {
149 case BOOLEAN:
150 case BYTE:
151 case SHORT:
152 case INT:
153 case LONG:
154 case CHAR:
155 case FLOAT:
156 case DOUBLE:
157 return true;
158
159 default:
160 return false;
161 }
162 }
163 }
|