comparison agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaTypeArrayKlass.java @ 0:a61af66fc99e jdk7-b24

Initial load
author duke
date Sat, 01 Dec 2007 00:00:00 +0000
parents
children c18cbe5936b8
comparison
equal deleted inserted replaced
-1:000000000000 0:a61af66fc99e
1 /*
2 * Copyright 2003-2007 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.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 *
23 */
24
25 package sun.jvm.hotspot.utilities.soql;
26
27 import java.util.*;
28 import sun.jvm.hotspot.oops.*;
29 import sun.jvm.hotspot.utilities.*;
30
31 /**
32 This is JavaScript wrapper for TypeArrayKlass.
33 */
34
35 public class JSJavaTypeArrayKlass extends JSJavaArrayKlass {
36 public JSJavaTypeArrayKlass(TypeArrayKlass kls, JSJavaFactory fac) {
37 super(kls, fac);
38 }
39
40 public final TypeArrayKlass getTypeArrayKlass() {
41 return (TypeArrayKlass) getArrayKlass();
42 }
43
44 public String getName() {
45 int type = (int) getTypeArrayKlass().getElementType();
46 switch (type) {
47 case TypeArrayKlass.T_BOOLEAN:
48 return "boolean[]";
49 case TypeArrayKlass.T_CHAR:
50 return "char[]";
51 case TypeArrayKlass.T_FLOAT:
52 return "float[]";
53 case TypeArrayKlass.T_DOUBLE:
54 return "double[]";
55 case TypeArrayKlass.T_BYTE:
56 return "byte[]";
57 case TypeArrayKlass.T_SHORT:
58 return "short[]";
59 case TypeArrayKlass.T_INT:
60 return "int[]";
61 case TypeArrayKlass.T_LONG:
62 return "long[]";
63 default:
64 if (Assert.ASSERTS_ENABLED) {
65 Assert.that(false, "Unknown primitive array type");
66 }
67 return null;
68 }
69 }
70
71 public Object getFieldValue(int index, Array array) {
72 TypeArray typeArr = (TypeArray) array;
73 int type = (int) getTypeArrayKlass().getElementType();
74 switch (type) {
75 case TypeArrayKlass.T_BOOLEAN:
76 return Boolean.valueOf(typeArr.getBooleanAt(index));
77 case TypeArrayKlass.T_CHAR:
78 return new String(new char[] { typeArr.getCharAt(index) });
79 case TypeArrayKlass.T_FLOAT:
80 return new Float(typeArr.getFloatAt(index));
81 case TypeArrayKlass.T_DOUBLE:
82 return new Double(typeArr.getDoubleAt(index));
83 case TypeArrayKlass.T_BYTE:
84 return new Byte(typeArr.getByteAt(index));
85 case TypeArrayKlass.T_SHORT:
86 return new Short(typeArr.getShortAt(index));
87 case TypeArrayKlass.T_INT:
88 return new Integer(typeArr.getIntAt(index));
89 case TypeArrayKlass.T_LONG:
90 return new Long(typeArr.getLongAt(index));
91 default:
92 if (Assert.ASSERTS_ENABLED) {
93 Assert.that(false, "Unknown primitive array type");
94 }
95 return null;
96 }
97 }
98 }