Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java')
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java1949
1 files changed, 0 insertions, 1949 deletions
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java
deleted file mode 100644
index e2040fda8..000000000
--- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java
+++ /dev/null
@@ -1,1949 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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
- *******************************************************************************/
-/*
- * $RCSfile: JavaClassImpl.java,v $
- * $Revision: 1.4 $ $Date: 2006/05/17 20:13:07 $
- */
-package org.eclipse.jem.java.internal.impl;
-
-import java.util.Collection;
-import java.util.List;
-
-import java.util.*;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.ECollections;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.EClassImpl;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.jem.java.*;
-
-import org.eclipse.emf.ecore.*;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.*;
-
-import org.eclipse.jem.internal.java.adapters.*;
-import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter;
-import org.eclipse.jem.internal.java.instantiation.IInstantiationInstance;
-
-/**
- * <!-- begin-user-doc -->
- *
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getKind <em>Kind</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#isPublic <em>Public</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#isFinal <em>Final</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getImplementsInterfaces <em>Implements Interfaces</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getClassImport <em>Class Import</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getPackageImports <em>Package Imports</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getFields <em>Fields</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getMethods <em>Methods</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getInitializers <em>Initializers</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getDeclaredClasses <em>Declared Classes</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getDeclaringClass <em>Declaring Class</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getJavaPackage <em>Java Package</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getEvents <em>Events</em>}</li>
- * <li>{@link org.eclipse.jem.java.internal.impl.JavaClassImpl#getAllEvents <em>All Events</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class JavaClassImpl extends EClassImpl implements JavaClass {
-
- /**
- * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getKind()
- * @generated
- * @ordered
- */
- protected static final TypeKind KIND_EDEFAULT = TypeKind.UNDEFINED_LITERAL;
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- /**
- * @generated This field/method will be replaced during code generation.
- */
- protected TypeKind kind = KIND_EDEFAULT;
-
- /**
- * The default value of the '{@link #isPublic() <em>Public</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #isPublic()
- * @generated
- * @ordered
- */
- protected static final boolean PUBLIC_EDEFAULT = false;
-
- /**
- * The flag representing the value of the '{@link #isPublic() <em>Public</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #isPublic()
- * @generated
- * @ordered
- */
- protected static final int PUBLIC_EFLAG = 1 << 10;
-
- /**
- * The default value of the '{@link #isFinal() <em>Final</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #isFinal()
- * @generated
- * @ordered
- */
- protected static final boolean FINAL_EDEFAULT = false;
-
- /**
- * The flag representing the value of the '{@link #isFinal() <em>Final</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #isFinal()
- * @generated
- * @ordered
- */
- protected static final int FINAL_EFLAG = 1 << 11;
-
- /**
- * The cached value of the '{@link #getImplementsInterfaces() <em>Implements Interfaces</em>}' reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getImplementsInterfaces()
- * @generated
- * @ordered
- */
- protected EList implementsInterfaces = null;
-
- /**
- * The cached value of the '{@link #getClassImport() <em>Class Import</em>}' reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getClassImport()
- * @generated
- * @ordered
- */
- protected EList classImport = null;
-
- /**
- * The cached value of the '{@link #getPackageImports() <em>Package Imports</em>}' reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getPackageImports()
- * @generated
- * @ordered
- */
- protected EList packageImports = null;
-
- /**
- * The cached value of the '{@link #getFields() <em>Fields</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getFields()
- * @generated
- * @ordered
- */
- protected EList fields = null;
-
- /**
- * The cached value of the '{@link #getMethods() <em>Methods</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getMethods()
- * @generated
- * @ordered
- */
- protected EList methods = null;
-
- /**
- * The cached value of the '{@link #getInitializers() <em>Initializers</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getInitializers()
- * @generated
- * @ordered
- */
- protected EList initializers = null;
-
- /**
- * The cached value of the '{@link #getDeclaredClasses() <em>Declared Classes</em>}' reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getDeclaredClasses()
- * @generated
- * @ordered
- */
- protected EList declaredClasses = null;
-
- /**
- * The cached value of the '{@link #getDeclaringClass() <em>Declaring Class</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getDeclaringClass()
- * @generated
- * @ordered
- */
- protected JavaClass declaringClass = null;
-
- /**
- * The cached value of the '{@link #getEvents() <em>Events</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getEvents()
- * @generated
- * @ordered
- */
- protected EList events = null;
-
- protected JavaClassImpl() {
- super();
- }
-
- public EList getEAnnotationsInternal() {
- return super.getEAnnotations();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected EClass eStaticClass() {
- return JavaRefPackage.eINSTANCE.getJavaClass();
- }
-
- /**
- * Protected helper methods.
- */
- protected void collectFieldsExtended(List fields) {
- fields.addAll(getFields());
- Iterator it;
- it = getExtendedLookupIterator();
- while (it.hasNext())
- ((JavaClassImpl) it.next()).collectFieldsExtended(fields);
- }
-
- protected void collectMethodsExtended(Map methods, boolean onlyPublic, List excludedClasses, List excludedMethods) {
- Iterator it1, it2;
- it2 = getExtendedLookupIterator();
- JavaClassImpl javaClass;
- while (it2.hasNext()) {
- javaClass = (JavaClassImpl) it2.next();
- if (!excludedClasses.contains(javaClass))
- javaClass.collectMethodsExtended(methods, onlyPublic, excludedClasses, excludedMethods);
- }
- it1 = onlyPublic ? getPublicMethods().iterator() : getMethods().iterator();
- Method nextMethod;
- while (it1.hasNext()) {
- nextMethod = (Method) it1.next();
- if (!excludedMethods.contains(nextMethod))
- methods.put(nextMethod.getMethodElementSignature(), nextMethod);
- }
- }
-
- /**
- * createClassRef - return a JavaURL reference to the named Java class
- *
- * @deprecated @see org.eclipse.jem.java.JavaRefFactory#createClassRef(java.lang.String)
- */
- public static JavaClass createClassRef(String targetName) {
- return JavaRefFactory.eINSTANCE.createClassRef(targetName);
- }
-
- /**
- * Get the method of this name and these parameters. It will look up the supertype hierarchy.
- */
- protected Method findClassMethodExtended(String methodName, List parameterTypes) {
- Method method = getMethod(methodName, parameterTypes);
- if (method != null)
- return method;
- else {
- JavaClassImpl mySuper;
- mySuper = (JavaClassImpl) getSupertype();
- if (mySuper != null)
- return mySuper.findClassMethodExtended(methodName, parameterTypes);
- }
- return null;
- }
-
- /**
- * Get the method of this name and these parameters. It will look up the supertype hierarchy.
- */
- protected Method findInterfaceMethodExtended(String methodName, List parameterTypes) {
- Method method = getMethod(methodName, parameterTypes);
- if (method != null)
- return method;
- else {
- JavaClassImpl superInterface;
- List list = getImplementsInterfaces();
- for (int i = 0; i < list.size(); i++) {
- superInterface = (JavaClassImpl) list.get(i);
- method = superInterface.findInterfaceMethodExtended(methodName, parameterTypes);
- if (method != null)
- return method;
- }
- }
- return null;
- }
-
- /**
- *
- * @return
- * @deprecated If anyone is referencing this, please use getEAllSuperTypes() instead. This was placed here and misspelled by mistake.
- */
- public EList getAllSupertypes() {
- getESuperTypes(); //Force reflection, if needed, before getting all supertypes.
- return super.getEAllSuperTypes();
- }
-
- /**
- * Overrides to perform reflection if necessary
- */
- public EList getClassImport() {
- reflectBase();
- return getClassImportGen();
- }
-
- public EList getEAllOperations() {
- IIntrospectionAdapter ia = getIntrospectionAdapter();
- if (ia == null)
- return super.getEAllOperations(); // No introspection, do normal.
- if (eAllOperations == null)
- eAllOperations = ia.getEAllOperations();
- return eAllOperations;
- }
-
- /**
- * This is not meant to be used by others. It is here so that BeanInfo adapter can access
- * un-introspected all operations.
- * @return
- *
- * @since 1.1.0
- */
- public EList primGetEAllOperations() {
- return super.getEAllOperations();
- }
-
- public EList getEOperations() {
- IIntrospectionAdapter adapter = getIntrospectionAdapter();
- if (adapter != null)
- return adapter.getEOperations();
- return super.getEOperations();
- }
-
- /**
- * This method is not meant to be used by others. It is here so that BeanInfo adapters can go to
- * the non-introspected operations.
- * @return
- *
- * @since 1.1.0
- */
- public EList getEOperationsInternal() {
- // An internal method for returning actual wo fluffing up.
- return super.getEOperations();
- }
-
- public EList getEAnnotations() {
- IIntrospectionAdapter adapter = getIntrospectionAdapter();
- if (adapter != null)
- adapter.introspectIfNecessary(); // To cause introspection so the appropriate decorator is added.
- return super.getEAnnotations();
- }
-
- public EList getEStructuralFeatures() {
- IIntrospectionAdapter adapter = getIntrospectionAdapter();
- if (adapter != null)
- return adapter.getEStructuralFeatures();
- return super.getEStructuralFeatures();
- }
-
- public EList getEStructuralFeaturesInternal() {
- // An internal method for returning actual wo fluffing up.
- return super.getEStructuralFeatures();
- }
-
- /**
- * Return an Iterator on the implemntsInferface List if this is an interface class or on the super List if it is a class.
- */
- protected Iterator getExtendedLookupIterator() {
- if (isInterface())
- return getImplementsInterfaces().iterator();
- else
- return getESuperTypes().iterator();
- }
-
- /**
- * Return an Field with the passed name, or null.
- */
- public Field getField(String fieldName) {
- java.util.List fields = getFields();
- Field field;
- for (int i = 0; i < fields.size(); i++) {
- field = (Field) fields.get(i);
- if (field.getName().equals(fieldName))
- return field;
- }
- return null;
- }
-
- /**
- * Return an Field with the passed name from this JavaClass or any supertypes.
- *
- * Return null if a Field named fieldName is not found.
- */
- public Field getFieldExtended(String fieldName) {
- Field field = getFieldNamed(fieldName);
- if (field != null)
- return field;
- Iterator it = getExtendedLookupIterator();
- while (it.hasNext()) {
- Field result = ((JavaClass) it.next()).getFieldExtended(fieldName);
- if (result != null)
- return result;
- }
- return null;
- }
-
- /**
- * Return an Field with the passed name, or null.
- */
- public Field getFieldNamed(String fieldName) {
- return getField(fieldName);
- }
-
- public EList getFields() {
- reflectFields();
- return getFieldsGen();
- }
-
- /**
- * Return all fields, including those from supertypes.
- */
- public List getFieldsExtended() {
- List fields = new ArrayList();
- collectFieldsExtended(fields);
- return fields;
- }
-
- public EList getImplementsInterfaces() {
- reflectBase();
- return getImplementsInterfacesGen();
- }
-
- /**
- * Return an IntrospectionAdaptor which can introspect our Java properties
- */
- protected synchronized IIntrospectionAdapter getIntrospectionAdapter() {
- // Need to sync this because we are now in multi-thread env.
- return (IIntrospectionAdapter) EcoreUtil.getRegisteredAdapter(this, IIntrospectionAdapter.ADAPTER_KEY);
- }
-
- public String getJavaName() {
- return getQualifiedName();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jem.java.JavaHelpers#getSimpleName()
- */
- public String getSimpleName() {
- return primGetName().replace('$', '.');
- }
- /**
- * getJavaPackage. This is a derived relationship, so we must implement it here to get the EPackage that this object is contained in.
- */
- public JavaPackage getJavaPackage() {
- return (JavaPackage) getEPackage();
- }
-
- /**
- * Get the method of this name and these parameters. It will not look up the supertype hierarchy.
- */
- public Method getMethod(String methodName, List parameterTypes) {
- return getMethod(methodName, parameterTypes, getMethods());
- }
-
- protected Method getMethod(String name, List parameterTypes, List methodList) {
- boolean found = false;
- Method method;
- for (int i = 0; i < methodList.size(); i++) {
- method = (Method) methodList.get(i);
- JavaParameter[] params;
- if (method.getName().equals(name)) {
- params = method.listParametersWithoutReturn();
- if (params.length == parameterTypes.size()) {
- found = true; //Maybe; we need more info
- for (int j = 0; j < params.length; j++) {
- //if any one of the parameters doesn't match then flip back to false
- JavaHelpers jh = (JavaHelpers) params[j].getEType();
- if (!jh.getQualifiedName().equals(parameterTypes.get(j))) {
- found = false;
- break;
- } // end if params equal
- } // end compare all params
- if (found) //short circuit out of this loop and return the winner
- return method;
- } // end compare lengths
- } // end compare names
- } // end loop through all methodList
- return null;
- }
-
- /**
- * Return a List of Strings that represent MethodElement signatures from most general to most specific.
- */
- public List getMethodElementSignatures() {
- List methods, signatures, sameNames;
- methods = getMethodsExtended();
- sameNames = new ArrayList();
- signatures = new ArrayList(methods.size() + 1);
- signatures.add(DEFAULT_METHOD_NAME);
- Iterator it = methods.iterator();
- Method aMethod;
- String methodName;
- while (it.hasNext()) {
- aMethod = (Method) it.next();
- methodName = aMethod.getName();
- if (sameNames.contains(methodName)) {
- if (!signatures.contains(methodName))
- signatures.add(methodName);
- } else
- sameNames.add(methodName);
- signatures.add(aMethod.getMethodElementSignature());
- }
- Collections.sort(signatures);
- return signatures;
- }
-
- /**
- * Get the method of this name and these parameters. It will look up the supertype hierarchy.
- */
- public Method getMethodExtended(String methodName, List parameterTypes) {
- if (isInterface())
- return findInterfaceMethodExtended(methodName, parameterTypes);
- else
- return findClassMethodExtended(methodName, parameterTypes);
- }
-
- public EList getMethods() {
- reflectMethods();
- return getMethodsGen();
- }
-
- /**
- * Return all methods, including those from supertypes.
- */
- public List getMethodsExtended() {
- Map methods = new HashMap();
- collectMethodsExtended(methods, false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
- return new ArrayList(methods.values());
- }
-
- /*
- * @see getMethodsExtendedWithFilters(List, List) on JavaClass.
- */
- public List getMethodsExtendedWithFilters(List excludedClasses, List excludedMethods) {
- Map methods = new HashMap();
- collectMethodsExtended(methods, false, excludedClasses, excludedMethods);
- return new ArrayList(methods.values());
- }
-
- public String getName() {
- String result = this.primGetName();
- if (result == null && eIsProxy()) {
- return JavaRefFactory.eINSTANCE.getTypeName(eProxyURI());
- }
- return result;
- }
-
- /**
- * Return a List of Methods that begins with @aMethodNamePrefix and is not included in the @excludedNames list. If @aMethodNamePrefix is null, all methods will be returned.
-
- */
- public List getOnlySpecificMethods(String aMethodNamePrefix, List excludedNames) {
- List methods, specific;
- methods = getMethodsExtended();
- specific = new ArrayList(methods.size());
- Iterator it = methods.iterator();
- Method aMethod;
- String methodName;
- while (it.hasNext()) {
- aMethod = (Method) it.next();
- methodName = aMethod.getName();
- if (aMethodNamePrefix != null && methodName.startsWith(aMethodNamePrefix) && excludedNames != null && !excludedNames.contains(methodName))
- specific.add(aMethod);
- }
- return specific;
- }
-
- public EList getPackageImports() {
- reflectBase();
- return getPackageImportsGen();
- }
-
- /**
- * getPrimitive method comment.
- */
- public JavaDataType getPrimitive() {
- String primitiveName = getPrimitiveName();
- if (primitiveName != null) {
- Resource res = eResource();
- return (JavaDataType) JavaClassImpl.reflect(primitiveName, res.getResourceSet());
- }
- return null;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.java.JavaHelpers#getPrimitiveID()
- */
- public int getPrimitiveID() {
- String myName = getQualifiedName();
- if (myName.equals(INTEGER_NAME))
- return PRIM_INTEGER_ID;
- if (myName.equals(BOOLEAN_NAME))
- return PRIM_BOOLEAN_ID;
- if (myName.equals(BYTE_NAME))
- return PRIM_BYTE_ID;
- if (myName.equals(SHORT_NAME))
- return PRIM_SHORT_ID;
- if (myName.equals(LONG_NAME))
- return PRIM_LONG_ID;
- if (myName.equals(FLOAT_NAME))
- return PRIM_FLOAT_ID;
- if (myName.equals(DOUBLE_NAME))
- return PRIM_DOUBLE_ID;
- if (myName.equals(CHARACTER_NAME))
- return PRIM_CHARACTER_ID;
- return PRIM_NOT_ID;
- }
-
- /**
- * Return the primitive name for this type if one exists.
- */
- protected String getPrimitiveName() {
- String myName = getQualifiedName();
- if (myName.equals(INTEGER_NAME))
- return PRIM_INTEGER_NAME;
- if (myName.equals(BOOLEAN_NAME))
- return PRIM_BOOLEAN_NAME;
- if (myName.equals(BYTE_NAME))
- return PRIM_BYTE_NAME;
- if (myName.equals(SHORT_NAME))
- return PRIM_SHORT_NAME;
- if (myName.equals(LONG_NAME))
- return PRIM_LONG_NAME;
- if (myName.equals(FLOAT_NAME))
- return PRIM_FLOAT_NAME;
- if (myName.equals(DOUBLE_NAME))
- return PRIM_DOUBLE_NAME;
- if (myName.equals(CHARACTER_NAME))
- return PRIM_CHARACTER_NAME;
- return null;
- }
-
- /**
- * Return a method matching the name, and non-return parameters with fully qualified types matching all the types in the list, if it exists. It
- * will not look up the supertype hierarchy.
- */
- public Method getPublicMethod(String methodName, List parameterTypes) {
- return getMethod(methodName, parameterTypes, getPublicMethods());
- }
-
- /**
- * Return a method matching the name, and non-return parameters with fully qualified types matching all the types in the list, if it exists. It
- * will not look up the supertype hierarchy.
- */
- public Method getPublicMethodExtended(String methodName, List parameterTypes) {
- return getMethod(methodName, parameterTypes, getPublicMethodsExtended());
- }
-
- /**
- * Return all methods, it will not go up the supertype hierarchy.
- */
- public List getPublicMethods() {
- List publicMethods = new ArrayList();
- List theMethods = getMethods();
- for (int i = 0; i < theMethods.size(); i++) {
- Method m = (Method) theMethods.get(i);
- if (JavaVisibilityKind.PUBLIC_LITERAL == m.getJavaVisibility())
- publicMethods.add(m);
- }
- return publicMethods;
- }
-
- /**
- * Return all public methods, including those from supertypes.
- */
- public List getPublicMethodsExtended() {
- Map methods = new HashMap();
- collectMethodsExtended(methods, true, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
- return new ArrayList(methods.values());
- }
-
- /**
- * Returns a filtered list on the methods of this class, having a name equal to that of the parameter.
- */
- public List getPublicMethodsExtendedNamed(String name) {
- List publicMethods = new ArrayList();
- List theMethods = getPublicMethodsExtended();
- for (int i = 0; i < theMethods.size(); i++) {
- Method m = (Method) theMethods.get(i);
- if (m.getName().equals(name))
- publicMethods.add(m);
- }
- return publicMethods;
- }
-
- /**
- * Returns a filtered list on the methods of this class, having a name equal to that of the parameter.
- */
- public List getPublicMethodsNamed(String name) {
- List publicMethods = new ArrayList();
- List theMethods = getPublicMethods();
- for (int i = 0; i < theMethods.size(); i++) {
- Method m = (Method) theMethods.get(i);
- if (m.getName().equals(name))
- publicMethods.add(m);
- }
- return publicMethods;
- }
-
- public String getQualifiedName() {
- String result = null;
- if (eIsProxy()) {
- result = JavaRefFactory.eINSTANCE.getFullTypeName(eProxyURI());
- } else {
- result = primGetQualifiedName();
- }
- if (result != null)
- result = result.replace('$', '.');
- return result;
- }
-
- /**
- * To be used by people that need to get the qualified name used for reflection. Typically bean info would need to use something like this.
- */
- public String getQualifiedNameForReflection() {
- return primGetQualifiedName();
- }
-
- /**
- * Return a ReadAdaptor which can reflect our Java properties
- */
- protected synchronized ReadAdaptor getReadAdapter() {
- // Need to sync because now in a multi-thread env.
- return (ReadAdaptor) EcoreUtil.getRegisteredAdapter(this, ReadAdaptor.TYPE_KEY);
- }
-
- private static final int NOT_REFLECTED = 0x0, REFLECTED_BASE = 0x1, REFLECTED_METHODS = 0x2, REFLECTED_FIELDS = 0x4;
-
- protected int reflectionStatus = NOT_REFLECTED;
-
- protected void reflectBase() {
- // We only want the testing of the hasReflected and get readadapter to be sync(this) so that
- // it is short and no deadlock possibility (this is because the the method reflection adapter may go
- // back to the containing java class to get its reflection adapter, which would lock on itself. So
- // we need to keep the sections that are sync(this) to not be deadlockable by not doing significant work
- // during the sync.
- ReadAdaptor readAdaptor = null;
- synchronized (this) {
- if ((reflectionStatus & REFLECTED_BASE) == 0) {
- readAdaptor = getReadAdapter();
- }
- }
- if (readAdaptor != null) {
- boolean setReflected = readAdaptor.reflectValuesIfNecessary();
- synchronized (this) {
- // Don't want to set it false. That is job of reflection adapter. Otherwise we could have a race.
- if (setReflected)
- reflectionStatus |= REFLECTED_BASE;
- }
- }
- }
-
- protected void reflectFields() {
- // We only want the testing of the hasReflected and get readadapter to be sync(this) so that
- // it is short and no deadlock possibility (this is because the the method reflection adapter may go
- // back to the containing java class to get its reflection adapter, which would lock on itself. So
- // we need to keep the sections that are sync(this) to not be deadlockable by not doing significant work
- // during the sync.
- ReadAdaptor readAdaptor = null;
- synchronized (this) {
- if ((reflectionStatus & REFLECTED_FIELDS) == 0) {
- readAdaptor = getReadAdapter();
- }
- }
- if (readAdaptor != null) {
- boolean setReflected = ((IJavaClassAdaptor) readAdaptor).reflectFieldsIfNecessary();
- synchronized (this) {
- // Don't want to set it false. That is job of reflection adapter. Otherwise we could have a race.
- if (setReflected)
- reflectionStatus |= (REFLECTED_FIELDS | REFLECTED_BASE); // We can be certain base will be done by reflect fields if not already
- // done.
- }
- }
- }
-
- protected void reflectMethods() {
- // We only want the testing of the hasReflected and get readadapter to be sync(this) so that
- // it is short and no deadlock possibility (this is because the the method reflection adapter may go
- // back to the containing java class to get its reflection adapter, which would lock on itself. So
- // we need to keep the sections that are sync(this) to not be deadlockable by not doing significant work
- // during the sync.
- ReadAdaptor readAdaptor = null;
- synchronized (this) {
- if ((reflectionStatus & REFLECTED_METHODS) == 0) {
- readAdaptor = getReadAdapter();
- }
- }
- if (readAdaptor != null) {
- boolean setReflected = ((IJavaClassAdaptor) readAdaptor).reflectMethodsIfNecessary();
- synchronized (this) {
- // Don't want to set it false. That is job of reflection adapter. Otherwise we could have a race.
- if (setReflected)
- reflectionStatus |= (REFLECTED_METHODS | REFLECTED_BASE); // We can be certain base will be done by reflect fields if not already
- // done.
- }
- }
- }
-
- public JavaClass getSupertype() {
- // If this is an interface, there is no supertype. However, the eSuperTypes IS filled in with any interface that this extends.
- if (isInterface())
- return null;
- List list = getESuperTypes();
- return (!list.isEmpty()) ? (JavaClass) list.get(0) : null;
- }
-
- public JavaClass getWrapper() {
- return this;
- }
-
- /**
- * Test whether the receiver implements the passed interface (or one of its supertypes).
- */
- public boolean implementsInterface(JavaClass interfaceType) {
- if (this == interfaceType)
- return true;
- EList implemented = getImplementsInterfaces();
- JavaClass anInterface;
- for (int i = 0; i < implemented.size(); i++) {
- anInterface = (JavaClass) implemented.get(i);
- if (anInterface.implementsInterface(interfaceType))
- return true;
- }
- if (getSupertype() != null)
- return getSupertype().implementsInterface(interfaceType);
- else
- return false;
- }
-
- /**
- * Return a string showing our details.
- */
- public String infoString() {
- StringBuffer out = new StringBuffer();
- // trip class reflection
- //FB this.eGet(JavaRefPackage.eINSTANCE.getJavaClass_Public());
- reflectBase(); //FB
- out.append("Java class: " + getQualifiedName() + "\n");
- out.append(" superclass: " + this.getSupertype() + "\n");
- EList fields = getFields();
- Field field;
- if (fields.size() > 0) {
- out.append(" Fields:\n");
- for (int i = 0; i < fields.size(); i++) {
- field = (Field) fields.get(i);
- out.append(" " + ((JavaHelpers) field.getEType()).getJavaName() + " " + field.getName() + "\n");
- }
- }
- EList methods = getMethods();
- Method method;
- if (methods.size() > 0) {
- out.append(" Methods:\n");
- for (int i = 0; i < methods.size(); i++) {
- method = (Method) methods.get(i);
- // trip method reflection
- method.isStatic();
- if (method.getReturnType() != null)
- out.append(" " + method.getReturnType().getJavaName() + " ");
- else
- out.append(" void ");
- out.append(method.getName() + "(");
- EList parms = method.getParameters();
- JavaParameter parm;
- if (parms.size() > 0) {
- for (int ii = 0; ii < parms.size(); ii++) {
- parm = (JavaParameter) parms.get(ii);
- //FB if (!parm.isReturn()) {
- out.append(((JavaHelpers) parm.getEType()).getJavaName() + " " + parm.getName());
- if (ii < parms.size() - 1)
- out.append(", ");
- //FB }
- }
- }
- out.append(")\n");
- }
- }
- return out.toString();
- }
-
- /**
- * Tests whether this class inherits from the passed in class.
- */
- public boolean inheritsFrom(JavaClass javaClass) {
- if (this == javaClass)
- return true;
- else if (getSupertype() != null)
- return getSupertype().inheritsFrom(javaClass);
- else
- return false;
- }
-
- public boolean isArray() {
- return false;
- }
-
- /**
- * Can an object of the passed in class be assigned to an object of this class. In other words is this class a supertype of the passed in class,
- * or is it superinterface of it.
- */
- public boolean isAssignableFrom(EClassifier aClass) {
- if (aClass instanceof JavaClass) {
- JavaClass theClass = (JavaClass) aClass;
- // If either this class or aClass kind is unknown then it isn't assignableFrom.
- if (getKind() == TypeKind.UNDEFINED_LITERAL || theClass.getKind() == TypeKind.UNDEFINED_LITERAL)
- return false;
- // If the "aClass" is not a JavaClass (i.e. it is either a JavaDatatype or
- // some other kind of MOF classifier), then it cannot be
- // assigned to something of this class.
- if (getKind() != TypeKind.INTERFACE_LITERAL)
- if (theClass.getKind() != TypeKind.INTERFACE_LITERAL)
- return theClass.inheritsFrom(this);
- else {
- // aClass is an interface, so it is assignable only if
- // "this" is "java.lang.Object".
- return getQualifiedName().equals("java.lang.Object");
- }
- else
- return theClass.implementsInterface(this);
- }
- return false;
- }
-
- /**
- * Does this type exist.
- */
- public boolean isExistingType() {
- // TODO: Temporary, inefficient implementation
- return ((JavaReflectionAdaptor) getReadAdapter()).hasReflectionSource();
- }
-
- /**
- * See if this is valid object of this type.
- */
- public boolean isInstance(Object o) {
- return o instanceof IInstantiationInstance ? isAssignableFrom(((IInstantiationInstance) o).getJavaType()) : false;
- }
-
- /**
- * Is this an interface.
- */
- public boolean isInterface() {
- return getKind() == TypeKind.INTERFACE_LITERAL;
- }
-
- public boolean isNested() {
- return getDeclaringClass() != null;
- }
-
- public boolean isPrimitive() {
- return false;
- }
-
- /**
- * Return an array listing our fields, including inherited fields. The field relationship is derived from contents. This implementation depends on
- * the assumption that supertypes above JavaClass will hold Attributes rather than Fields.
- */
- public Field[] listFieldExtended() {
- List fields = getFieldsExtended();
- Field[] result = new Field[fields.size()];
- fields.toArray(result);
- return result;
- }
-
- /**
- * Return an array listing our Methods, including inherited methods. The method relationship is derived from contents. This implementation depends
- * on the assumption that supertypes above JavaClass will hold Operations rather than Methods.
- */
- public Method[] listMethodExtended() {
- java.util.List methods = getMethodsExtended();
- Method[] result = new Method[methods.size()];
- methods.toArray(result);
- return result;
- }
-
- /**
- * This is required for internal reflection do not use.
- */
- public String primGetName() {
- return super.getName();
- }
-
- /**
- * This is required for internal reflection do not use.
- */
- public String primGetQualifiedName() {
- String result = "";
- if (eIsProxy()) {
- result = JavaRefFactory.eINSTANCE.getFullTypeName(eProxyURI());
- } else {
- JavaPackage pack = getJavaPackage();
- if (pack != null && pack.getPackageName().length() != 0)
- result = pack.getPackageName() + "." + ((JavaRefFactoryImpl) JavaRefFactory.eINSTANCE).primGetTypeName(this.primGetName());
- else
- result = this.getName();
- }
- return result;
- }
-
- /**
- * reflect - reflect a JavaClass for a given qualified name. If the package or class does not exist, one will be created through the reflection
- * mechanism. Lookup the JavaClass in the context of the passed object, handling some error cases.
- *
- * @deprecated @see org.eclipse.jem.java.JavaRefFactory#reflectType(java.lang.String, org.eclipse.emf.ecore.EObject)
- *
- */
- public static JavaHelpers reflect(String aQualifiedName, EObject relatedObject) {
- return JavaRefFactory.eINSTANCE.reflectType(aQualifiedName, relatedObject);
- }
-
- /**
- * reflect - reflect a JavaClass for a given qualified name. If the package or class does not exist, one will be created through the reflection
- * mechanism.
- *
- * @deprecated @see org.eclipse.jem.java.JavaRefFactory#reflectType(java.lang.String, org.eclipse.emf.ecore.resource.ResourceSet)
- */
- public static JavaHelpers reflect(String aQualifiedName, ResourceSet set) {
- return JavaRefFactory.eINSTANCE.reflectType(aQualifiedName, set);
- }
-
- /**
- * reflect - reflect a JavaClass for a given package name or class name. If the package or class does not exist, one will be created through the
- * reflection mechanism.
- *
- * @deprecated @see org.eclipse.jem.java.JavaRefFactory#reflectType(java.lang.String, java.lang.String,
- * org.eclipse.emf.ecore.resource.ResourceSet)
- */
- public static JavaHelpers reflect(String aPackageName, String aClassName, ResourceSet set) {
- return JavaRefFactory.eINSTANCE.reflectType(aPackageName, aClassName, set);
- }
-
- public void setSupertype(JavaClass aJavaClass) throws InheritanceCycleException {
- validateSupertype(aJavaClass);
- List s = super.getESuperTypes();
- s.clear();
- if (aJavaClass != null)
- s.add(aJavaClass);
- }
-
- /**
- * Check to make sure that the passed JavaClass is a valid super class (i.e., it does not create any cycles in the inheritance.
- *
- * @param aJavaClass
- */
- protected void validateSupertype(JavaClass aJavaClass) throws InheritanceCycleException {
- if (!isValidSupertype(aJavaClass))
- throw new InheritanceCycleException(this, aJavaClass);
- }
-
- public boolean isValidSupertype(JavaClass aJavaClass) {
- if (aJavaClass != null) {
- if (this.equals(aJavaClass))
- return false;
- return extendedIsValidSupertype(getSubtypes(), aJavaClass);
- }
- return true;
- }
-
- /**
- * @param subtypes
- * @param aJavaClass
- */
- private boolean extendedIsValidSupertype(List subtypes, JavaClass aJavaClass) {
- if (!basicIsValidSupertype(subtypes, aJavaClass))
- return false;
- JavaClass subtype;
- for (int i = 0; i < subtypes.size(); i++) {
- subtype = (JavaClass) subtypes.get(i);
- if (!subtype.isValidSupertype(aJavaClass))
- return false;
- }
- return true;
- }
-
- private boolean basicIsValidSupertype(List subtypes, JavaClass aJavaClass) {
- JavaClass subtype;
- for (int i = 0; i < subtypes.size(); i++) {
- subtype = (JavaClass) subtypes.get(i);
- if (subtype.equals(aJavaClass))
- return false;
- }
- return true;
- }
-
- protected List getSubtypes() {
- return getESuperAdapter().getSubclasses();
- }
-
- public String toString() {
- return getClass().getName() + "(" + getQualifiedName() + ")";
- }
-
- public TypeKind getKind() {
- reflectBase();
- return getKindGen();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setKind(TypeKind newKind) {
- TypeKind oldKind = kind;
- kind = newKind == null ? KIND_EDEFAULT : newKind;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_CLASS__KIND, oldKind, kind));
- }
-
- public boolean isPublic() {
- reflectBase();
- return isPublicGen();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setPublic(boolean newPublic) {
- boolean oldPublic = (eFlags & PUBLIC_EFLAG) != 0;
- if (newPublic) eFlags |= PUBLIC_EFLAG; else eFlags &= ~PUBLIC_EFLAG;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_CLASS__PUBLIC, oldPublic, newPublic));
- }
-
- public boolean isFinal() {
- reflectBase();
- return isFinalGen();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setFinal(boolean newFinal) {
- boolean oldFinal = (eFlags & FINAL_EFLAG) != 0;
- if (newFinal) eFlags |= FINAL_EFLAG; else eFlags &= ~FINAL_EFLAG;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_CLASS__FINAL, oldFinal, newFinal));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public TypeKind getKindGen() {
- return kind;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public boolean isPublicGen() {
- return (eFlags & PUBLIC_EFLAG) != 0;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public boolean isFinalGen() {
- return (eFlags & FINAL_EFLAG) != 0;
- }
-
- public EList getInitializers() {
- if (initializers == null) {
- initializers = new EObjectContainmentWithInverseEList(Initializer.class, this, JavaRefPackage.JAVA_CLASS__INITIALIZERS,
- JavaRefPackage.INITIALIZER__JAVA_CLASS);
- }
- return initializers;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setDeclaringClass(JavaClass newDeclaringClass) {
- if (newDeclaringClass != declaringClass) {
- NotificationChain msgs = null;
- if (declaringClass != null)
- msgs = ((InternalEObject)declaringClass).eInverseRemove(this, JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES, JavaClass.class, msgs);
- if (newDeclaringClass != null)
- msgs = ((InternalEObject)newDeclaringClass).eInverseAdd(this, JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES, JavaClass.class, msgs);
- msgs = basicSetDeclaringClass(newDeclaringClass, msgs);
- if (msgs != null) msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_CLASS__DECLARING_CLASS, newDeclaringClass, newDeclaringClass));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public JavaClass getDeclaringClass() {
- if (declaringClass != null && declaringClass.eIsProxy()) {
- JavaClass oldDeclaringClass = declaringClass;
- declaringClass = (JavaClass)eResolveProxy((InternalEObject)declaringClass);
- if (declaringClass != oldDeclaringClass) {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaRefPackage.JAVA_CLASS__DECLARING_CLASS, oldDeclaringClass, declaringClass));
- }
- }
- return declaringClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public JavaClass basicGetDeclaringClass() {
- return declaringClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetDeclaringClass(JavaClass newDeclaringClass, NotificationChain msgs) {
- JavaClass oldDeclaringClass = declaringClass;
- declaringClass = newDeclaringClass;
- if (eNotificationRequired()) {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_CLASS__DECLARING_CLASS, oldDeclaringClass, newDeclaringClass);
- if (msgs == null) msgs = notification; else msgs.add(notification);
- }
- return msgs;
- }
-
- public EList getDeclaredClasses() {
- reflectBase();
- return getDeclaredClassesGen();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList getDeclaredClassesGen() {
- if (declaredClasses == null) {
- declaredClasses = new EObjectWithInverseResolvingEList(JavaClass.class, this, JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES, JavaRefPackage.JAVA_CLASS__DECLARING_CLASS);
- }
- return declaredClasses;
- }
-
- public EList getProperties() {
- return getEStructuralFeatures(); // As of EMF 2.0, local properties are the local features. Used to be a merge of eattributes and ereferences.
- }
-
- public EList getEvents() {
- IIntrospectionAdapter adapter = getIntrospectionAdapter();
- if (adapter != null)
- return adapter.getEvents();
- return getEventsGen();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList getEventsGen() {
- if (events == null) {
- events = new EObjectContainmentEList(JavaEvent.class, this, JavaRefPackage.JAVA_CLASS__EVENTS);
- }
- return events;
- }
-
- private EList allEvents;
-
- public EList getAllEvents() {
- IIntrospectionAdapter ia = getIntrospectionAdapter();
- if (ia == null)
- return ECollections.EMPTY_ELIST; // No introspection, do normal.
- return allEvents = ia.getAllEvents();
- }
-
- public EList getAllEventsGen() {
- return allEvents;
- }
-
- private EList allProperties;
-
- public EList getAllProperties() {
- IIntrospectionAdapter ia = getIntrospectionAdapter();
- if (ia == null)
- return ECollections.EMPTY_ELIST; // No introspection, do normal.
- return allProperties = ia.getAllProperties();
- }
-
- public EList getAllPropertiesGen() {
- return allProperties;
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public boolean eIsSet(EStructuralFeature eFeature) {
- switch (eDerivedStructuralFeatureID(eFeature)) {
- case JavaRefPackage.JAVA_CLASS__EANNOTATIONS:
- return eAnnotations != null && !eAnnotations.isEmpty();
- case JavaRefPackage.JAVA_CLASS__NAME:
- return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case JavaRefPackage.JAVA_CLASS__INSTANCE_CLASS_NAME:
- return INSTANCE_CLASS_NAME_EDEFAULT == null ? instanceClassName != null : !INSTANCE_CLASS_NAME_EDEFAULT.equals(instanceClassName);
- case JavaRefPackage.JAVA_CLASS__INSTANCE_CLASS:
- return INSTANCE_CLASS_EDEFAULT == null ? getInstanceClass() != null : !INSTANCE_CLASS_EDEFAULT.equals(getInstanceClass());
- case JavaRefPackage.JAVA_CLASS__DEFAULT_VALUE:
- return DEFAULT_VALUE_EDEFAULT == null ? getDefaultValue() != null : !DEFAULT_VALUE_EDEFAULT.equals(getDefaultValue());
- case JavaRefPackage.JAVA_CLASS__EPACKAGE:
- return getEPackage() != null;
- case JavaRefPackage.JAVA_CLASS__ABSTRACT:
- return ((eFlags & ABSTRACT_EFLAG) != 0) != ABSTRACT_EDEFAULT;
- case JavaRefPackage.JAVA_CLASS__INTERFACE:
- return ((eFlags & INTERFACE_EFLAG) != 0) != INTERFACE_EDEFAULT;
- case JavaRefPackage.JAVA_CLASS__ESUPER_TYPES:
- return eSuperTypes != null && !eSuperTypes.isEmpty();
- case JavaRefPackage.JAVA_CLASS__EOPERATIONS:
- return eOperations != null && !eOperations.isEmpty();
- case JavaRefPackage.JAVA_CLASS__EALL_ATTRIBUTES:
- return !getEAllAttributes().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EALL_REFERENCES:
- return !getEAllReferences().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EREFERENCES:
- return !getEReferences().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EATTRIBUTES:
- return !getEAttributes().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EALL_CONTAINMENTS:
- return !getEAllContainments().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EALL_OPERATIONS:
- return !getEAllOperations().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EALL_STRUCTURAL_FEATURES:
- return !getEAllStructuralFeatures().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EALL_SUPER_TYPES:
- return !getEAllSuperTypes().isEmpty();
- case JavaRefPackage.JAVA_CLASS__EID_ATTRIBUTE:
- return getEIDAttribute() != null;
- case JavaRefPackage.JAVA_CLASS__ESTRUCTURAL_FEATURES:
- return eStructuralFeatures != null && !eStructuralFeatures.isEmpty();
- case JavaRefPackage.JAVA_CLASS__KIND:
- return kind != KIND_EDEFAULT;
- case JavaRefPackage.JAVA_CLASS__PUBLIC:
- return ((eFlags & PUBLIC_EFLAG) != 0) != PUBLIC_EDEFAULT;
- case JavaRefPackage.JAVA_CLASS__FINAL:
- return ((eFlags & FINAL_EFLAG) != 0) != FINAL_EDEFAULT;
- case JavaRefPackage.JAVA_CLASS__IMPLEMENTS_INTERFACES:
- return implementsInterfaces != null && !implementsInterfaces.isEmpty();
- case JavaRefPackage.JAVA_CLASS__CLASS_IMPORT:
- return classImport != null && !classImport.isEmpty();
- case JavaRefPackage.JAVA_CLASS__PACKAGE_IMPORTS:
- return packageImports != null && !packageImports.isEmpty();
- case JavaRefPackage.JAVA_CLASS__FIELDS:
- return fields != null && !fields.isEmpty();
- case JavaRefPackage.JAVA_CLASS__METHODS:
- return methods != null && !methods.isEmpty();
- case JavaRefPackage.JAVA_CLASS__INITIALIZERS:
- return initializers != null && !initializers.isEmpty();
- case JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES:
- return declaredClasses != null && !declaredClasses.isEmpty();
- case JavaRefPackage.JAVA_CLASS__DECLARING_CLASS:
- return declaringClass != null;
- case JavaRefPackage.JAVA_CLASS__JAVA_PACKAGE:
- return basicGetJavaPackage() != null;
- case JavaRefPackage.JAVA_CLASS__EVENTS:
- return events != null && !events.isEmpty();
- case JavaRefPackage.JAVA_CLASS__ALL_EVENTS:
- return !getAllEvents().isEmpty();
- }
- return eDynamicIsSet(eFeature);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void eSet(EStructuralFeature eFeature, Object newValue) {
- switch (eDerivedStructuralFeatureID(eFeature)) {
- case JavaRefPackage.JAVA_CLASS__EANNOTATIONS:
- getEAnnotations().clear();
- getEAnnotations().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__NAME:
- setName((String)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__INSTANCE_CLASS_NAME:
- setInstanceClassName((String)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__ABSTRACT:
- setAbstract(((Boolean)newValue).booleanValue());
- return;
- case JavaRefPackage.JAVA_CLASS__INTERFACE:
- setInterface(((Boolean)newValue).booleanValue());
- return;
- case JavaRefPackage.JAVA_CLASS__ESUPER_TYPES:
- getESuperTypes().clear();
- getESuperTypes().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__EOPERATIONS:
- getEOperations().clear();
- getEOperations().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__ESTRUCTURAL_FEATURES:
- getEStructuralFeatures().clear();
- getEStructuralFeatures().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__KIND:
- setKind((TypeKind)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__PUBLIC:
- setPublic(((Boolean)newValue).booleanValue());
- return;
- case JavaRefPackage.JAVA_CLASS__FINAL:
- setFinal(((Boolean)newValue).booleanValue());
- return;
- case JavaRefPackage.JAVA_CLASS__IMPLEMENTS_INTERFACES:
- getImplementsInterfaces().clear();
- getImplementsInterfaces().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__CLASS_IMPORT:
- getClassImport().clear();
- getClassImport().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__PACKAGE_IMPORTS:
- getPackageImports().clear();
- getPackageImports().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__FIELDS:
- getFields().clear();
- getFields().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__METHODS:
- getMethods().clear();
- getMethods().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__INITIALIZERS:
- getInitializers().clear();
- getInitializers().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES:
- getDeclaredClasses().clear();
- getDeclaredClasses().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__DECLARING_CLASS:
- setDeclaringClass((JavaClass)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__EVENTS:
- getEvents().clear();
- getEvents().addAll((Collection)newValue);
- return;
- case JavaRefPackage.JAVA_CLASS__ALL_EVENTS:
- getAllEvents().clear();
- getAllEvents().addAll((Collection)newValue);
- return;
- }
- eDynamicSet(eFeature, newValue);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public void eUnset(EStructuralFeature eFeature) {
- switch (eDerivedStructuralFeatureID(eFeature)) {
- case JavaRefPackage.JAVA_CLASS__EANNOTATIONS:
- getEAnnotations().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__NAME:
- setName(NAME_EDEFAULT);
- return;
- case JavaRefPackage.JAVA_CLASS__INSTANCE_CLASS_NAME:
- setInstanceClassName(INSTANCE_CLASS_NAME_EDEFAULT);
- return;
- case JavaRefPackage.JAVA_CLASS__ABSTRACT:
- setAbstract(ABSTRACT_EDEFAULT);
- return;
- case JavaRefPackage.JAVA_CLASS__INTERFACE:
- setInterface(INTERFACE_EDEFAULT);
- return;
- case JavaRefPackage.JAVA_CLASS__ESUPER_TYPES:
- getESuperTypes().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__EOPERATIONS:
- getEOperations().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__ESTRUCTURAL_FEATURES:
- getEStructuralFeatures().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__KIND:
- setKind(KIND_EDEFAULT);
- return;
- case JavaRefPackage.JAVA_CLASS__PUBLIC:
- setPublic(PUBLIC_EDEFAULT);
- return;
- case JavaRefPackage.JAVA_CLASS__FINAL:
- setFinal(FINAL_EDEFAULT);
- return;
- case JavaRefPackage.JAVA_CLASS__IMPLEMENTS_INTERFACES:
- getImplementsInterfaces().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__CLASS_IMPORT:
- getClassImport().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__PACKAGE_IMPORTS:
- getPackageImports().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__FIELDS:
- getFields().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__METHODS:
- getMethods().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__INITIALIZERS:
- getInitializers().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES:
- getDeclaredClasses().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__DECLARING_CLASS:
- setDeclaringClass((JavaClass)null);
- return;
- case JavaRefPackage.JAVA_CLASS__EVENTS:
- getEvents().clear();
- return;
- case JavaRefPackage.JAVA_CLASS__ALL_EVENTS:
- getAllEvents().clear();
- return;
- }
- eDynamicUnset(eFeature);
- }
-
- /**
- * <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- */
- public EList getImplementsInterfacesGen() {
- if (implementsInterfaces == null) {
- implementsInterfaces = new EObjectResolvingEList(JavaClass.class, this, JavaRefPackage.JAVA_CLASS__IMPLEMENTS_INTERFACES) {
-
- /**
- * Comment for <code>serialVersionUID</code>
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 1L;
-
- public Object get(int index) {
- if (isInterface())
- getInterfaceSuperTypes().get(index); //force resolution so the ESuperAdapter will be updated correctly
- return super.get(index);
- }
-
- public void clear() {
- super.clear();
- if (isInterface())
- getInterfaceSuperTypes().clear();
- }
-
- public Object remove(int index) {
- Object result = super.remove(index);
- if (isInterface())
- getInterfaceSuperTypes().remove(index);
- return result;
-
- }
-
- public boolean removeAll(Collection collection) {
- boolean result = super.removeAll(collection);
- if (isInterface())
- getInterfaceSuperTypes().removeAll(collection);
- return result;
- }
-
- public void add(int index, Object object) {
- super.add(index, object);
- if (isInterface())
- getInterfaceSuperTypes().add(index, object);
- }
-
- public boolean add(Object object) {
- boolean result = super.add(object);
- if (isInterface())
- getInterfaceSuperTypes().add(object);
- return result;
- }
-
- public boolean addAll(Collection collection) {
- boolean result = super.addAll(collection);
- if (isInterface())
- getInterfaceSuperTypes().addAll(collection);
- return result;
- }
-
- public boolean addAll(int index, Collection collection) {
- boolean result = super.addAll(index, collection);
- if (isInterface())
- getInterfaceSuperTypes().addAll(index, collection);
- return result;
- }
- };
- }
- return implementsInterfaces;
- }
-
- private EList getInterfaceSuperTypes() {
- return super.getESuperTypes();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList getClassImportGen() {
- if (classImport == null) {
- classImport = new EObjectResolvingEList(JavaClass.class, this, JavaRefPackage.JAVA_CLASS__CLASS_IMPORT);
- }
- return classImport;
- }
-
- public EList getEAllSuperTypes() {
- reflectBase();//Force reflection, if needed, before getting all supertypes.
- return super.getEAllSuperTypes();
- }
-
- public EList getESuperTypes() {
- reflectBase();
- return super.getESuperTypes();
- }
-
- /**
- * This method is not meant to be used by others. It is here so that the reflection
- * adapters can reference the unreflected supertypes.
- *
- * @return
- *
- * @since 1.1.0
- */
- public EList primGetESuperTypes() {
- return super.getESuperTypes();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList getPackageImportsGen() {
- if (packageImports == null) {
- packageImports = new EObjectResolvingEList(JavaPackage.class, this, JavaRefPackage.JAVA_CLASS__PACKAGE_IMPORTS);
- }
- return packageImports;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList getFieldsGen() {
- if (fields == null) {
- fields = new EObjectContainmentWithInverseEList(Field.class, this, JavaRefPackage.JAVA_CLASS__FIELDS, JavaRefPackage.FIELD__JAVA_CLASS);
- }
- return fields;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList getMethodsGen() {
- if (methods == null) {
- methods = new EObjectContainmentWithInverseEList(Method.class, this, JavaRefPackage.JAVA_CLASS__METHODS, JavaRefPackage.METHOD__JAVA_CLASS);
- }
- return methods;
- }
-
- /**
- * @generated This field/method will be replaced during code generation
- */
- public JavaPackage getJavaPackageGen() {
- JavaPackage javaPackage = basicGetJavaPackage();
- return javaPackage == null ? null : (JavaPackage)eResolveProxy((InternalEObject)javaPackage);
- }
-
- /*
- * <!-- begin-user-doc --> <!-- end-user-doc -->
- */
- public JavaPackage basicGetJavaPackage() {
- return getJavaPackage();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
- if (featureID >= 0) {
- switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
- case JavaRefPackage.JAVA_CLASS__EANNOTATIONS:
- return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__EPACKAGE:
- if (eContainer != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return eBasicSetContainer(otherEnd, JavaRefPackage.JAVA_CLASS__EPACKAGE, msgs);
- case JavaRefPackage.JAVA_CLASS__EOPERATIONS:
- return ((InternalEList)getEOperations()).basicAdd(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__ESTRUCTURAL_FEATURES:
- return ((InternalEList)getEStructuralFeatures()).basicAdd(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__FIELDS:
- return ((InternalEList)getFields()).basicAdd(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__METHODS:
- return ((InternalEList)getMethods()).basicAdd(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__INITIALIZERS:
- return ((InternalEList)getInitializers()).basicAdd(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES:
- return ((InternalEList)getDeclaredClasses()).basicAdd(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__DECLARING_CLASS:
- if (declaringClass != null)
- msgs = ((InternalEObject)declaringClass).eInverseRemove(this, JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES, JavaClass.class, msgs);
- return basicSetDeclaringClass((JavaClass)otherEnd, msgs);
- default:
- return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
- }
- }
- if (eContainer != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return eBasicSetContainer(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
- if (featureID >= 0) {
- switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
- case JavaRefPackage.JAVA_CLASS__EANNOTATIONS:
- return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__EPACKAGE:
- return eBasicSetContainer(null, JavaRefPackage.JAVA_CLASS__EPACKAGE, msgs);
- case JavaRefPackage.JAVA_CLASS__EOPERATIONS:
- return ((InternalEList)getEOperations()).basicRemove(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__ESTRUCTURAL_FEATURES:
- return ((InternalEList)getEStructuralFeatures()).basicRemove(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__FIELDS:
- return ((InternalEList)getFields()).basicRemove(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__METHODS:
- return ((InternalEList)getMethods()).basicRemove(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__INITIALIZERS:
- return ((InternalEList)getInitializers()).basicRemove(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES:
- return ((InternalEList)getDeclaredClasses()).basicRemove(otherEnd, msgs);
- case JavaRefPackage.JAVA_CLASS__DECLARING_CLASS:
- return basicSetDeclaringClass(null, msgs);
- case JavaRefPackage.JAVA_CLASS__EVENTS:
- return ((InternalEList)getEvents()).basicRemove(otherEnd, msgs);
- default:
- return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
- }
- }
- return eBasicSetContainer(null, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
- if (eContainerFeatureID >= 0) {
- switch (eContainerFeatureID) {
- case JavaRefPackage.JAVA_CLASS__EPACKAGE:
- return eContainer.eInverseRemove(this, EcorePackage.EPACKAGE__ECLASSIFIERS, EPackage.class, msgs);
- default:
- return eDynamicBasicRemoveFromContainer(msgs);
- }
- }
- return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public Object eGet(EStructuralFeature eFeature, boolean resolve) {
- switch (eDerivedStructuralFeatureID(eFeature)) {
- case JavaRefPackage.JAVA_CLASS__EANNOTATIONS:
- return getEAnnotations();
- case JavaRefPackage.JAVA_CLASS__NAME:
- return getName();
- case JavaRefPackage.JAVA_CLASS__INSTANCE_CLASS_NAME:
- return getInstanceClassName();
- case JavaRefPackage.JAVA_CLASS__INSTANCE_CLASS:
- return getInstanceClass();
- case JavaRefPackage.JAVA_CLASS__DEFAULT_VALUE:
- return getDefaultValue();
- case JavaRefPackage.JAVA_CLASS__EPACKAGE:
- return getEPackage();
- case JavaRefPackage.JAVA_CLASS__ABSTRACT:
- return isAbstract() ? Boolean.TRUE : Boolean.FALSE;
- case JavaRefPackage.JAVA_CLASS__INTERFACE:
- return isInterface() ? Boolean.TRUE : Boolean.FALSE;
- case JavaRefPackage.JAVA_CLASS__ESUPER_TYPES:
- return getESuperTypes();
- case JavaRefPackage.JAVA_CLASS__EOPERATIONS:
- return getEOperations();
- case JavaRefPackage.JAVA_CLASS__EALL_ATTRIBUTES:
- return getEAllAttributes();
- case JavaRefPackage.JAVA_CLASS__EALL_REFERENCES:
- return getEAllReferences();
- case JavaRefPackage.JAVA_CLASS__EREFERENCES:
- return getEReferences();
- case JavaRefPackage.JAVA_CLASS__EATTRIBUTES:
- return getEAttributes();
- case JavaRefPackage.JAVA_CLASS__EALL_CONTAINMENTS:
- return getEAllContainments();
- case JavaRefPackage.JAVA_CLASS__EALL_OPERATIONS:
- return getEAllOperations();
- case JavaRefPackage.JAVA_CLASS__EALL_STRUCTURAL_FEATURES:
- return getEAllStructuralFeatures();
- case JavaRefPackage.JAVA_CLASS__EALL_SUPER_TYPES:
- return getEAllSuperTypes();
- case JavaRefPackage.JAVA_CLASS__EID_ATTRIBUTE:
- return getEIDAttribute();
- case JavaRefPackage.JAVA_CLASS__ESTRUCTURAL_FEATURES:
- return getEStructuralFeatures();
- case JavaRefPackage.JAVA_CLASS__KIND:
- return getKind();
- case JavaRefPackage.JAVA_CLASS__PUBLIC:
- return isPublic() ? Boolean.TRUE : Boolean.FALSE;
- case JavaRefPackage.JAVA_CLASS__FINAL:
- return isFinal() ? Boolean.TRUE : Boolean.FALSE;
- case JavaRefPackage.JAVA_CLASS__IMPLEMENTS_INTERFACES:
- return getImplementsInterfaces();
- case JavaRefPackage.JAVA_CLASS__CLASS_IMPORT:
- return getClassImport();
- case JavaRefPackage.JAVA_CLASS__PACKAGE_IMPORTS:
- return getPackageImports();
- case JavaRefPackage.JAVA_CLASS__FIELDS:
- return getFields();
- case JavaRefPackage.JAVA_CLASS__METHODS:
- return getMethods();
- case JavaRefPackage.JAVA_CLASS__INITIALIZERS:
- return getInitializers();
- case JavaRefPackage.JAVA_CLASS__DECLARED_CLASSES:
- return getDeclaredClasses();
- case JavaRefPackage.JAVA_CLASS__DECLARING_CLASS:
- if (resolve) return getDeclaringClass();
- return basicGetDeclaringClass();
- case JavaRefPackage.JAVA_CLASS__JAVA_PACKAGE:
- if (resolve) return getJavaPackage();
- return basicGetJavaPackage();
- case JavaRefPackage.JAVA_CLASS__EVENTS:
- return getEvents();
- case JavaRefPackage.JAVA_CLASS__ALL_EVENTS:
- return getAllEvents();
- }
- return eDynamicGet(eFeature, resolve);
- }
-
- /**
- * @generated This field/method will be replaced during code generation.
- */
- public String toStringGen() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (kind: ");
- result.append(kind);
- result.append(", public: ");
- result.append((eFlags & PUBLIC_EFLAG) != 0);
- result.append(", final: ");
- result.append((eFlags & FINAL_EFLAG) != 0);
- result.append(')');
- return result.toString();
- }
-
- /*
- * This should never be called with true. It is basically only for reset of reflection, not to set a particular state. But InternalReadAdaptable
- * may be used by someone that shouldn't so to be be safe we keep it. TODO Remove InternalReadAdaptable in next version. Need to wait because we
- * need time to notify everyone.
- *
- * @see org.eclipse.jem.java.adapters.InternalReadAdaptable#setReflected(boolean)
- */
- public synchronized void setReflected(boolean aBoolean) {
- if (!aBoolean)
- reflectionStatus = NOT_REFLECTED;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jem.java.JavaClass#getReflectionType()
- */
- public Object getReflectionType() {
- JavaReflectionAdaptor ja = ((JavaReflectionAdaptor) getReadAdapter());
- return ja != null ? ja.getReflectionSource() : null;
- }
-}

Back to the top