| /******************************************************************************* |
| * Copyright (c) 2005 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.jem.java.adapters; |
| |
| import org.eclipse.emf.ecore.EClassifier; |
| import org.eclipse.emf.ecore.EObject; |
| |
| import org.eclipse.jem.java.*; |
| |
| public interface IJavaReflectionKey { |
| |
| /* Constants for the primitive type names |
| * These are the values which are used to refer to a primitive type, |
| * i.e. new JavaURL("int") or new URL("java://#int") |
| * These types are cached by pre-loading documents for the primitives, |
| * in "java://", and for the java.lang (Object and String) classes |
| */ |
| static final public String N_VOID = "void"; //$NON-NLS-1$ |
| static final public String N_INT = "int";//$NON-NLS-1$ |
| static final public String N_BOOLEAN = "boolean";//$NON-NLS-1$ |
| static final public String N_CHAR = "char";//$NON-NLS-1$ |
| static final public String N_BYTE = "byte";//$NON-NLS-1$ |
| static final public String N_LONG = "long";//$NON-NLS-1$ |
| static final public String N_FLOAT = "float";//$NON-NLS-1$ |
| static final public String N_DOUBLE = "double";//$NON-NLS-1$ |
| static final public String N_SHORT = "short";//$NON-NLS-1$ |
| |
| /* |
| * Create an ArrayType instance in the current document |
| * Handles the push and pop of the current document. |
| */ |
| public abstract ArrayType createArrayType(); |
| |
| /* |
| * Create a JavaClass instance in the current document |
| * Handles the push and pop of the current document. |
| */ |
| public abstract JavaClass createJavaClass(); |
| |
| /* |
| * Create a Field instance in the current document |
| * Handles the push and pop of the current document. |
| */ |
| public abstract Field createJavaField(); |
| |
| /* |
| * Create a Method instance in the current document |
| * Handles the push and pop of the current document. |
| */ |
| public abstract Method createJavaMethod(); |
| |
| /* |
| * Create a JavaParameter instance in the current document |
| */ |
| public abstract JavaParameter createJavaParameter(); |
| |
| //FB/** |
| //FB * Override to try to introspect objects |
| //FB * that aren't found using the default mechanism. |
| //FB */ |
| //FBpublic Object get(Object key) { |
| //FB Object javaObject = super.get(key); |
| //FB if (javaObject == null) { |
| //FB javaObject = getObjectFromExtensions((String) key); |
| //FB if (javaObject == null) |
| //FB javaObject = getJavaObject((String) key); |
| //FB } |
| //FB return javaObject; |
| //FB} |
| |
| //FB ADDED |
| public abstract Object get(String key); |
| |
| //FB END |
| |
| /* |
| * Instantiate the named class. |
| * If we make it to this point, the class has not yet been instantiated or reflected. |
| */ |
| public abstract EClassifier getArrayType(String typeName); |
| |
| /* |
| * Instantiate the named class. |
| * If we make it to this point, teh class has not yet been instantiated or reflected. |
| */ |
| public abstract EClassifier getJavaClass(String typeName); |
| |
| /** |
| * This allows for the retrieval of attributes/methods with the following notation: |
| * field: java:/com.ibm.foo#Test.foo |
| * method: java:/com.ibm.foo#Test.foofoo( |
| * parameter: java:/com.ibm.foo#Test.foofoo(-arg0 |
| * |
| */ |
| public abstract EObject getJavaObject(String keyValue); |
| |
| /** |
| * Insert the method's description here. |
| * Creation date: (10/4/2000 9:52:28 AM) |
| * @return org.eclipse.emf.ecore.EClassifier |
| * @param typeName java.lang.String |
| */ |
| public abstract EClassifier getJavaType(String typeName); |
| |
| /** |
| * Get the object from the key but don't do any |
| * tries at creation of the key if not found. |
| * The Key must be an ID for it to be found. |
| */ |
| public abstract Object primGet(String key); |
| |
| /** |
| * Return true if the passed type represents a Java Array type |
| */ |
| public abstract boolean isArray(String typeName); |
| |
| } |