summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java')
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java204
1 files changed, 0 insertions, 204 deletions
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java
deleted file mode 100644
index 0708c169a8..0000000000
--- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java
+++ /dev/null
@@ -1,204 +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 java.lang.reflect.Modifier;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jdt.core.dom.Javadoc;
-import org.eclipse.jdt.core.dom.MethodDeclaration;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.TagElement;
-
-public class ASTMethod extends ASTItem implements JNIMethod {
- String name, qualifiedName;
- int modifiers;
- ASTClass declaringClass;
- ASTType[] paramTypes, paramTypes64;
- ASTType returnType, returnType64;
- ASTParameter[] parameters;
- Boolean unique;
- String data;
- int start;
-
-public ASTMethod(ASTClass declaringClass, String source, MethodDeclaration method) {
- this.declaringClass = declaringClass;
-
- name = method.getName().getIdentifier();
- modifiers = method.getModifiers();
- start = method.getStartPosition();
-
- Javadoc doc = method.getJavadoc();
- List tags = null;
- if (doc != null) {
- tags = doc.tags();
- for (Iterator iterator = tags.iterator(); iterator.hasNext();) {
- TagElement tag = (TagElement) iterator.next();
- if ("@method".equals(tag.getTagName())) {
- String data = tag.fragments().get(0).toString();
- setMetaData(data);
- break;
- }
- }
- }
- returnType = new ASTType(declaringClass.resolver, method.getReturnType2(), method.getExtraDimensions());
- returnType64 = returnType;
- if (GEN64) {
- String s = source.substring(method.getReturnType2().getStartPosition(), method.getName().getStartPosition());
- if (returnType.isType("int") && s.indexOf("int /*long*/") != -1) returnType64 = new ASTType("J");
- else if (returnType.isType("float") && s.indexOf("float /*double*/") != -1) returnType64 = new ASTType("D");
- else if (returnType.isType("[I") && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) returnType64 = new ASTType("[J");
- else if (returnType.isType("[F") && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) returnType64 = new ASTType("[D");
- else if (returnType.isType("long") && s.indexOf("long /*int*/") != -1) returnType = new ASTType("I");
- else if (returnType.isType("double") && s.indexOf("double /*float*/") != -1) returnType = new ASTType("F");
- else if (returnType.isType("[J") && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) returnType = new ASTType("[I");
- else if (returnType.isType("[D") && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) returnType = new ASTType("[F");
- }
-
- List parameters = method.parameters();
- paramTypes = new ASTType[parameters.size()];
- paramTypes64 = new ASTType[parameters.size()];
- this.parameters = new ASTParameter[paramTypes.length];
- int i = 0;
- for (Iterator iterator = parameters.iterator(); iterator.hasNext(); i++) {
- SingleVariableDeclaration param = (SingleVariableDeclaration) iterator.next();
- paramTypes[i] = new ASTType(declaringClass.resolver, param.getType(), param.getExtraDimensions());
- paramTypes64[i] = paramTypes[i];
- this.parameters[i] = new ASTParameter(this, i, param.getName().getIdentifier());
- if (GEN64) {
- String s = source.substring(param.getStartPosition(), param.getStartPosition() + param.getLength());
- if (paramTypes[i].isType("int") && s.indexOf("int /*long*/") != -1) paramTypes64[i] = new ASTType("J");
- else if (paramTypes[i].isType("float") && s.indexOf("float /*double*/") != -1) paramTypes64[i] = new ASTType("D");
- else if (paramTypes[i].isType("[I") && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) paramTypes64[i] = new ASTType("[J");
- else if (paramTypes[i].isType("[F") && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) paramTypes64[i] = new ASTType("[D");
- else if (paramTypes[i].isType("long") && s.indexOf("long /*int*/") != -1) paramTypes[i] = new ASTType("I");
- else if (paramTypes[i].isType("double") && s.indexOf("double /*float*/") != -1) paramTypes[i] = new ASTType("F");
- else if (paramTypes[i].isType("[J") && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) paramTypes[i] = new ASTType("[I");
- else if (paramTypes[i].isType("[D") && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) paramTypes[i] = new ASTType("[F");
- }
- if (tags != null) {
- String name = param.getName().getIdentifier();
- for (Iterator iterator1 = tags.iterator(); iterator1.hasNext();) {
- TagElement tag = (TagElement) iterator1.next();
- if ("@param".equals(tag.getTagName())) {
- List fragments = tag.fragments();
- if (name.equals(fragments.get(0).toString())) {
- String data = fragments.get(1).toString();
- this.parameters[i].setMetaData(data);
- }
- }
- }
- }
- }
-}
-
-public JNIClass getDeclaringClass() {
- return declaringClass;
-}
-
-public int getModifiers() {
- return modifiers;
-}
-
-public String getName() {
- return name;
-}
-
-public boolean isNativeUnique() {
- if (unique != null) return unique.booleanValue();
- boolean result = true;
- String name = getName();
- JNIMethod[] methods = declaringClass.getDeclaredMethods();
- for (int i = 0; i < methods.length; i++) {
- JNIMethod mth = methods[i];
- if ((mth.getModifiers() & Modifier.NATIVE) != 0 &&
- this != mth && !this.equals(mth) &&
- name.equals(mth.getName()))
- {
- result = false;
- break;
- }
- }
- unique = new Boolean(result);
- return result;
-}
-
-public JNIType[] getParameterTypes() {
- return paramTypes;
-}
-
-public JNIType[] getParameterTypes64() {
- return paramTypes64;
-}
-
-public JNIParameter[] getParameters() {
- return this.parameters;
-}
-
-public JNIType getReturnType() {
- return returnType;
-}
-
-public JNIType getReturnType64() {
- return returnType64;
-}
-
-public String getAccessor() {
- return (String)getParam("accessor");
-}
-
-public String getExclude() {
- return (String)getParam("exclude");
-}
-
-public String getMetaData() {
- if (data != null) return data;
- String className = getDeclaringClass().getSimpleName();
- String key = className + "_" + JNIGenerator.getFunctionName(this);
- MetaData metaData = declaringClass.metaData;
- String value = metaData.getMetaData(key, null);
- if (value == null) {
- key = className + "_" + getName();
- value = metaData.getMetaData(key, null);
- }
- /*
- * Support for lock.
- */
- if (value == null && getName().startsWith("_")) {
- key = className + "_" + JNIGenerator.getFunctionName(this).substring(2);
- value = metaData.getMetaData(key, null);
- if (value == null) {
- key = className + "_" + getName().substring(1);
- value = metaData.getMetaData(key, null);
- }
- }
- if (value == null) value = "";
- return value;
-}
-
-public void setAccessor(String str) {
- setParam("accessor", str);
-}
-
-public void setExclude(String str) {
- setParam("exclude", str);
-}
-
-public void setMetaData(String value) {
- data = value;
-}
-
-public String toString() {
- return getName();
-}
-
-}