OSDN Git Service

* java/lang/VMClassLoader.java (getPrimitiveClass): Return correct
[pf3gnuchains/gcc-fork.git] / libjava / java / lang / VMClassLoader.java
1 /*
2  * java.lang.ClassLoader: part of the Java Class Libraries project.
3  * Copyright (C) 1998, 2001 Free Software Foundation
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA  02111-1307, USA.
19  */
20
21 package java.lang;
22
23 /**
24  * java.lang.VMClassLoader is a package-private helper for VMs to implement
25  * on behalf of java.lang.ClassLoader.
26  *
27  * @author John Keiser
28  * @version 1.1.0, Sep 22 1998
29  * @since CP1.1
30  */
31
32 class VMClassLoader {
33
34     /** 
35      * Helper to define a class using a string of bytes.
36      * 
37      * @param name the name to give the class.  null if unknown.
38      * @param data the data representing the classfile, in classfile format.
39      * @param offset the offset into the data where the classfile starts.
40      * @param len the length of the classfile data in the array.
41      * @return the class that was defined.
42      * @exception ClassFormatError if the byte array is not in proper classfile format.
43      */
44   // Not yet needed for libgcj.
45 //      final static native Class defineClass(ClassLoader cl, String name, 
46 //           byte[] data, int offset, int len) throws ClassFormatError;
47     
48     /** 
49      * Helper to resolve all references to other classes from this class.
50      * @param c the class to resolve.
51      */
52   // Not yet needed for libgcj.
53   //    final static native void resolveClass(Class c);
54
55     /** 
56      * Helper for java.lang.Integer, Byte, etc. to get the TYPE class
57      * at initialization time.  If there are multiple classloaders, this
58      * method may be called once per ClassLoader per type.
59      *
60      * @param type name of the primitive type; i.e. "int", "byte", etc.
61      * @return a "bogus" class representing the primitive type.
62      */
63   static final Class getPrimitiveClass(String type)
64   {
65     if ("int".equals (type))
66       return int.class;
67     else if ("long".equals (type))
68       return long.class;
69     else if ("boolean".equals (type))
70       return boolean.class;
71     else if ("short".equals (type))
72       return short.class;
73     else if ("char".equals (type))
74       return char.class;
75     else if ("byte".equals (type))
76       return byte.class;
77     else if ("float".equals (type))
78       return float.class;
79     else if ("double".equals (type))
80       return double.class;
81     else if ("void".equals (type))
82       return void.class;
83     return null;
84   }
85 }