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)); 490eb6ad563825b97aec760a893db0eead10fe0ae6Jesse Hall typeMapping.put(new CType("GLchar", true, true), new JType("String", false, false)); 5050d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("int"), new JType("int")); 5168fc8bbced285a8a2b716e5fe1900968ad8ba7d3Jesse Hall typeMapping.put(new CType("GLuint64"), new JType("long")); 5268fc8bbced285a8a2b716e5fe1900968ad8ba7d3Jesse Hall typeMapping.put(new CType("GLsync"), new JType("long")); 53412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 5466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer // EGL primitive types 5566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLint"), new JType("int")); 5666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLBoolean"), new JType("boolean")); 5766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLenum"), new JType("int")); 5866a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLNativePixmapType"), new JType("int")); 5966a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLNativeWindowType"), new JType("int")); 60ab6fc2a86f34be455c144a2d691e94909998c959Ashok Bhat typeMapping.put(new CType("EGLNativeDisplayType"), new JType("long")); 61ab6fc2a86f34be455c144a2d691e94909998c959Ashok Bhat typeMapping.put(new CType("EGLClientBuffer"), new JType("long")); 627284145d564fa8a422a8e564a38c730fb4a2962bAndy McFadden typeMapping.put(new CType("EGLnsecsANDROID"), new JType("long")); 6366a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 6466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer // EGL nonprimitive types 6566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLConfig"), new JType("EGLConfig", true, false)); 6666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLContext"), new JType("EGLContext", true, false)); 6766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLDisplay"), new JType("EGLDisplay", true, false)); 6866a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer typeMapping.put(new CType("EGLSurface"), new JType("EGLSurface", true, false)); 6966a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 7066a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 71412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich // Untyped pointers map to untyped Buffers 72412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLvoid", true, true), 73412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 74412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLvoid", false, true), 75412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 76412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("void", false, true), 77412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 78412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLeglImageOES", false, false), 79412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.Buffer", true, false)); 80412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 81412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich // Typed pointers map to typed Buffers 82412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLboolean", false, true), 83412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 8450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("GLenum", false, true), 8550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich new JType("java.nio.IntBuffer", true, false)); 860eb6ad563825b97aec760a893db0eead10fe0ae6Jesse Hall typeMapping.put(new CType("GLenum", true, true), 870eb6ad563825b97aec760a893db0eead10fe0ae6Jesse Hall new JType("java.nio.IntBuffer", true, false)); 88412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfixed", false, true), 89412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 90412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfixed", true, true), 91412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 92412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfloat", false, true), 93412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.FloatBuffer", true, false)); 94412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLfloat", true, true), 95412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.FloatBuffer", true, false)); 96412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLint", false, true), 97412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 98412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLint", true, true), 99412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 10050d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich typeMapping.put(new CType("GLsizei", false, true), 10150d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich new JType("java.nio.IntBuffer", true, false)); 102412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLuint", false, true), 103412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 104412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLuint", true, true), 105412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.IntBuffer", true, false)); 106412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich typeMapping.put(new CType("GLshort", true, true), 107412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich new JType("java.nio.ShortBuffer", true, false)); 10868fc8bbced285a8a2b716e5fe1900968ad8ba7d3Jesse Hall typeMapping.put(new CType("GLint64", false, true), 10968fc8bbced285a8a2b716e5fe1900968ad8ba7d3Jesse Hall new JType("java.nio.LongBuffer", true, false)); 110412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 111412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich // Typed pointers map to arrays + offsets 11250d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("char", false, true), 11350d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich new JType("byte", false, true)); 114412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLboolean", false, true), 11566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer new JType("boolean", false, true)); 11650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("GLenum", false, true), new JType("int", false, true)); 1170eb6ad563825b97aec760a893db0eead10fe0ae6Jesse Hall arrayTypeMapping.put(new CType("GLenum", true, true), new JType("int", false, true)); 118412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfixed", true, true), new JType("int", false, true)); 119412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfixed", false, true), new JType("int", false, true)); 120412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfloat", false, true), new JType("float", false, true)); 121412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLfloat", true, true), new JType("float", false, true)); 122412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLint", false, true), new JType("int", false, true)); 123412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLint", true, true), new JType("int", false, true)); 124412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLshort", true, true), new JType("short", false, true)); 12550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("GLsizei", false, true), new JType("int", false, true)); 12650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich arrayTypeMapping.put(new CType("GLsizei", true, true), new JType("int", false, true)); 127412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLuint", false, true), new JType("int", false, true)); 128412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLuint", true, true), new JType("int", false, true)); 129412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLintptr"), new JType("int", false, true)); 130412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich arrayTypeMapping.put(new CType("GLsizeiptr"), new JType("int", false, true)); 13168fc8bbced285a8a2b716e5fe1900968ad8ba7d3Jesse Hall arrayTypeMapping.put(new CType("GLint64", false, true), new JType("long", false, true)); 13266a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 13366a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer //EGL typed pointers map to arrays + offsets 13466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLint", false, true), new JType("int", false, true)); 13566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLint", true, true), new JType("int", false, true)); 13666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLConfig", false, true), new JType("EGLConfig", true, true)); 13766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer arrayTypeMapping.put(new CType("EGLConfig", true, true), new JType("EGLConfig", true, true)); 13866a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 139412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 140412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 141412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public JType() { 142412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 143412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 144412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public JType(String primitiveTypeName) { 145412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.baseType = primitiveTypeName; 146412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isClass = false; 147412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isArray = false; 148412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 149412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 150412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public JType(String primitiveTypeName, boolean isClass, boolean isArray) { 151412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.baseType = primitiveTypeName; 152412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isClass = isClass; 153412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich this.isArray = isArray; 154412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 155412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 156412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public String getBaseType() { 157412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType; 158412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 159412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 160412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich @Override 161412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public String toString() { 162412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType + (isArray ? "[]" : ""); 163412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 164412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 165412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isArray() { 166412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return isArray; 167412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 168412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 169412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isClass() { 170412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return isClass; 171412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 172412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 17350d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich public boolean isString() { 17450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich return baseType.equals("String"); 17550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich } 17650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich 177412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isPrimitive() { 178412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return !isClass() && !isArray(); 179412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 180412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 181412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isVoid() { 182412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType.equals("void"); 183412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 184412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 185412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isBuffer() { 186412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return baseType.indexOf("Buffer") != -1; 187412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 188412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 189412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public boolean isTypedBuffer() { 190412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return !baseType.equals("java.nio.Buffer") && 191412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich (baseType.indexOf("Buffer") != -1); 192412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 193412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich 19466a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer public boolean isEGLHandle() { 19566a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer return !isPrimitive() && 19666a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer (baseType.startsWith("EGL")); 19766a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer } 19866a42db8cbfba902f72f0ace5ac448ef4bfd3951Thomas Tafertshofer 199412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich public static JType convert(CType ctype, boolean useArray) { 200412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich JType javaType = null; 201412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich if (useArray) { 202412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich javaType = arrayTypeMapping.get(ctype); 203412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 204412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich if (javaType == null) { 205412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich javaType = typeMapping.get(ctype); 206412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 207412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich if (javaType == null) { 208412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich throw new RuntimeException("Unsupported C type: " + ctype); 209412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 210412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich return javaType; 211412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich } 212412f38f270b71bbc3214362eb58687cbf26d6df2Jack Palevich} 213