1 /* 2 * Copyright (c) 2004, Oracle and/or its affiliates. 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. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.tools.apt.mirror.type; 27 28 29 30 import com.sun.mirror.type.PrimitiveType; 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 import static com.sun.mirror.type.PrimitiveType.Kind.*; 36 37 38 /** 39 * Implementation of PrimitiveType. 40 */ 41 @SuppressWarnings("deprecation") 42 class PrimitiveTypeImpl extends TypeMirrorImpl implements PrimitiveType { 43 44 private final Kind kind; // the kind of primitive 45 46 47 PrimitiveTypeImpl(AptEnv env, Kind kind) { 48 super(env, getType(env, kind)); 49 this.kind = kind; 50 } 51 52 53 /** 54 * {@inheritDoc} 55 */ 56 public Kind getKind() { 57 return kind; 58 } 59 60 /** 61 * {@inheritDoc} 62 */ 63 public void accept(TypeVisitor v) { 64 v.visitPrimitiveType(this); 65 } 66 67 68 /** 69 * Returns the javac type corresponding to a kind of primitive type. 70 */ 71 private static Type getType(AptEnv env, Kind kind) { 72 switch (kind) { 73 case BOOLEAN: return env.symtab.booleanType; 74 case BYTE: return env.symtab.byteType; 75 case SHORT: return env.symtab.shortType; 76 case INT: return env.symtab.intType; 77 case LONG: return env.symtab.longType; 78 case CHAR: return env.symtab.charType; 79 case FLOAT: return env.symtab.floatType; 80 case DOUBLE: return env.symtab.doubleType; 81 default: throw new AssertionError(); 82 } 83 } 84 }