diff options
Diffstat (limited to 'bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java')
-rw-r--r-- | bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java deleted file mode 100644 index a98ac50d91..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import org.eclipse.jdt.core.dom.ArrayType; -import org.eclipse.jdt.core.dom.Type; - -public class ASTType implements JNIType { - - static interface TypeResolver { - public String findPath(String simpleName); - public String resolve(String simpleName); - } - - String name; - -public ASTType(String name) { - this.name = name; -} - -public ASTType(TypeResolver resolver, Type type, int extraDimensions) { - name = from(resolver, type, extraDimensions); -} - -String from(TypeResolver resolver, Type type, int extraDimensions) { - String name = ""; - String str = type.toString(); - if (type.isPrimitiveType()) { - if (str.equals("void")) name = "V"; - else if (str.equals("int")) name = "I"; - else if (str.equals("boolean")) name = "Z"; - else if (str.equals("long")) name = "J"; - else if (str.equals("short")) name = "S"; - else if (str.equals("char")) name = "C"; - else if (str.equals("byte")) name = "B"; - else if (str.equals("float")) name = "F"; - else if (str.equals("double")) name = "D"; - } else if (type.isArrayType()) { - ArrayType arrayType = (ArrayType)type; - name = from(resolver, arrayType.getElementType(), arrayType.getDimensions()); - } else if (str.indexOf('.') != -1) { - name = "L" + type.toString().replace('.', '/') + ";"; - } else if (str.equals("String")){ - name = "Ljava/lang/String;"; - } else if (str.equals("Class")){ - name = "Ljava/lang/Class;"; - } else if (str.equals("Object")){ - name = "Ljava/lang/Object;"; - } else { - String qualifiedName = resolver != null ? resolver.resolve(str) : str; - name = "L" + qualifiedName.replace('.', '/') + ";"; - } - for (int i = 0; i < extraDimensions; i++) { - name = "[" + name; - } - return name; -} - -public boolean equals(Object obj) { - if (obj == this) return true; - if (!(obj instanceof ASTType)) return false; - return ((ASTType)obj).name.equals(name); -} - -public JNIType getComponentType() { - if (!name.startsWith("[")) throw new RuntimeException(); - return new ASTType(name.substring(1)); -} - -public String getName() { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return "int"; - if (name.equals("Z")) return "boolean"; - if (name.equals("J")) return "long"; - if (name.equals("S")) return "short"; - if (name.equals("C")) return "char"; - if (name.equals("B")) return "byte"; - if (name.equals("F")) return "float"; - if (name.equals("D")) return "double"; - } - if (isArray()) return name; - return name.substring(1, name.length() - 1).replace('/', '.'); -} - -public String getSimpleName() { - String name = getName(); - if (isArray() || isPrimitive()) return name; - int index = name.lastIndexOf('.') + 1; - return name.substring(index, name.length()); -} - -public String getTypeSignature(boolean define) { - if (isPrimitive()) { - if (define) { - if (name.equals("I")) return "I_J"; - if (name.equals("J")) return "I_J"; - if (name.equals("F")) return "F_D"; - if (name.equals("D")) return "F_D"; - } - return name; - } - if (isArray()) { - if (define) return getComponentType().getTypeSignature(define) + "Array"; - return "[" + getComponentType().getTypeSignature(define); - } - return name; -} - -public String getTypeSignature1(boolean define) { - if (isPrimitive()) { - if (name.equals("V")) return "Void"; - if (name.equals("I")) return define ? "IntLong" : "Int"; - if (name.equals("Z")) return "Boolean"; - if (name.equals("J")) return define ? "IntLong" : "Long"; - if (name.equals("S")) return "Short"; - if (name.equals("C")) return "Char"; - if (name.equals("B")) return "Byte"; - if (name.equals("F")) return define ? "FloatDouble" : "Float"; - if (name.equals("D")) return define ? "FloatDouble" : "Double"; - } - if (name.equals("Ljava/lang/String;")) return "String"; - return "Object"; -} - -public String getTypeSignature2(boolean define) { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return define ? "jintLong" : "jint"; - if (name.equals("Z")) return "jboolean"; - if (name.equals("J")) return define ? "jintLong" : "jlong"; - if (name.equals("S")) return "jshort"; - if (name.equals("C")) return "jchar"; - if (name.equals("B")) return "jbyte"; - if (name.equals("F")) return define ? "jfloatDouble" : "jfloat"; - if (name.equals("D")) return define ? "jfloatDouble" : "jdouble"; - } - if (name.equals("Ljava/lang/String;")) return "jstring"; - if (name.equals("Ljava/lang/Class;")) return "jclass"; - if (isArray()) { - return getComponentType().getTypeSignature2(define) + "Array"; - } - return "jobject"; -} - -public String getTypeSignature3(boolean define) { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return "int"; - if (name.equals("Z")) return "boolean"; - if (name.equals("J")) return "long"; - if (name.equals("S")) return "short"; - if (name.equals("C")) return "char"; - if (name.equals("B")) return "byte"; - if (name.equals("F")) return "float"; - if (name.equals("D")) return "double"; - } - if (name.equals("Ljava/lang/String;")) return "String"; - if (isArray()) { - return getComponentType().getTypeSignature3(define) + "[]"; - } - return getName(); -} - -public String getTypeSignature4(boolean define, boolean struct) { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return define ? "jintLong" : "jint"; - if (name.equals("Z")) return "jboolean"; - if (name.equals("J")) return define ? "jintLong" : "jlong"; - if (name.equals("S")) return "jshort"; - if (name.equals("C")) return "jchar"; - if (name.equals("B")) return "jbyte"; - if (name.equals("F")) return define ? "jfloatDouble" : "jfloat"; - if (name.equals("D")) return define ? "jfloatDouble" : "jdouble"; - } - if (name.equals("Ljava/lang/String;")) return "jstring"; - if (isArray()) { - String sig = getComponentType().getTypeSignature4(define, struct); - return struct ? sig : sig + " *"; - } - String sig = getSimpleName(); - return struct ? sig : sig + " *"; -} - -public int hashCode() { - return name.hashCode(); -} - -public boolean isArray() { - return name.startsWith("["); -} - -public boolean isPrimitive() { - return !name.startsWith("L") && !name.startsWith("["); -} - -public boolean isType(String type) { - return getName().equals(type); -} - -public String toString() { - return name; -} - -} |