JType.java revision 66a42db8cbfba902f72f0ace5ac448ef4bfd3951
1bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root/* 2bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * Copyright (C) 2006 The Android Open Source Project 3bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * 4bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 5bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * you may not use this file except in compliance with the License. 6bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * You may obtain a copy of the License at 7bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * 8bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * http://www.apache.org/licenses/LICENSE-2.0 9bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * 10bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * Unless required by applicable law or agreed to in writing, software 11bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * distributed under the License is distributed on an "AS IS" BASIS, 12bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * See the License for the specific language governing permissions and 14bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * limitations under the License. 15bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root */ 16412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 17412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevichimport java.util.HashMap; 18412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 19412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevichpublic class JType { 20412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 21412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich String baseType; 22412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich boolean isArray; 23412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich boolean isClass; 2450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich boolean isString; 25412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 26412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich static HashMap<CType,JType> typeMapping = new HashMap<CType,JType>(); 27412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich static HashMap<CType,JType> arrayTypeMapping = new HashMap<CType,JType>(); 28412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 29412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich static { 30412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich // Primitive types 31412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLbitfield"), new JType("int")); 32412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLboolean"), new JType("boolean")); 33412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLclampf"), new JType("float")); 34412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLclampx"), new JType("int")); 35412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLenum"), new JType("int")); 36412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfloat"), new JType("float")); 37412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfixed"), new JType("int")); 38412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLint"), new JType("int")); 39412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLintptr"), new JType("int")); 40412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLshort"), new JType("short")); 41412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLsizei"), new JType("int")); 42412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLsizeiptr"), new JType("int")); 43412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLubyte"), new JType("byte")); 44412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLuint"), new JType("int")); 45412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("void"), new JType("void")); 4650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("GLubyte", true, true), new JType("String", false, false)); 4750d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("char", false, true), new JType("byte")); 4850d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("char", true, true), new JType("String", false, false)); 4950d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("int"), new JType("int")); 50412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 5166a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer // EGL primitive types 5266a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLint"), new JType("int")); 5366a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLBoolean"), new JType("boolean")); 5466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLenum"), new JType("int")); 5566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLNativePixmapType"), new JType("int")); 5666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLNativeWindowType"), new JType("int")); 5766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLNativeDisplayType"), new JType("int")); 5866a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLClientBuffer"), new JType("int")); 5966a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 6066a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer // EGL nonprimitive types 6166a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLConfig"), new JType("EGLConfig", true, false)); 6266a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLContext"), new JType("EGLContext", true, false)); 6366a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLDisplay"), new JType("EGLDisplay", true, false)); 6466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLSurface"), new JType("EGLSurface", true, false)); 6566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 6666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 67412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich // Untyped pointers map to untyped Buffers 68412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLvoid", true, true), 69412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 70412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLvoid", false, true), 71412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 72412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("void", false, true), 73412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 74412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLeglImageOES", false, false), 75412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 76412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 77412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich // Typed pointers map to typed Buffers 78412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLboolean", false, true), 79412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 8050d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("GLenum", false, true), 8150d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich new JType("java.nio.IntBuffer", true, false)); 82412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfixed", false, true), 83412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 84412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfixed", true, true), 85412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 86412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfloat", false, true), 87412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.FloatBuffer", true, false)); 88412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfloat", true, true), 89412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.FloatBuffer", true, false)); 90412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLint", false, true), 91412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 92412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLint", true, true), 93412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 9450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("GLsizei", false, true), 9550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich new JType("java.nio.IntBuffer", true, false)); 96412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLuint", false, true), 97412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 98412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLuint", true, true), 99412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 100412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLshort", true, true), 101412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.ShortBuffer", true, false)); 102412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 103412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich // Typed pointers map to arrays + offsets 10450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("char", false, true), 10550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich new JType("byte", false, true)); 106412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLboolean", false, true), 10766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer new JType("boolean", false, true)); 10850d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("GLenum", false, true), new JType("int", false, true)); 109412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfixed", true, true), new JType("int", false, true)); 110412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfixed", false, true), new JType("int", false, true)); 111412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfloat", false, true), new JType("float", false, true)); 112412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfloat", true, true), new JType("float", false, true)); 113412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLint", false, true), new JType("int", false, true)); 114412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLint", true, true), new JType("int", false, true)); 115412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLshort", true, true), new JType("short", false, true)); 11650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("GLsizei", false, true), new JType("int", false, true)); 11750d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("GLsizei", true, true), new JType("int", false, true)); 118412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLuint", false, true), new JType("int", false, true)); 119412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLuint", true, true), new JType("int", false, true)); 120412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLintptr"), new JType("int", false, true)); 121412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLsizeiptr"), new JType("int", false, true)); 12266a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 12366a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer //EGL typed pointers map to arrays + offsets 12466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLint", false, true), new JType("int", false, true)); 12566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLint", true, true), new JType("int", false, true)); 12666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLConfig", false, true), new JType("EGLConfig", true, true)); 12766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLConfig", true, true), new JType("EGLConfig", true, true)); 12866a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 129412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 130412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 131412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public JType() { 132412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 133412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 134412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public JType(String primitiveTypeName) { 135412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.baseType = primitiveTypeName; 136412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isClass = false; 137412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isArray = false; 138412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 139412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 140412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public JType(String primitiveTypeName, boolean isClass, boolean isArray) { 141412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.baseType = primitiveTypeName; 142412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isClass = isClass; 143412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isArray = isArray; 144412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 145412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 146412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public String getBaseType() { 147412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType; 148412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 149412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 150412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich @Override 151412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public String toString() { 152412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType + (isArray ? "[]" : ""); 153412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 154412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 155412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isArray() { 156412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return isArray; 157412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 158412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 159412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isClass() { 160412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return isClass; 161412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 162412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 16350d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich public boolean isString() { 16450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich return baseType.equals("String"); 16550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich } 16650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich 167412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isPrimitive() { 168412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return !isClass() && !isArray(); 169412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 170412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 171412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isVoid() { 172412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType.equals("void"); 173412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 174412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 175412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isBuffer() { 176412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType.indexOf("Buffer") != -1; 177412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 178412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 179412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isTypedBuffer() { 180412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return !baseType.equals("java.nio.Buffer") && 181412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich (baseType.indexOf("Buffer") != -1); 182412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 183412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 18466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer public boolean isEGLHandle() { 18566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer return !isPrimitive() && 18666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer (baseType.startsWith("EGL")); 18766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer } 18866a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 189412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public static JType convert(CType ctype, boolean useArray) { 190412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich JType javaType = null; 191412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich if (useArray) { 192412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich javaType = arrayTypeMapping.get(ctype); 193412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 194412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich if (javaType == null) { 195412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich javaType = typeMapping.get(ctype); 196412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 197412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich if (javaType == null) { 198412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich throw new RuntimeException("Unsupported C type: " + ctype); 199412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 200412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return javaType; 201412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 202412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich} 203