diff options
author | rkulp | 2004-01-13 16:17:42 +0000 |
---|---|---|
committer | rkulp | 2004-01-13 16:17:42 +0000 |
commit | d3c1ef3217e1a4ff11b6c29248de6b25b2c65b01 (patch) | |
tree | 6102316e482e73c08f2fdc27c9dc3f094bdf7730 /plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java | |
parent | 78151f6a46a52c9b56eebee9a34dc0f7f1066de5 (diff) | |
download | webtools.javaee-d3c1ef3217e1a4ff11b6c29248de6b25b2c65b01.tar.gz webtools.javaee-d3c1ef3217e1a4ff11b6c29248de6b25b2c65b01.tar.xz webtools.javaee-d3c1ef3217e1a4ff11b6c29248de6b25b2c65b01.zip |
Merge of ve100m5 branch to HEAD.
Diffstat (limited to 'plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java')
38 files changed, 13406 insertions, 0 deletions
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/ArrayType.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/ArrayType.java new file mode 100644 index 000000000..a9e8b05bc --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/ArrayType.java @@ -0,0 +1,97 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: ArrayType.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import org.eclipse.emf.ecore.EClassifier; +/** + * Describes a Java Array type + * For multi-dimensional arrays, it is unlikely that the component type will be + * specified directly. This would require instantiating a chain of component types + * such as String[][][][]->String[][][]->String[][]->String[]->String. + * + * The component type relationship will be computed if the finalComponentType + * and array dimensions is specified. + * + * For this reason, the preferred way to create is through the JavaRefFactory factory method: + * createArrayType(JavaClass finalComponentType, int dimensions) + */ +public interface ArrayType extends JavaClass{ + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the ArrayDimensions attribute + */ + int getArrayDimensions(); + + /** + * @generated This field/method will be replaced during code generation + * @param value The new value of the ArrayDimensions attribute + */ + void setArrayDimensions(int value); + + /** + * @generated This field/method will be replaced during code generation + * @return The ComponentType reference + */ + EClassifier getComponentType(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.ArrayType#getComponentType <em>Component Type</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Component Type</em>' reference. + * @see #getComponentType() + * @generated + */ + void setComponentType(EClassifier value); + + /** + * @generated This field/method will be replaced during code generation + * Get the final component type for this Array Type. + * + * In order to ensure a unique instance, we will resolve this type using + * reflection. It turns out to be most efficient to just do this by trimming the + * name. + */ + JavaHelpers getFinalComponentType(); + + /** + * @generated This field/method will be replaced during code generation + * Get the component type of this array. + * + * If this is a multi-dimensional array, the component type will be the nested + * array type. + */ + JavaHelpers getComponentTypeAsHelper(); + + /** + * @generated This field/method will be replaced during code generation + * Is this an array of java primitives + */ + boolean isPrimitiveArray(); + + /** + * @generated This field/method will be replaced during code generation + * Set the component type. + */ + void setComponentType(JavaHelpers helperComponentType); + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Block.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Block.java new file mode 100644 index 000000000..5fc46c813 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Block.java @@ -0,0 +1,60 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: Block.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +/** + * @generated + */ +public interface Block extends EObject{ + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the Source attribute + */ + String getSource(); + + /** + * @generated This field/method will be replaced during code generation + * @param value The new value of the Source attribute + */ + void setSource(String value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the Name attribute + */ + String getName(); + + /** + * @generated This field/method will be replaced during code generation + * @param value The new value of the Name attribute + */ + void setName(String value); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of Contents references + */ + EList getContents(); + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Comment.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Comment.java new file mode 100644 index 000000000..6d2409efa --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Comment.java @@ -0,0 +1,29 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: Comment.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + + +/** + * @generated + */ +public interface Comment extends Block { + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Field.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Field.java new file mode 100644 index 000000000..35e52eeb4 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Field.java @@ -0,0 +1,121 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: Field.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EAttribute; +/** + * @generated + */ +public interface Field extends EAttribute{ + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsFinal attribute + */ + boolean isFinal(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Field#isFinal <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Final</em>' attribute. + * @see #isFinal() + * @generated + */ + void setFinal(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsStatic attribute + */ + boolean isStatic(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Field#isStatic <em>Static</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Static</em>' attribute. + * @see #isStatic() + * @generated + */ + void setStatic(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the JavaVisibility attribute + */ + JavaVisibilityKind getJavaVisibility(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Field#getJavaVisibility <em>Java Visibility</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Java Visibility</em>' attribute. + * @see org.eclipse.jem.java.JavaVisibilityKind + * @see #getJavaVisibility() + * @generated + */ + void setJavaVisibility(JavaVisibilityKind value); + + /** + * @generated This field/method will be replaced during code generation + * @return The JavaClass reference + */ + JavaClass getJavaClass(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Field#getJavaClass <em>Java Class</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Java Class</em>' container reference. + * @see #getJavaClass() + * @generated + */ + void setJavaClass(JavaClass value); + + /** + * @generated This field/method will be replaced during code generation + * @return The Initializer reference + */ + Block getInitializer(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Field#getInitializer <em>Initializer</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Initializer</em>' containment reference. + * @see #getInitializer() + * @generated + */ + void setInitializer(Block value); + + /** + * @generated This field/method will be replaced during code generation + * Get the class that this field is within. + */ + JavaClass getContainingJavaClass(); + + /** + * @generated This field/method will be replaced during code generation + * Is this field an array type. + */ + boolean isArray(); + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/InheritanceCycleException.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/InheritanceCycleException.java new file mode 100644 index 000000000..b895cb183 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/InheritanceCycleException.java @@ -0,0 +1,43 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: InheritanceCycleException.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.text.MessageFormat; + +import org.eclipse.jem.internal.java.adapters.nls.ResourceHandler; + +/** + * @author DABERG + * + * To change the template for this generated type comment go to + * Window>Preferences>Java>Code Generation>Code and Comments + */ +public class InheritanceCycleException extends Exception { + private static String MSG_PATTERN = ResourceHandler.getString("Java_Inh_Cycle_ERROR_"); + + /** + * + */ + public InheritanceCycleException(JavaClass aSubclass, JavaClass aSuperclass) { + this(MessageFormat.format(MSG_PATTERN, new String[]{aSubclass.getQualifiedName(), aSuperclass.getQualifiedName()})); + } + + /** + * @param s + */ + public InheritanceCycleException(String s) { + super(s); + } + +} diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Initializer.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Initializer.java new file mode 100644 index 000000000..f11f75d0f --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Initializer.java @@ -0,0 +1,72 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: Initializer.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EObject; +/** + * @generated + */ +public interface Initializer extends EObject{ + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsStatic attribute + */ + Boolean getIsStatic(); + + /** + * @generated This field/method will be replaced during code generation + * @param value The new value of the IsStatic attribute + */ + void setIsStatic(Boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The JavaClass reference + */ + JavaClass getJavaClass(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Initializer#getJavaClass <em>Java Class</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Java Class</em>' container reference. + * @see #getJavaClass() + * @generated + */ + void setJavaClass(JavaClass value); + + /** + * @generated This field/method will be replaced during code generation + * @return The Source reference + */ + Block getSource(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Initializer#getSource <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Source</em>' reference. + * @see #getSource() + * @generated + */ + void setSource(Block value); + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaClass.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaClass.java new file mode 100644 index 000000000..72ba99c60 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaClass.java @@ -0,0 +1,410 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaClass.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.List; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +/** + * <!-- begin-user-doc --> + * @extends JavaHelpers + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jem.java.JavaClass#getKind <em>Kind</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#isPublic <em>Public</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#isFinal <em>Final</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getImplementsInterfaces <em>Implements Interfaces</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getClassImport <em>Class Import</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getPackageImports <em>Package Imports</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getFields <em>Fields</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getMethods <em>Methods</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getInitializers <em>Initializers</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getDeclaredClasses <em>Declared Classes</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getDeclaringClass <em>Declaring Class</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getJavaPackage <em>Java Package</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getEvents <em>Events</em>}</li> + * <li>{@link org.eclipse.jem.java.JavaClass#getAllEvents <em>All Events</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jem.java.JavaRefPackage#getJavaClass() + * @model + * @generated + */ +public interface JavaClass extends EClass, JavaHelpers{ + + public static final String DEFAULT_METHOD_NAME = "*"; + /** + * 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) ; + /** + * Returns a filtered list on the methods of this class, having a name equal to that of the parameter. + */ + public List getPublicMethodsExtendedNamed(String name); + + /** + * Return an array listing our Fields, including inherited fields. + * The field relationship is derived from contents. + */ + public Field[] listFieldExtended(); + /** + * Return an array listing our Methods, including inherited methods. + * The method relationship is derived from contents. + */ + public Method[] listMethodExtended(); +//FB /** +//FB * This is required for internal reflection. Do not use. +//FB */ +//FB Object primRefValue(EObject feature); + /** + * @generated This field/method will be replaced during code generation + * @return The value of the Kind attribute + */ + TypeKind getKind(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.JavaClass#getKind <em>Kind</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Kind</em>' attribute. + * @see org.eclipse.jem.java.TypeKind + * @see #getKind() + * @generated + */ + void setKind(TypeKind value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsPublic attribute + */ + boolean isPublic(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.JavaClass#isPublic <em>Public</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Public</em>' attribute. + * @see #isPublic() + * @generated + */ + void setPublic(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsFinal attribute + */ + boolean isFinal(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.JavaClass#isFinal <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Final</em>' attribute. + * @see #isFinal() + * @generated + */ + void setFinal(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of ImplementsInterfaces references + */ + EList getImplementsInterfaces(); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of ClassImport references + */ + EList getClassImport(); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of PackageImports references + */ + EList getPackageImports(); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of Fields references + */ + EList getFields(); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of Methods references + */ + EList getMethods(); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of Initializers references + */ + EList getInitializers(); + + /** + * @generated This field/method will be replaced during code generation + * @return The DeclaringClass reference + */ + JavaClass getDeclaringClass(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.JavaClass#getDeclaringClass <em>Declaring Class</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Declaring Class</em>' reference. + * @see #getDeclaringClass() + * @generated + */ + void setDeclaringClass(JavaClass value); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of DeclaredClasses references + */ + EList getDeclaredClasses(); + + /** + * @generated This field/method will be replaced during code generation + * @return The JavaPackage reference + */ + JavaPackage getJavaPackage(); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of Events references + */ + EList getEvents(); + + /** + * Returns the value of the '<em><b>All Events</b></em>' reference list. + * The list contents are of type {@link org.eclipse.jem.java.JavaEvent}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>All Events</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>All Events</em>' reference list. + * @see org.eclipse.jem.java.JavaRefPackage#getJavaClass_AllEvents() + * @model type="org.eclipse.jem.java.JavaEvent" transient="true" volatile="true" + * @generated + */ + EList getAllEvents(); + + /** + * @generated This field/method will be replaced during code generation + */ + boolean isNested(); + + /** + * @generated This field/method will be replaced during code generation + * Return an Field with the passed name, or null. + */ + Field getField(String fieldName); + + /** + * @generated This field/method will be replaced during code generation + * Return an Field with the passed name from this JavaClass or any supertypes. + * + * Return null if a Field named fieldName is not found. + */ + Field getFieldExtended(String fieldName); + + /** + * @generated This field/method will be replaced during code generation + * Return an Field with the passed name, or null. + */ + Field getFieldNamed(String fieldName); + + /** + * @generated This field/method will be replaced during code generation + * Return all fields, including those from supertypes. + */ + List getFieldsExtended(); + + /** + * @generated This field/method will be replaced during code generation + * Get the method of this name and these parameters. It will not look up the + * supertype hierarchy. + */ + Method getMethod(String methodName, List parameterTypes); + + /** + * @generated This field/method will be replaced during code generation + * Return a List of Strings that represent MethodElement signatures from most + * general to most specific. + */ + List getMethodElementSignatures(); + + /** + * @generated This field/method will be replaced during code generation + * Get the method of this name and these parameters. It will look up the supertype + * hierarchy. + */ + Method getMethodExtended(String methodName, List parameterTypes); + + /** + * @generated This field/method will be replaced during code generation + * Return all methods, including those from supertypes. + */ + List getMethodsExtended(); + + /** + * Return all methods, including those from supertypes excluding particular classes and methods. + * @param excludedClasses - A list of JavaClass instances to be ignored. + * @param excludedMethods - A list of Method instances to be ignored. + */ + List getMethodsExtendedWithFilters(List excludedClasses, List excludedMethods) ; + + /** + * @generated This field/method will be replaced during code generation + * 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. + + */ + List getOnlySpecificMethods(String aMethodNamePrefix, List excludedNames); + + /** + * @generated This field/method will be replaced during code generation + * 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. + */ + Method getPublicMethod(String methodName, List parameterTypes); + + /** + * @generated This field/method will be replaced during code generation + * Return all methods, it will not go up the supertype hierarchy. + */ + List getPublicMethods(); + + /** + * @generated This field/method will be replaced during code generation + * Return all public methods, including those from supertypes. + */ + List getPublicMethodsExtended(); + + /** + * @generated This field/method will be replaced during code generation + * Returns a filtered list on the methods of this class, having a name equal to + * that of the parameter. + */ + List getPublicMethodsNamed(String name); + + /** + * @generated This field/method will be replaced during code generation + */ + JavaClass getSupertype(); + + /** + * @generated This field/method will be replaced during code generation + * Test whether the receiver implements the passed interface (or one of its + * supertypes). + */ + boolean implementsInterface(JavaClass interfaceType); + + /** + * @generated This field/method will be replaced during code generation + * Return a string showing our details. + */ + String infoString(); + + /** + * @generated This field/method will be replaced during code generation + * Tests whether this class inherits from the passed in class. + */ + boolean inheritsFrom(JavaClass javaClass); + + /** + * @generated This field/method will be replaced during code generation + * Does this type exist. + */ + boolean isExistingType(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * Is this an interface. + * <!-- end-model-doc --> + * @model + * @generated + */ + boolean isInterface(); + + /** + * @generated This field/method will be replaced during code generation + * Set the supertype. + */ + void setSupertype(JavaClass javaclass) throws InheritanceCycleException; + + /** + * Return true if the passed JavaClass can be set as the supertype + * of this JavaClass. This method will test to see if aJavaClass will + * create a cycle in the inheritance structure. Return true if no + * inheritance cycle will be created. + */ + public boolean isValidSupertype(JavaClass aJavaClass) ; + + /** + * Get the EStructuralFeatures that represent the BeanInfo properties for + * just this Java class, not including inherited. It will return any EStructuralFeature + * that was specified as being at this class either through the XMI override document or + * through the BeanInfo. Structural features through the XMI may not be bean properties, + * but they are part of the features available at this class only. + * + * This is a combination of getEAttributes() and getEReferences(). + * + * To retrieve only the Bean Properties, then use Beaninfo + * Utilities.getPropertiesIterator(javaclass.getProperties()) and this will iterate over + * the Bean PropertyDecorators, and filter out the non-bean features. + * + * @return The list of properties (as EStructuralFeature's) for this java class. This list is + * not modifiable. + */ + EList getProperties(); + + /** + * Get all of the EStructuralFeatures that represent the BeanInfo properties for + * just this Java class, including inherited. It will return any EStructuralFeature + * that was specified through the XMI override document or + * through the BeanInfo. Structural features through the XMI may not be bean properties, + * but they are part of the features available. + * + * The is like getEAllStructuralFeatures() except that if BeanInfo hides any bean properties + * from the super class, this list will also hide them, while getEAllStructuralFeatures + * will not. + * + * To retrieve only the Bean Properties, then use Beaninfo + * Utilities.getPropertiesIterator(javaclass.getAllProperties()) and this will iterate over + * the Bean PropertyDecorators, and filter out the non-bean features. + * + * @return The list of all properties, including inherited, (as EStructuralFeature's) for this class. This list is + * not modifiable. + */ + EList getAllProperties(); + + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaDataType.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaDataType.java new file mode 100644 index 000000000..ed5619071 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaDataType.java @@ -0,0 +1,42 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaDataType.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * @extends JavaHelpers + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jem.java.JavaRefPackage#getJavaDataType() + * @model + * @generated + */ +public interface JavaDataType extends EClass, JavaHelpers{ + + /** + * @generated This field/method will be replaced during code generation + * Return the default string representing the default value of the primitive. + */ + String getDefaultValueString(); + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaEvent.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaEvent.java new file mode 100644 index 000000000..c13c40a96 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaEvent.java @@ -0,0 +1,29 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaEvent.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EStructuralFeature; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Java Event</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jem.java.JavaRefPackage#getJavaEvent() + * @model abstract="true" + * @generated + */ +public interface JavaEvent extends EStructuralFeature{ +}
\ No newline at end of file diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaHelpers.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaHelpers.java new file mode 100644 index 000000000..f17a95c4c --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaHelpers.java @@ -0,0 +1,61 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaHelpers.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; + +/** + * Insert the type's description here. + * Creation date: (6/27/2000 4:42:04 PM) + * @author: Administrator + */ +public interface JavaHelpers extends EClass { + static final String BOOLEAN_NAME = "java.lang.Boolean"; + static final String CHARACTER_NAME = "java.lang.Character"; + static final String BYTE_NAME = "java.lang.Byte"; + static final String DOUBLE_NAME = "java.lang.Double"; + static final String FLOAT_NAME = "java.lang.Float"; + static final String INTEGER_NAME = "java.lang.Integer"; + static final String LONG_NAME = "java.lang.Long"; + static final String SHORT_NAME = "java.lang.Short"; + static final String PRIM_BOOLEAN_NAME = "boolean"; + static final String PRIM_CHARACTER_NAME = "char"; + static final String PRIM_BYTE_NAME = "byte"; + static final String PRIM_DOUBLE_NAME = "double"; + static final String PRIM_FLOAT_NAME = "float"; + static final String PRIM_INTEGER_NAME = "int"; + static final String PRIM_LONG_NAME = "long"; + static final String PRIM_SHORT_NAME = "short"; + public String getJavaName(); + public JavaDataType getPrimitive(); + public String getQualifiedName(); + public JavaClass getWrapper(); + public boolean isArray(); + /** + * 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? Or in the case of primitives, are they the same. + */ + public boolean isAssignableFrom(EClassifier aClass); + public boolean isPrimitive(); + + /** + * 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() ; +} diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaPackage.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaPackage.java new file mode 100644 index 000000000..cac2eb7ec --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaPackage.java @@ -0,0 +1,41 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaPackage.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EPackage; + +public interface JavaPackage extends EPackage{ + + public static final String PACKAGE_ID = "*package"; // The id (the part that goes after the '#' for a java package.) + // There will only be one package per java resource so it + // can be unique. No java types, methods, fields ids can + // start with an asterick so will be unique. + + public static final String PRIMITIVE_PACKAGE_NAME = "_-javaprim"; + /** + * @generated This field/method will be replaced during code generation + * @return The list of JavaClasses references + */ + EList getJavaClasses(); + + public String getPackageName() ; + +} //JavaPackage + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameter.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameter.java new file mode 100644 index 000000000..6f3ae094a --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameter.java @@ -0,0 +1,85 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaParameter.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import org.eclipse.emf.ecore.EModelElement; +import org.eclipse.emf.ecore.EParameter; +/** + * @generated + */ +public interface JavaParameter extends EParameter, EModelElement{ + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsFinal attribute + */ + boolean isFinal(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.JavaParameter#isFinal <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Final</em>' attribute. + * @see #isFinal() + * @generated + */ + void setFinal(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the ParameterKind attribute + */ + JavaParameterKind getParameterKind(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.JavaParameter#getParameterKind <em>Parameter Kind</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Parameter Kind</em>' attribute. + * @see org.eclipse.jem.java.JavaParameterKind + * @see #getParameterKind() + * @generated + */ + void setParameterKind(JavaParameterKind value); + + /** + * @generated This field/method will be replaced during code generation + * Is this parameter type an array type. + */ + boolean isArray(); + + /** + * @generated This field/method will be replaced during code generation + * Is this a return parameter. + */ + boolean isReturn(); + + /** + * @generated This field/method will be replaced during code generation + */ + JavaHelpers getJavaType(); + + /** + * @generated This field/method will be replaced during code generation + */ + String getQualifiedName(); + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameterKind.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameterKind.java new file mode 100644 index 000000000..b0569bb12 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameterKind.java @@ -0,0 +1,205 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaParameterKind.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Java Parameter Kind</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * IN=0 + * OUT=1 + * INOUT=2 + * RETURN=3 + * <!-- end-model-doc --> + * @see org.eclipse.jem.java.JavaRefPackage#getJavaParameterKind() + * @model + * @generated + */ +public final class JavaParameterKind extends AbstractEnumerator +{ + /** + * The '<em><b>IN</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #IN_LITERAL + * @model + * @generated + * @ordered + */ + public static final int IN = 0; + /** + * The '<em><b>OUT</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #OUT_LITERAL + * @model + * @generated + * @ordered + */ + public static final int OUT = 1; + /** + * The '<em><b>INOUT</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #INOUT_LITERAL + * @model + * @generated + * @ordered + */ + public static final int INOUT = 2; + /** + * The '<em><b>RETURN</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #RETURN_LITERAL + * @model + * @generated + * @ordered + */ + public static final int RETURN = 3; + /** + * The '<em><b>IN</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>IN</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #IN + * @generated + * @ordered + */ + public static final JavaParameterKind IN_LITERAL = new JavaParameterKind(IN, "IN"); + + /** + * The '<em><b>OUT</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>OUT</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #OUT + * @generated + * @ordered + */ + public static final JavaParameterKind OUT_LITERAL = new JavaParameterKind(OUT, "OUT"); + + /** + * The '<em><b>INOUT</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>INOUT</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #INOUT + * @generated + * @ordered + */ + public static final JavaParameterKind INOUT_LITERAL = new JavaParameterKind(INOUT, "INOUT"); + + /** + * The '<em><b>RETURN</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>RETURN</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #RETURN + * @generated + * @ordered + */ + public static final JavaParameterKind RETURN_LITERAL = new JavaParameterKind(RETURN, "RETURN"); + + /** + * An array of all the '<em><b>Java Parameter Kind</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final JavaParameterKind[] VALUES_ARRAY = + new JavaParameterKind[] { + IN_LITERAL, + OUT_LITERAL, + INOUT_LITERAL, + RETURN_LITERAL, + }; + + /** + * A public read-only list of all the '<em><b>Java Parameter Kind</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Java Parameter Kind</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static JavaParameterKind get(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + JavaParameterKind result = VALUES_ARRAY[i]; + if (result.toString().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Java Parameter Kind</b></em>' literal with the specified value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static JavaParameterKind get(int value) + { + switch (value) { + case IN: return IN_LITERAL; + case OUT: return OUT_LITERAL; + case INOUT: return INOUT_LITERAL; + case RETURN: return RETURN_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private JavaParameterKind(int value, String name) + { + super(value, name); + } + +} //JavaParameterKind + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefFactory.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefFactory.java new file mode 100644 index 000000000..4ad079ad9 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefFactory.java @@ -0,0 +1,118 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaRefFactory.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import org.eclipse.emf.ecore.EFactory; +/** + * @generated + */ +public interface JavaRefFactory extends EFactory{ + + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + JavaRefFactory eINSTANCE = new org.eclipse.jem.java.impl.JavaRefFactoryImpl(); + + + /** + * @return ArrayType value with an array of the component type + */ + public ArrayType createArrayType(JavaHelpers componentType); + /** + * @return ArrayType value with an array of the specified dimensions and final component type. + */ + public ArrayType createArrayType(JavaHelpers finalComponentType, int dimensions); + /** + * @generated This field/method will be replaced during code generation + * @return Method value + */ + Method createMethod(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaClass value + */ + JavaClass createJavaClass(); + + /** + * @generated This field/method will be replaced during code generation + * @return Field value + */ + Field createField(); + + /** + * @generated This field/method will be replaced during code generation + * @return Block value + */ + Block createBlock(); + + /** + * @generated This field/method will be replaced during code generation + * @return Comment value + */ + Comment createComment(); + + /** + * @generated This field/method will be replaced during code generation + * @return Statement value + */ + Statement createStatement(); + + /** + * @generated This field/method will be replaced during code generation + * @return Initializer value + */ + Initializer createInitializer(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaParameter value + */ + JavaParameter createJavaParameter(); + + /** + * @generated This field/method will be replaced during code generation + * @return ArrayType value + */ + ArrayType createArrayType(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaDataType value + */ + JavaDataType createJavaDataType(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaPackage value + */ + JavaPackage createJavaPackage(); + + /** + * @generated This field/method will be replaced during code generation. + */ + JavaRefPackage getJavaRefPackage(); + +} + + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefPackage.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefPackage.java new file mode 100644 index 000000000..c74c2da06 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefPackage.java @@ -0,0 +1,2022 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaRefPackage.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcorePackage; + + +/** + * @lastgen interface JavaRefPackage extends EPackage {} + */ +public interface JavaRefPackage extends EPackage{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "java"; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS = 0; + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EANNOTATIONS = EcorePackage.ECLASS__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__NAME = EcorePackage.ECLASS__NAME; + /** + * The feature id for the '<em><b>Instance Class Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__INSTANCE_CLASS_NAME = EcorePackage.ECLASS__INSTANCE_CLASS_NAME; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__INSTANCE_CLASS = EcorePackage.ECLASS__INSTANCE_CLASS; + /** + * The feature id for the '<em><b>Default Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__DEFAULT_VALUE = EcorePackage.ECLASS__DEFAULT_VALUE; + + /** + * The feature id for the '<em><b>EPackage</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EPACKAGE = EcorePackage.ECLASS__EPACKAGE; + + /** + * The feature id for the '<em><b>Abstract</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__ABSTRACT = EcorePackage.ECLASS__ABSTRACT; + + /** + * The feature id for the '<em><b>Interface</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__INTERFACE = EcorePackage.ECLASS__INTERFACE; + + /** + * The feature id for the '<em><b>ESuper Types</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__ESUPER_TYPES = EcorePackage.ECLASS__ESUPER_TYPES; + + /** + * The feature id for the '<em><b>EOperations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EOPERATIONS = EcorePackage.ECLASS__EOPERATIONS; + + /** + * The feature id for the '<em><b>EAll Attributes</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EALL_ATTRIBUTES = EcorePackage.ECLASS__EALL_ATTRIBUTES; + + /** + * The feature id for the '<em><b>EAll References</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EALL_REFERENCES = EcorePackage.ECLASS__EALL_REFERENCES; + + /** + * The feature id for the '<em><b>EReferences</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EREFERENCES = EcorePackage.ECLASS__EREFERENCES; + + /** + * The feature id for the '<em><b>EAttributes</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EATTRIBUTES = EcorePackage.ECLASS__EATTRIBUTES; + + /** + * The feature id for the '<em><b>EAll Containments</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EALL_CONTAINMENTS = EcorePackage.ECLASS__EALL_CONTAINMENTS; + + /** + * The feature id for the '<em><b>EAll Operations</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EALL_OPERATIONS = EcorePackage.ECLASS__EALL_OPERATIONS; + + /** + * The feature id for the '<em><b>EAll Structural Features</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EALL_STRUCTURAL_FEATURES = EcorePackage.ECLASS__EALL_STRUCTURAL_FEATURES; + + /** + * The feature id for the '<em><b>EAll Super Types</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EALL_SUPER_TYPES = EcorePackage.ECLASS__EALL_SUPER_TYPES; + + /** + * The feature id for the '<em><b>EID Attribute</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__EID_ATTRIBUTE = EcorePackage.ECLASS__EID_ATTRIBUTE; + + /** + * The feature id for the '<em><b>EStructural Features</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__ESTRUCTURAL_FEATURES = EcorePackage.ECLASS__ESTRUCTURAL_FEATURES; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__KIND = EcorePackage.ECLASS_FEATURE_COUNT + 0; + /** + * The feature id for the '<em><b>Public</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__PUBLIC = EcorePackage.ECLASS_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>Final</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS__FINAL = EcorePackage.ECLASS_FEATURE_COUNT + 2; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__IMPLEMENTS_INTERFACES = EcorePackage.ECLASS_FEATURE_COUNT + 3; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__CLASS_IMPORT = EcorePackage.ECLASS_FEATURE_COUNT + 4; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__PACKAGE_IMPORTS = EcorePackage.ECLASS_FEATURE_COUNT + 5; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__FIELDS = EcorePackage.ECLASS_FEATURE_COUNT + 6; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__METHODS = EcorePackage.ECLASS_FEATURE_COUNT + 7; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__INITIALIZERS = EcorePackage.ECLASS_FEATURE_COUNT + 8; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__DECLARED_CLASSES = EcorePackage.ECLASS_FEATURE_COUNT + 9; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__DECLARING_CLASS = EcorePackage.ECLASS_FEATURE_COUNT + 10; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__JAVA_PACKAGE = EcorePackage.ECLASS_FEATURE_COUNT + 11; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__EVENTS = EcorePackage.ECLASS_FEATURE_COUNT + 12; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_CLASS__ALL_EVENTS = EcorePackage.ECLASS_FEATURE_COUNT + 13; + /** + * The number of structural features of the the '<em>Java Class</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_CLASS_FEATURE_COUNT = EcorePackage.ECLASS_FEATURE_COUNT + 14; + + /** + * @generated This field/method will be replaced during code generation. + */ + int FIELD = 4; + /** + * @generated This field/method will be replaced during code generation. + */ + int METHOD = 3; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PARAMETER = 2; + /** + * @generated This field/method will be replaced during code generation. + */ + + + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE = 10; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_DATA_TYPE = 9; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_EVENT = 11; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PACKAGE = 8; + /** + * @generated This field/method will be replaced during code generation. + */ + int BLOCK = 5; + /** + * @generated This field/method will be replaced during code generation. + */ + int COMMENT = 6; + /** + * @generated This field/method will be replaced during code generation. + */ + int STATEMENT = 7; + /** + * @generated This field/method will be replaced during code generation. + */ + int INITIALIZER = 1; + /** + * @generated This field/method will be replaced during code generation. + */ + int INITIALIZER__IS_STATIC = 0; + /** + * @generated This field/method will be replaced during code generation. + */ + int INITIALIZER__JAVA_CLASS = 1; + /** + * @generated This field/method will be replaced during code generation. + */ + int INITIALIZER__SOURCE = 2; + + /** + * The number of structural features of the the '<em>Initializer</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int INITIALIZER_FEATURE_COUNT = 3; + + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__EANNOTATIONS = EcorePackage.EPARAMETER__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PARAMETER__NAME = EcorePackage.EPARAMETER__NAME; + /** + * The feature id for the '<em><b>Ordered</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__ORDERED = EcorePackage.EPARAMETER__ORDERED; + + /** + * The feature id for the '<em><b>Unique</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__UNIQUE = EcorePackage.EPARAMETER__UNIQUE; + + /** + * The feature id for the '<em><b>Lower Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__LOWER_BOUND = EcorePackage.EPARAMETER__LOWER_BOUND; + + /** + * The feature id for the '<em><b>Upper Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__UPPER_BOUND = EcorePackage.EPARAMETER__UPPER_BOUND; + + /** + * The feature id for the '<em><b>Many</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__MANY = EcorePackage.EPARAMETER__MANY; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__REQUIRED = EcorePackage.EPARAMETER__REQUIRED; + + /** + * The feature id for the '<em><b>EType</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__ETYPE = EcorePackage.EPARAMETER__ETYPE; + + /** + * The feature id for the '<em><b>EOperation</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__EOPERATION = EcorePackage.EPARAMETER__EOPERATION; + + /** + * The feature id for the '<em><b>Final</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER__FINAL = EcorePackage.EPARAMETER_FEATURE_COUNT + 0; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PARAMETER__PARAMETER_KIND = EcorePackage.EPARAMETER_FEATURE_COUNT + 1; + /** + * The number of structural features of the the '<em>Java Parameter</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PARAMETER_FEATURE_COUNT = EcorePackage.EPARAMETER_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__EANNOTATIONS = EcorePackage.EOPERATION__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int METHOD__NAME = EcorePackage.EOPERATION__NAME; + /** + * The feature id for the '<em><b>Ordered</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__ORDERED = EcorePackage.EOPERATION__ORDERED; + + /** + * The feature id for the '<em><b>Unique</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__UNIQUE = EcorePackage.EOPERATION__UNIQUE; + + /** + * The feature id for the '<em><b>Lower Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__LOWER_BOUND = EcorePackage.EOPERATION__LOWER_BOUND; + + /** + * The feature id for the '<em><b>Upper Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__UPPER_BOUND = EcorePackage.EOPERATION__UPPER_BOUND; + + /** + * The feature id for the '<em><b>Many</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__MANY = EcorePackage.EOPERATION__MANY; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__REQUIRED = EcorePackage.EOPERATION__REQUIRED; + + /** + * The feature id for the '<em><b>EType</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__ETYPE = EcorePackage.EOPERATION__ETYPE; + + /** + * The feature id for the '<em><b>EContaining Class</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__ECONTAINING_CLASS = EcorePackage.EOPERATION__ECONTAINING_CLASS; + + /** + * The feature id for the '<em><b>EParameters</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__EPARAMETERS = EcorePackage.EOPERATION__EPARAMETERS; + + /** + * The feature id for the '<em><b>EExceptions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__EEXCEPTIONS = EcorePackage.EOPERATION__EEXCEPTIONS; + + /** + * The feature id for the '<em><b>Abstract</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__ABSTRACT = EcorePackage.EOPERATION_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Native</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__NATIVE = EcorePackage.EOPERATION_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>Synchronized</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__SYNCHRONIZED = EcorePackage.EOPERATION_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Final</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__FINAL = EcorePackage.EOPERATION_FEATURE_COUNT + 3; + + /** + * The feature id for the '<em><b>Constructor</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__CONSTRUCTOR = EcorePackage.EOPERATION_FEATURE_COUNT + 4; + + /** + * The feature id for the '<em><b>Static</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD__STATIC = EcorePackage.EOPERATION_FEATURE_COUNT + 5; + + /** + * @generated This field/method will be replaced during code generation. + */ + int METHOD__JAVA_VISIBILITY = EcorePackage.EOPERATION_FEATURE_COUNT + 6; + /** + * @generated This field/method will be replaced during code generation. + */ + int METHOD__PARAMETERS = EcorePackage.EOPERATION_FEATURE_COUNT + 7; + /** + * @generated This field/method will be replaced during code generation. + */ + int METHOD__JAVA_EXCEPTIONS = EcorePackage.EOPERATION_FEATURE_COUNT + 8; + /** + * @generated This field/method will be replaced during code generation. + */ + int METHOD__JAVA_CLASS = EcorePackage.EOPERATION_FEATURE_COUNT + 9; + /** + * @generated This field/method will be replaced during code generation. + */ + int METHOD__SOURCE = EcorePackage.EOPERATION_FEATURE_COUNT + 10; + /** + * The number of structural features of the the '<em>Method</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int METHOD_FEATURE_COUNT = EcorePackage.EOPERATION_FEATURE_COUNT + 11; + + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__EANNOTATIONS = EcorePackage.EATTRIBUTE__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int FIELD__NAME = EcorePackage.EATTRIBUTE__NAME; + /** + * The feature id for the '<em><b>Ordered</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__ORDERED = EcorePackage.EATTRIBUTE__ORDERED; + + /** + * The feature id for the '<em><b>Unique</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__UNIQUE = EcorePackage.EATTRIBUTE__UNIQUE; + + /** + * The feature id for the '<em><b>Lower Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__LOWER_BOUND = EcorePackage.EATTRIBUTE__LOWER_BOUND; + + /** + * The feature id for the '<em><b>Upper Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__UPPER_BOUND = EcorePackage.EATTRIBUTE__UPPER_BOUND; + + /** + * The feature id for the '<em><b>Many</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__MANY = EcorePackage.EATTRIBUTE__MANY; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__REQUIRED = EcorePackage.EATTRIBUTE__REQUIRED; + + /** + * The feature id for the '<em><b>EType</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__ETYPE = EcorePackage.EATTRIBUTE__ETYPE; + + /** + * The feature id for the '<em><b>Changeable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__CHANGEABLE = EcorePackage.EATTRIBUTE__CHANGEABLE; + + /** + * The feature id for the '<em><b>Volatile</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__VOLATILE = EcorePackage.EATTRIBUTE__VOLATILE; + + /** + * The feature id for the '<em><b>Transient</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__TRANSIENT = EcorePackage.EATTRIBUTE__TRANSIENT; + + /** + * The feature id for the '<em><b>Default Value Literal</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__DEFAULT_VALUE_LITERAL = EcorePackage.EATTRIBUTE__DEFAULT_VALUE_LITERAL; + + /** + * The feature id for the '<em><b>Default Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__DEFAULT_VALUE = EcorePackage.EATTRIBUTE__DEFAULT_VALUE; + + /** + * The feature id for the '<em><b>Unsettable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__UNSETTABLE = EcorePackage.EATTRIBUTE__UNSETTABLE; + + /** + * The feature id for the '<em><b>Derived</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__DERIVED = EcorePackage.EATTRIBUTE__DERIVED; + + /** + * The feature id for the '<em><b>EContaining Class</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__ECONTAINING_CLASS = EcorePackage.EATTRIBUTE__ECONTAINING_CLASS; + + /** + * The feature id for the '<em><b>ID</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__ID = EcorePackage.EATTRIBUTE__ID; + + /** + * The feature id for the '<em><b>EAttribute Type</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__EATTRIBUTE_TYPE = EcorePackage.EATTRIBUTE__EATTRIBUTE_TYPE; + + /** + * The feature id for the '<em><b>Final</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__FINAL = EcorePackage.EATTRIBUTE_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Static</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD__STATIC = EcorePackage.EATTRIBUTE_FEATURE_COUNT + 1; + + /** + * @generated This field/method will be replaced during code generation. + */ + int FIELD__JAVA_VISIBILITY = EcorePackage.EATTRIBUTE_FEATURE_COUNT + 2; + /** + * @generated This field/method will be replaced during code generation. + */ + int FIELD__JAVA_CLASS = EcorePackage.EATTRIBUTE_FEATURE_COUNT + 3; + /** + * @generated This field/method will be replaced during code generation. + */ + int FIELD__INITIALIZER = EcorePackage.EATTRIBUTE_FEATURE_COUNT + 4; + /** + * The number of structural features of the the '<em>Field</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD_FEATURE_COUNT = EcorePackage.EATTRIBUTE_FEATURE_COUNT + 5; + + /** + * @generated This field/method will be replaced during code generation. + */ + int BLOCK__SOURCE = 0; + /** + * @generated This field/method will be replaced during code generation. + */ + int BLOCK__NAME = 1; + /** + * @generated This field/method will be replaced during code generation. + */ + int BLOCK__CONTENTS = 2; + + /** + * The number of structural features of the the '<em>Block</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BLOCK_FEATURE_COUNT = 3; + + /** + * @generated This field/method will be replaced during code generation. + */ + int COMMENT__SOURCE = BLOCK__SOURCE; + /** + * @generated This field/method will be replaced during code generation. + */ + int COMMENT__NAME = BLOCK__NAME; + /** + * @generated This field/method will be replaced during code generation. + */ + int COMMENT__CONTENTS = BLOCK__CONTENTS; + + /** + * The number of structural features of the the '<em>Comment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMMENT_FEATURE_COUNT = BLOCK_FEATURE_COUNT + 0; + + /** + * @generated This field/method will be replaced during code generation. + */ + int STATEMENT__SOURCE = BLOCK__SOURCE; + /** + * @generated This field/method will be replaced during code generation. + */ + int STATEMENT__NAME = BLOCK__NAME; + /** + * @generated This field/method will be replaced during code generation. + */ + int STATEMENT__CONTENTS = BLOCK__CONTENTS; + + /** + * The number of structural features of the the '<em>Statement</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STATEMENT_FEATURE_COUNT = BLOCK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PACKAGE__EANNOTATIONS = EcorePackage.EPACKAGE__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PACKAGE__NAME = EcorePackage.EPACKAGE__NAME; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PACKAGE__NS_URI = EcorePackage.EPACKAGE__NS_URI; + /** + * The feature id for the '<em><b>Ns Prefix</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PACKAGE__NS_PREFIX = EcorePackage.EPACKAGE__NS_PREFIX; + + /** + * The feature id for the '<em><b>EFactory Instance</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PACKAGE__EFACTORY_INSTANCE = EcorePackage.EPACKAGE__EFACTORY_INSTANCE; + + /** + * The feature id for the '<em><b>EClassifiers</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PACKAGE__ECLASSIFIERS = EcorePackage.EPACKAGE__ECLASSIFIERS; + + /** + * The feature id for the '<em><b>ESubpackages</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PACKAGE__ESUBPACKAGES = EcorePackage.EPACKAGE__ESUBPACKAGES; + + /** + * The feature id for the '<em><b>ESuper Package</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PACKAGE__ESUPER_PACKAGE = EcorePackage.EPACKAGE__ESUPER_PACKAGE; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PACKAGE__JAVA_CLASSES = EcorePackage.EPACKAGE_FEATURE_COUNT + 0; + /** + * The number of structural features of the the '<em>Java Package</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_PACKAGE_FEATURE_COUNT = EcorePackage.EPACKAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EANNOTATIONS = EcorePackage.ECLASS__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_DATA_TYPE__NAME = EcorePackage.ECLASS__NAME; + /** + * The feature id for the '<em><b>Instance Class Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__INSTANCE_CLASS_NAME = EcorePackage.ECLASS__INSTANCE_CLASS_NAME; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_DATA_TYPE__INSTANCE_CLASS = EcorePackage.ECLASS__INSTANCE_CLASS; + /** + * The feature id for the '<em><b>Default Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__DEFAULT_VALUE = EcorePackage.ECLASS__DEFAULT_VALUE; + + /** + * The feature id for the '<em><b>EPackage</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EPACKAGE = EcorePackage.ECLASS__EPACKAGE; + + /** + * The feature id for the '<em><b>Abstract</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__ABSTRACT = EcorePackage.ECLASS__ABSTRACT; + + /** + * The feature id for the '<em><b>Interface</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__INTERFACE = EcorePackage.ECLASS__INTERFACE; + + /** + * The feature id for the '<em><b>ESuper Types</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__ESUPER_TYPES = EcorePackage.ECLASS__ESUPER_TYPES; + + /** + * The feature id for the '<em><b>EOperations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EOPERATIONS = EcorePackage.ECLASS__EOPERATIONS; + + /** + * The feature id for the '<em><b>EAll Attributes</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EALL_ATTRIBUTES = EcorePackage.ECLASS__EALL_ATTRIBUTES; + + /** + * The feature id for the '<em><b>EAll References</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EALL_REFERENCES = EcorePackage.ECLASS__EALL_REFERENCES; + + /** + * The feature id for the '<em><b>EReferences</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EREFERENCES = EcorePackage.ECLASS__EREFERENCES; + + /** + * The feature id for the '<em><b>EAttributes</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EATTRIBUTES = EcorePackage.ECLASS__EATTRIBUTES; + + /** + * The feature id for the '<em><b>EAll Containments</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EALL_CONTAINMENTS = EcorePackage.ECLASS__EALL_CONTAINMENTS; + + /** + * The feature id for the '<em><b>EAll Operations</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EALL_OPERATIONS = EcorePackage.ECLASS__EALL_OPERATIONS; + + /** + * The feature id for the '<em><b>EAll Structural Features</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EALL_STRUCTURAL_FEATURES = EcorePackage.ECLASS__EALL_STRUCTURAL_FEATURES; + + /** + * The feature id for the '<em><b>EAll Super Types</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EALL_SUPER_TYPES = EcorePackage.ECLASS__EALL_SUPER_TYPES; + + /** + * The feature id for the '<em><b>EID Attribute</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__EID_ATTRIBUTE = EcorePackage.ECLASS__EID_ATTRIBUTE; + + /** + * The feature id for the '<em><b>EStructural Features</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE__ESTRUCTURAL_FEATURES = EcorePackage.ECLASS__ESTRUCTURAL_FEATURES; + + /** + * The number of structural features of the the '<em>Java Data Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_DATA_TYPE_FEATURE_COUNT = EcorePackage.ECLASS_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EANNOTATIONS = JAVA_CLASS__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__NAME = JAVA_CLASS__NAME; + /** + * The feature id for the '<em><b>Instance Class Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__INSTANCE_CLASS_NAME = JAVA_CLASS__INSTANCE_CLASS_NAME; + + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__INSTANCE_CLASS = JAVA_CLASS__INSTANCE_CLASS; + /** + * The feature id for the '<em><b>Default Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__DEFAULT_VALUE = JAVA_CLASS__DEFAULT_VALUE; + + /** + * The feature id for the '<em><b>EPackage</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EPACKAGE = JAVA_CLASS__EPACKAGE; + + /** + * The feature id for the '<em><b>Abstract</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__ABSTRACT = JAVA_CLASS__ABSTRACT; + + /** + * The feature id for the '<em><b>Interface</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__INTERFACE = JAVA_CLASS__INTERFACE; + + /** + * The feature id for the '<em><b>ESuper Types</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__ESUPER_TYPES = JAVA_CLASS__ESUPER_TYPES; + + /** + * The feature id for the '<em><b>EOperations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EOPERATIONS = JAVA_CLASS__EOPERATIONS; + + /** + * The feature id for the '<em><b>EAll Attributes</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EALL_ATTRIBUTES = JAVA_CLASS__EALL_ATTRIBUTES; + + /** + * The feature id for the '<em><b>EAll References</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EALL_REFERENCES = JAVA_CLASS__EALL_REFERENCES; + + /** + * The feature id for the '<em><b>EReferences</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EREFERENCES = JAVA_CLASS__EREFERENCES; + + /** + * The feature id for the '<em><b>EAttributes</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EATTRIBUTES = JAVA_CLASS__EATTRIBUTES; + + /** + * The feature id for the '<em><b>EAll Containments</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EALL_CONTAINMENTS = JAVA_CLASS__EALL_CONTAINMENTS; + + /** + * The feature id for the '<em><b>EAll Operations</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EALL_OPERATIONS = JAVA_CLASS__EALL_OPERATIONS; + + /** + * The feature id for the '<em><b>EAll Structural Features</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EALL_STRUCTURAL_FEATURES = JAVA_CLASS__EALL_STRUCTURAL_FEATURES; + + /** + * The feature id for the '<em><b>EAll Super Types</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EALL_SUPER_TYPES = JAVA_CLASS__EALL_SUPER_TYPES; + + /** + * The feature id for the '<em><b>EID Attribute</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__EID_ATTRIBUTE = JAVA_CLASS__EID_ATTRIBUTE; + + /** + * The feature id for the '<em><b>EStructural Features</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__ESTRUCTURAL_FEATURES = JAVA_CLASS__ESTRUCTURAL_FEATURES; + + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__KIND = JAVA_CLASS__KIND; + /** + * The feature id for the '<em><b>Public</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__PUBLIC = JAVA_CLASS__PUBLIC; + + /** + * The feature id for the '<em><b>Final</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE__FINAL = JAVA_CLASS__FINAL; + + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__IMPLEMENTS_INTERFACES = JAVA_CLASS__IMPLEMENTS_INTERFACES; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__CLASS_IMPORT = JAVA_CLASS__CLASS_IMPORT; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__PACKAGE_IMPORTS = JAVA_CLASS__PACKAGE_IMPORTS; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__FIELDS = JAVA_CLASS__FIELDS; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__METHODS = JAVA_CLASS__METHODS; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__INITIALIZERS = JAVA_CLASS__INITIALIZERS; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__DECLARED_CLASSES = JAVA_CLASS__DECLARED_CLASSES; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__DECLARING_CLASS = JAVA_CLASS__DECLARING_CLASS; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__JAVA_PACKAGE = JAVA_CLASS__JAVA_PACKAGE; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__EVENTS = JAVA_CLASS__EVENTS; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__ALL_EVENTS = JAVA_CLASS__ALL_EVENTS; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__ARRAY_DIMENSIONS = JAVA_CLASS_FEATURE_COUNT + 0; + /** + * @generated This field/method will be replaced during code generation. + */ + int ARRAY_TYPE__COMPONENT_TYPE = JAVA_CLASS_FEATURE_COUNT + 1; + /** + * The number of structural features of the the '<em>Array Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ARRAY_TYPE_FEATURE_COUNT = JAVA_CLASS_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__EANNOTATIONS = EcorePackage.ESTRUCTURAL_FEATURE__EANNOTATIONS; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_EVENT__NAME = EcorePackage.ESTRUCTURAL_FEATURE__NAME; + /** + * The feature id for the '<em><b>Ordered</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__ORDERED = EcorePackage.ESTRUCTURAL_FEATURE__ORDERED; + + /** + * The feature id for the '<em><b>Unique</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__UNIQUE = EcorePackage.ESTRUCTURAL_FEATURE__UNIQUE; + + /** + * The feature id for the '<em><b>Lower Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__LOWER_BOUND = EcorePackage.ESTRUCTURAL_FEATURE__LOWER_BOUND; + + /** + * The feature id for the '<em><b>Upper Bound</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__UPPER_BOUND = EcorePackage.ESTRUCTURAL_FEATURE__UPPER_BOUND; + + /** + * The feature id for the '<em><b>Many</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__MANY = EcorePackage.ESTRUCTURAL_FEATURE__MANY; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__REQUIRED = EcorePackage.ESTRUCTURAL_FEATURE__REQUIRED; + + /** + * The feature id for the '<em><b>EType</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__ETYPE = EcorePackage.ESTRUCTURAL_FEATURE__ETYPE; + + /** + * The feature id for the '<em><b>Changeable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__CHANGEABLE = EcorePackage.ESTRUCTURAL_FEATURE__CHANGEABLE; + + /** + * The feature id for the '<em><b>Volatile</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__VOLATILE = EcorePackage.ESTRUCTURAL_FEATURE__VOLATILE; + + /** + * The feature id for the '<em><b>Transient</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__TRANSIENT = EcorePackage.ESTRUCTURAL_FEATURE__TRANSIENT; + + /** + * The feature id for the '<em><b>Default Value Literal</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__DEFAULT_VALUE_LITERAL = EcorePackage.ESTRUCTURAL_FEATURE__DEFAULT_VALUE_LITERAL; + + /** + * The feature id for the '<em><b>Default Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__DEFAULT_VALUE = EcorePackage.ESTRUCTURAL_FEATURE__DEFAULT_VALUE; + + /** + * The feature id for the '<em><b>Unsettable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__UNSETTABLE = EcorePackage.ESTRUCTURAL_FEATURE__UNSETTABLE; + + /** + * The feature id for the '<em><b>Derived</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__DERIVED = EcorePackage.ESTRUCTURAL_FEATURE__DERIVED; + + /** + * The feature id for the '<em><b>EContaining Class</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT__ECONTAINING_CLASS = EcorePackage.ESTRUCTURAL_FEATURE__ECONTAINING_CLASS; + + /** + * The number of structural features of the the '<em>Java Event</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVA_EVENT_FEATURE_COUNT = EcorePackage.ESTRUCTURAL_FEATURE_FEATURE_COUNT + 0; + + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_VISIBILITY_KIND = 13; + /** + * @generated This field/method will be replaced during code generation. + */ + int JAVA_PARAMETER_KIND = 14; + /** + * The meta object id for the '<em>JType Java Helpers</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jem.java.JavaHelpers + * @see org.eclipse.jem.java.impl.JavaRefPackageImpl#getJTypeJavaHelpers() + * @generated + */ + int JTYPE_JAVA_HELPERS = 15; + + /** + * The meta object id for the '<em>JType List</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.List + * @see org.eclipse.jem.java.impl.JavaRefPackageImpl#getJTypeList() + * @generated + */ + int JTYPE_LIST = 16; + + + /** + * @generated This field/method will be replaced during code generation. + */ + int TYPE_KIND = 12; + /** + * @generated This field/method will be replaced during code generation. + */ + String eNS_URI = "java.xmi"; + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "org.eclipse.jem.java"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + JavaRefPackage eINSTANCE = org.eclipse.jem.java.impl.JavaRefPackageImpl.init(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaClass object + */ + EClass getJavaClass(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getJavaClass_Kind(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.JavaClass#isPublic <em>Public</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Public</em>'. + * @see org.eclipse.jem.java.JavaClass#isPublic() + * @see #getJavaClass() + * @generated + */ + EAttribute getJavaClass_Public(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.JavaClass#isFinal <em>Final</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Final</em>'. + * @see org.eclipse.jem.java.JavaClass#isFinal() + * @see #getJavaClass() + * @generated + */ + EAttribute getJavaClass_Final(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_ImplementsInterfaces(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_ClassImport(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_PackageImports(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_Fields(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_Methods(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_Initializers(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_DeclaringClass(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_DeclaredClasses(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_JavaPackage(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_Events(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaClass_AllEvents(); + + /** + * @generated This field/method will be replaced during code generation + * @return Field object + */ + EClass getField(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Field#isFinal <em>Final</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Final</em>'. + * @see org.eclipse.jem.java.Field#isFinal() + * @see #getField() + * @generated + */ + EAttribute getField_Final(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Field#isStatic <em>Static</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Static</em>'. + * @see org.eclipse.jem.java.Field#isStatic() + * @see #getField() + * @generated + */ + EAttribute getField_Static(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getField_JavaVisibility(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getField_JavaClass(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getField_Initializer(); + + /** + * @generated This field/method will be replaced during code generation + * @return Method object + */ + EClass getMethod(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Method#isAbstract <em>Abstract</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Abstract</em>'. + * @see org.eclipse.jem.java.Method#isAbstract() + * @see #getMethod() + * @generated + */ + EAttribute getMethod_Abstract(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Method#isNative <em>Native</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Native</em>'. + * @see org.eclipse.jem.java.Method#isNative() + * @see #getMethod() + * @generated + */ + EAttribute getMethod_Native(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Method#isSynchronized <em>Synchronized</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Synchronized</em>'. + * @see org.eclipse.jem.java.Method#isSynchronized() + * @see #getMethod() + * @generated + */ + EAttribute getMethod_Synchronized(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Method#isFinal <em>Final</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Final</em>'. + * @see org.eclipse.jem.java.Method#isFinal() + * @see #getMethod() + * @generated + */ + EAttribute getMethod_Final(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Method#isConstructor <em>Constructor</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Constructor</em>'. + * @see org.eclipse.jem.java.Method#isConstructor() + * @see #getMethod() + * @generated + */ + EAttribute getMethod_Constructor(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.Method#isStatic <em>Static</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Static</em>'. + * @see org.eclipse.jem.java.Method#isStatic() + * @see #getMethod() + * @generated + */ + EAttribute getMethod_Static(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getMethod_JavaVisibility(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getMethod_Parameters(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getMethod_JavaExceptions(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getMethod_JavaClass(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getMethod_Source(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaParameter object + */ + EClass getJavaParameter(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jem.java.JavaParameter#isFinal <em>Final</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Final</em>'. + * @see org.eclipse.jem.java.JavaParameter#isFinal() + * @see #getJavaParameter() + * @generated + */ + EAttribute getJavaParameter_Final(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getJavaParameter_ParameterKind(); + + /** + * @generated This field/method will be replaced during code generation + * @return ArrayType object + */ + EClass getArrayType(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getArrayType_ArrayDimensions(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getArrayType_ComponentType(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaDataType object + */ + EClass getJavaDataType(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaEvent object + */ + EClass getJavaEvent(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaPackage object + */ + EClass getJavaPackage(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getJavaPackage_JavaClasses(); + + /** + * @generated This field/method will be replaced during code generation + * @return Block object + */ + EClass getBlock(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getBlock_Source(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getBlock_Name(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getBlock_Contents(); + + /** + * @generated This field/method will be replaced during code generation + * @return Comment object + */ + EClass getComment(); + + /** + * @generated This field/method will be replaced during code generation + * @return Statement object + */ + EClass getStatement(); + + /** + * @generated This field/method will be replaced during code generation + * @return Initializer object + */ + EClass getInitializer(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EAttribute getInitializer_IsStatic(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getInitializer_JavaClass(); + + /** + * @generated This field/method will be replaced during code generation. + */ + EReference getInitializer_Source(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaVisibilityKind object + */ + EEnum getJavaVisibilityKind(); + + /** + * @generated This field/method will be replaced during code generation + * @return JavaParameterKind object + */ + EEnum getJavaParameterKind(); + + /** + * @generated This field/method will be replaced during code generation + * @return TypeKind object + */ + EEnum getTypeKind(); + + /** + * @generated This field/method will be replaced during code generation + * @return JTypeList object + */ + EDataType getJTypeList(); + + /** + * @generated This field/method will be replaced during code generation + * @return JTypeJavaHelpers object + */ + EDataType getJTypeJavaHelpers(); + + /** + * @generated This field/method will be replaced during code generation. + */ + JavaRefFactory getJavaRefFactory(); + +} //JavaRefPackage + + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaURL.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaURL.java new file mode 100644 index 000000000..38e46136b --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaURL.java @@ -0,0 +1,91 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaURL.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + + +public class JavaURL extends org.eclipse.jem.java.impl.URL { + public static final String JAVA_PROTOCOL_URI_PREFIX = "java:/"; + /** + * JavaURL constructor comment. + * @param urlString java.lang.String + */ + public JavaURL(String urlString) { + super(urlString); + } + /** + * JavaURL constructor comment. + * @param nameSpaceName java.lang.String + * @param iD java.lang.String + */ + public JavaURL(String nameSpaceName, String iD) { + super(null, null); + initializeNamespaceString(nameSpaceName); + this.ID = iD; + } + public String getClassName() { + return ID; + } + /** + * This method was created in VisualAge. + * @return java.lang.String + */ + public String getFullString() { + StringBuffer buf = new StringBuffer(); + if (namespaceName != null) { + buf.append(namespaceName); + if (ID != null) + buf.append("#"); + } + if (ID != null) + buf.append(ID); + return buf.toString(); + } + public String getPackageName() { + String internalName = namespaceName.substring(JAVA_PROTOCOL_URI_PREFIX.length(), namespaceName.length()); + return JavaPackage.PRIMITIVE_PACKAGE_NAME.equals(internalName) ? "" : internalName; + } + /* If we don't have a # sign to delimit the start of the java package us the inherited behavior + */ + public void initializeFromString(String url) { + if (url.indexOf("#") != -1) + super.initializeFromString(url); + else { + int endOfPackageName = url.lastIndexOf('.'); + if (endOfPackageName == -1) + initializeNamespaceString(null); + else + initializeNamespaceString(url.substring(0, endOfPackageName)); + ID = url.substring(endOfPackageName + 1); + } + + } + /* + */ + public void initializeNamespaceString(String aNamespaceName) { + if (aNamespaceName == null) + namespaceName = JAVA_PROTOCOL_URI_PREFIX; + else + namespaceName = JAVA_PROTOCOL_URI_PREFIX + aNamespaceName; + } + public static boolean isJavaURL(String aUrlString) { + if (aUrlString == null) + return false; + return aUrlString.startsWith(JAVA_PROTOCOL_URI_PREFIX); + } + + public String toString() { + return "URL(" + getFullString() + ")"; + } +} diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaVisibilityKind.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaVisibilityKind.java new file mode 100644 index 000000000..e01391fa0 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaVisibilityKind.java @@ -0,0 +1,206 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaVisibilityKind.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Java Visibility Kind</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * PACKAGE=1 + * PUBLIC=2 + * PRIVATE=3 + * PROTECTED=4 + * <!-- end-model-doc --> + * @see org.eclipse.jem.java.JavaRefPackage#getJavaVisibilityKind() + * @model + * @generated + */ +public final class JavaVisibilityKind extends AbstractEnumerator +{ + /** + * The '<em><b>PUBLIC</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PUBLIC_LITERAL + * @model + * @generated + * @ordered + */ + public static final int PUBLIC = 0; + + /** + * The '<em><b>PRIVATE</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PRIVATE_LITERAL + * @model + * @generated + * @ordered + */ + public static final int PRIVATE = 1; + + /** + * The '<em><b>PROTECTED</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PROTECTED_LITERAL + * @model + * @generated + * @ordered + */ + public static final int PROTECTED = 2; + + /** + * The '<em><b>PACKAGE</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PACKAGE_LITERAL + * @model + * @generated + * @ordered + */ + public static final int PACKAGE = 3; + + /** + * The '<em><b>PUBLIC</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>PUBLIC</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PUBLIC + * @generated + * @ordered + */ + public static final JavaVisibilityKind PUBLIC_LITERAL = new JavaVisibilityKind(PUBLIC, "PUBLIC"); + + /** + * The '<em><b>PRIVATE</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>PRIVATE</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PRIVATE + * @generated + * @ordered + */ + public static final JavaVisibilityKind PRIVATE_LITERAL = new JavaVisibilityKind(PRIVATE, "PRIVATE"); + + /** + * The '<em><b>PROTECTED</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>PROTECTED</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PROTECTED + * @generated + * @ordered + */ + public static final JavaVisibilityKind PROTECTED_LITERAL = new JavaVisibilityKind(PROTECTED, "PROTECTED"); + + /** + * The '<em><b>PACKAGE</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>PACKAGE</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PACKAGE + * @generated + * @ordered + */ + public static final JavaVisibilityKind PACKAGE_LITERAL = new JavaVisibilityKind(PACKAGE, "PACKAGE"); + + /** + * An array of all the '<em><b>Java Visibility Kind</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final JavaVisibilityKind[] VALUES_ARRAY = + new JavaVisibilityKind[] { + PUBLIC_LITERAL, + PRIVATE_LITERAL, + PROTECTED_LITERAL, + PACKAGE_LITERAL, + }; + + /** + * A public read-only list of all the '<em><b>Java Visibility Kind</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Java Visibility Kind</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static JavaVisibilityKind get(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + JavaVisibilityKind result = VALUES_ARRAY[i]; + if (result.toString().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Java Visibility Kind</b></em>' literal with the specified value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static JavaVisibilityKind get(int value) + { + switch (value) { + case PUBLIC: return PUBLIC_LITERAL; + case PRIVATE: return PRIVATE_LITERAL; + case PROTECTED: return PROTECTED_LITERAL; + case PACKAGE: return PACKAGE_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private JavaVisibilityKind(int value, String name) + { + super(value, name); + } + +} //JavaVisibilityKind diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Method.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Method.java new file mode 100644 index 000000000..e90b611f3 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Method.java @@ -0,0 +1,278 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: Method.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EOperation; +/** + * @generated + */ +public interface Method extends EOperation{ + + public static final String GENERATED_COMMENT_TAG = "@generated"; + /** + * Lists all the parameters, excluding the return type + */ + public JavaParameter[] listParametersWithoutReturn(); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsAbstract attribute + */ + boolean isAbstract(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#isAbstract <em>Abstract</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Abstract</em>' attribute. + * @see #isAbstract() + * @generated + */ + void setAbstract(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsNative attribute + */ + boolean isNative(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#isNative <em>Native</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Native</em>' attribute. + * @see #isNative() + * @generated + */ + void setNative(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsSynchronized attribute + */ + boolean isSynchronized(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#isSynchronized <em>Synchronized</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Synchronized</em>' attribute. + * @see #isSynchronized() + * @generated + */ + void setSynchronized(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsFinal attribute + */ + boolean isFinal(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#isFinal <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Final</em>' attribute. + * @see #isFinal() + * @generated + */ + void setFinal(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsConstructor attribute + */ + boolean isConstructor(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#isConstructor <em>Constructor</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Constructor</em>' attribute. + * @see #isConstructor() + * @generated + */ + void setConstructor(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the IsStatic attribute + */ + boolean isStatic(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#isStatic <em>Static</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Static</em>' attribute. + * @see #isStatic() + * @generated + */ + void setStatic(boolean value); + + /** + * @generated This field/method will be replaced during code generation + * @return The value of the JavaVisibility attribute + */ + JavaVisibilityKind getJavaVisibility(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#getJavaVisibility <em>Java Visibility</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Java Visibility</em>' attribute. + * @see org.eclipse.jem.java.JavaVisibilityKind + * @see #getJavaVisibility() + * @generated + */ + void setJavaVisibility(JavaVisibilityKind value); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of Parameters references + */ + EList getParameters(); + + /** + * @generated This field/method will be replaced during code generation + * @return The list of JavaExceptions references + */ + EList getJavaExceptions(); + + /** + * @generated This field/method will be replaced during code generation + * @return The JavaClass reference + */ + JavaClass getJavaClass(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#getJavaClass <em>Java Class</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Java Class</em>' container reference. + * @see #getJavaClass() + * @generated + */ + void setJavaClass(JavaClass value); + + /** + * @generated This field/method will be replaced during code generation + * @return The Source reference + */ + Block getSource(); + + /** + * Sets the value of the '{@link org.eclipse.jem.java.Method#getSource <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Source</em>' reference. + * @see #getSource() + * @generated + */ + void setSource(Block value); + + /** + * @generated This field/method will be replaced during code generation + * Return the java class that this method is defined in. + */ + JavaClass getContainingJavaClass(); + + /** + * @generated This field/method will be replaced during code generation + * Return a String with the the method name and its parameters. e.g. <code> + * setFirstName(java.lang.String) <//code> . + * + */ + String getMethodElementSignature(); + + /** + * @generated This field/method will be replaced during code generation + * Return a Parameter with the passed name, or null. + */ + JavaParameter getParameter(String parameterName); + + /** + * @generated This field/method will be replaced during code generation + * Get the return type. + */ + JavaHelpers getReturnType(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * Set the return type + * <!-- end-model-doc --> + * @model parameters="org.eclipse.jem.java.JTypeJavaHelpers" + * @generated + */ + void setReturnType(JavaHelpers type); + + /** + * @generated This field/method will be replaced during code generation + * Replicate the functionality of java.lang.reflect.Method.toString(). + * + * Returns a string describing this Method. The string is formatted as the method + * access modifiers, if any, followed by the method return type, followed by a + * space, followed by the class declaring the method, followed by a period, + * followed by the method name, followed by a parenthesized, comma-separated list + * of the method's formal parameter types. If the method throws checked + * exceptions, the parameter list is followed by a space, followed by the word + * throws followed by a comma-separated list of the thrown exception types. + * + * For example: + * + * public boolean java.lang.Object.equals(java.lang.Object) + * + * The access modifiers are placed in canonical order as specified by "The Java + * Language Specification". This is public, <tt>protected<//tt> or + * <tt>private<//tt> first, and then other modifiers in the following order: + * <tt>abstract<//tt>, <tt>static<//tt>, <tt>final<//tt>, <tt>synchronized<//tt> + * <tt>native<//tt>. + + */ + String getSignature(); + + /** + * @generated This field/method will be replaced during code generation + * Returns true if the method is system generated. + * This is usually determined by the @generated tag in the comment. + */ + boolean isGenerated(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * Set the isGenerated flag. + * <!-- end-model-doc --> + * @model + * @generated + */ + void setIsGenerated(boolean generated); + + /** + * @generated This field/method will be replaced during code generation + * Is this a void return type method. + */ + boolean isVoid(); + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Statement.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Statement.java new file mode 100644 index 000000000..60cc01006 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Statement.java @@ -0,0 +1,28 @@ +package org.eclipse.jem.java; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: Statement.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +/** + * @generated + */ +public interface Statement extends Block { + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/TypeKind.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/TypeKind.java new file mode 100644 index 000000000..0e346364a --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/TypeKind.java @@ -0,0 +1,203 @@ +package org.eclipse.jem.java; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: TypeKind.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Type Kind</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * UNDEFINED=1 CLASS=2 INTERFACE=3 EXCEPTION=4 + * <!-- end-model-doc --> + * @see org.eclipse.jem.java.JavaRefPackage#getTypeKind() + * @model + * @generated + */ +public final class TypeKind extends AbstractEnumerator +{ + /** + * The '<em><b>UNDEFINED</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #UNDEFINED_LITERAL + * @model + * @generated + * @ordered + */ + public static final int UNDEFINED = 0; + + /** + * The '<em><b>CLASS</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CLASS_LITERAL + * @model + * @generated + * @ordered + */ + public static final int CLASS = 1; + + /** + * The '<em><b>INTERFACE</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #INTERFACE_LITERAL + * @model + * @generated + * @ordered + */ + public static final int INTERFACE = 2; + + /** + * The '<em><b>EXCEPTION</b></em>' literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #EXCEPTION_LITERAL + * @model + * @generated + * @ordered + */ + public static final int EXCEPTION = 3; + + /** + * The '<em><b>UNDEFINED</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>UNDEFINED</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #UNDEFINED + * @generated + * @ordered + */ + public static final TypeKind UNDEFINED_LITERAL = new TypeKind(UNDEFINED, "UNDEFINED"); + + /** + * The '<em><b>CLASS</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>CLASS</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CLASS + * @generated + * @ordered + */ + public static final TypeKind CLASS_LITERAL = new TypeKind(CLASS, "CLASS"); + + /** + * The '<em><b>INTERFACE</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>INTERFACE</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #INTERFACE + * @generated + * @ordered + */ + public static final TypeKind INTERFACE_LITERAL = new TypeKind(INTERFACE, "INTERFACE"); + + /** + * The '<em><b>EXCEPTION</b></em>' literal object. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>EXCEPTION</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #EXCEPTION + * @generated + * @ordered + */ + public static final TypeKind EXCEPTION_LITERAL = new TypeKind(EXCEPTION, "EXCEPTION"); + + /** + * An array of all the '<em><b>Type Kind</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final TypeKind[] VALUES_ARRAY = + new TypeKind[] { + UNDEFINED_LITERAL, + CLASS_LITERAL, + INTERFACE_LITERAL, + EXCEPTION_LITERAL, + }; + + /** + * A public read-only list of all the '<em><b>Type Kind</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Type Kind</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static TypeKind get(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TypeKind result = VALUES_ARRAY[i]; + if (result.toString().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Type Kind</b></em>' literal with the specified value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static TypeKind get(int value) + { + switch (value) { + case UNDEFINED: return UNDEFINED_LITERAL; + case CLASS: return CLASS_LITERAL; + case INTERFACE: return INTERFACE_LITERAL; + case EXCEPTION: return EXCEPTION_LITERAL; + } + return null; + } + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private TypeKind(int value, String name) + { + super(value, name); + } + +} //TypeKind diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/ArrayTypeImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/ArrayTypeImpl.java new file mode 100644 index 000000000..2387365f0 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/ArrayTypeImpl.java @@ -0,0 +1,680 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: ArrayTypeImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +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.ENotificationImpl; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.ArrayType; +import org.eclipse.jem.java.JavaClass; +import org.eclipse.jem.java.JavaHelpers; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.TypeKind; + +/** + * Describes a Java Array type + * For multi-dimensional arrays, it is unlikely that the component type will be + * specified directly. This would require instantiating a chain of component types + * such as String[][][][]->String[][][]->String[][]->String[]->String. + * + * The component type relationship will be computed if the finalComponentType + * and array dimensions is specified. + * + * For this reason, the preferred way to create is through the JavaRefFactory factory method: + * createArrayType(JavaClass finalComponentType, int dimensions) + */ +public class ArrayTypeImpl extends JavaClassImpl implements ArrayType, JavaClass{ + + /** + * The default value of the '{@link #getArrayDimensions() <em>Array Dimensions</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getArrayDimensions() + * @generated + * @ordered + */ + protected static final int ARRAY_DIMENSIONS_EDEFAULT = 0; + + + /** + * @generated This field/method will be replaced during code generation. + */ + /** + * @generated This field/method will be replaced during code generation. + */ + protected int arrayDimensions = ARRAY_DIMENSIONS_EDEFAULT; + /** + * The cached value of the '{@link #getComponentType() <em>Component Type</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getComponentType() + * @generated + * @ordered + */ + protected EClassifier componentType = null; + + protected ArrayTypeImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getArrayType(); + } + + /** + * Compute the component type for this array type from our type name. + * The component type of this array type is essentially: new ArrayTypeImpl(finalComponentType, arrayDimensions-1) + * unless our array dimension is 1, in which case it is only our final component type. + * + * In order to ensure a unique instance, we will resolve this type using reflection. + * "java.lang.String[][]" component type is "java.lang.String[]" + * + */ + public JavaHelpers computeComponentType() { + String componentName = getQualifiedName(); + // Strip the last [] form my name to get my component type's name + componentName = componentName.substring(0, componentName.length() - 2); + return reflect(componentName, this); + } +/** + * Override to perform some lazy initialization + */ + public EClassifier getComponentType() { + // If we do not have a component type set, but we have a name (which contains our component type name) + // we can compute the component type. + if ((this.getComponentTypeGen() == null) && (this.getName() != null)) { + componentType = (EClassifier) computeComponentType(); + } + return componentType; + } + /** + * Get the component type of this array. + * + * If this is a multi-dimensional array, the component type will be the nested array type. + */ + public JavaHelpers getComponentTypeAsHelper() { + EClassifier componentClassifier = getComponentType(); + return (JavaHelpers) componentClassifier; + } + /** + * Get the final component type for this Array Type. + * + * In order to ensure a unique instance, we will resolve this type using reflection. It turns out to be most efficient to just do this by trimming the name. + */ + public JavaHelpers getFinalComponentType() { + String componentName = getQualifiedName(); + // Strip all the [] from my name to get my FINAL component type's name + componentName = componentName.substring(0, componentName.indexOf("[")); + return (JavaHelpers) reflect(componentName, this); + } + /** + * (JavaHelpers)isArray - ArrayTypes are arrays + * Override from JavaClass. + */ + public boolean isArray() { + return true; + } +/** + * Does this type exist. + */ +public boolean isExistingType() { + JavaHelpers component = getComponentTypeAsHelper(); + if (component != null) { + if (component.isPrimitive()) + return true; + else + return ((JavaClass) component).isExistingType(); + } else + return false; +} + /** + * Is this an array of java primitives + */ + public boolean isPrimitiveArray() { + return getFinalComponentType().isPrimitive(); + } + /** + * Set the component type. + */ + public void setComponentType(JavaHelpers helperComponentType) { + setComponentType((EClassifier) helperComponentType); + } + /** + * @generated This field/method will be replaced during code generation + */ + public int getArrayDimensions() + { + return arrayDimensions; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void setArrayDimensions(int newArrayDimensions) + { + int oldArrayDimensions = arrayDimensions; + arrayDimensions = newArrayDimensions; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.ARRAY_TYPE__ARRAY_DIMENSIONS, oldArrayDimensions, arrayDimensions)); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.ARRAY_TYPE__EANNOTATIONS: + return eAnnotations != null && !eAnnotations.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.ARRAY_TYPE__INSTANCE_CLASS_NAME: + return INSTANCE_CLASS_NAME_EDEFAULT == null ? instanceClassName != null : !INSTANCE_CLASS_NAME_EDEFAULT.equals(instanceClassName); + case JavaRefPackage.ARRAY_TYPE__INSTANCE_CLASS: + return getInstanceClass() != null; + case JavaRefPackage.ARRAY_TYPE__DEFAULT_VALUE: + return getDefaultValue() != null; + case JavaRefPackage.ARRAY_TYPE__EPACKAGE: + return getEPackage() != null; + case JavaRefPackage.ARRAY_TYPE__ABSTRACT: + return abstract_ != ABSTRACT_EDEFAULT; + case JavaRefPackage.ARRAY_TYPE__INTERFACE: + return interface_ != INTERFACE_EDEFAULT; + case JavaRefPackage.ARRAY_TYPE__ESUPER_TYPES: + return eSuperTypes != null && !eSuperTypes.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EOPERATIONS: + return eOperations != null && !eOperations.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EALL_ATTRIBUTES: + return !getEAllAttributes().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EALL_REFERENCES: + return !getEAllReferences().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EREFERENCES: + return !getEReferences().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EATTRIBUTES: + return !getEAttributes().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EALL_CONTAINMENTS: + return !getEAllContainments().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EALL_OPERATIONS: + return !getEAllOperations().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EALL_STRUCTURAL_FEATURES: + return !getEAllStructuralFeatures().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EALL_SUPER_TYPES: + return !getEAllSuperTypes().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__EID_ATTRIBUTE: + return getEIDAttribute() != null; + case JavaRefPackage.ARRAY_TYPE__ESTRUCTURAL_FEATURES: + return eStructuralFeatures != null && !eStructuralFeatures.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__KIND: + return kind != KIND_EDEFAULT; + case JavaRefPackage.ARRAY_TYPE__PUBLIC: + return public_ != PUBLIC_EDEFAULT; + case JavaRefPackage.ARRAY_TYPE__FINAL: + return final_ != FINAL_EDEFAULT; + case JavaRefPackage.ARRAY_TYPE__IMPLEMENTS_INTERFACES: + return implementsInterfaces != null && !implementsInterfaces.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__CLASS_IMPORT: + return classImport != null && !classImport.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__PACKAGE_IMPORTS: + return packageImports != null && !packageImports.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__FIELDS: + return fields != null && !fields.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__METHODS: + return methods != null && !methods.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__INITIALIZERS: + return initializers != null && !initializers.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__DECLARED_CLASSES: + return declaredClasses != null && !declaredClasses.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__DECLARING_CLASS: + return declaringClass != null; + case JavaRefPackage.ARRAY_TYPE__JAVA_PACKAGE: + return basicGetJavaPackage() != null; + case JavaRefPackage.ARRAY_TYPE__EVENTS: + return events != null && !events.isEmpty(); + case JavaRefPackage.ARRAY_TYPE__ALL_EVENTS: + return !getAllEvents().isEmpty(); + case JavaRefPackage.ARRAY_TYPE__ARRAY_DIMENSIONS: + return arrayDimensions != ARRAY_DIMENSIONS_EDEFAULT; + case JavaRefPackage.ARRAY_TYPE__COMPONENT_TYPE: + return componentType != null; + } + 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.ARRAY_TYPE__EANNOTATIONS: + getEAnnotations().clear(); + getEAnnotations().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__NAME: + setName((String)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__INSTANCE_CLASS_NAME: + setInstanceClassName((String)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__ABSTRACT: + setAbstract(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.ARRAY_TYPE__INTERFACE: + setInterface(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.ARRAY_TYPE__ESUPER_TYPES: + getESuperTypes().clear(); + getESuperTypes().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__EOPERATIONS: + getEOperations().clear(); + getEOperations().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__ESTRUCTURAL_FEATURES: + getEStructuralFeatures().clear(); + getEStructuralFeatures().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__KIND: + setKind((TypeKind)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__PUBLIC: + setPublic(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.ARRAY_TYPE__FINAL: + setFinal(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.ARRAY_TYPE__IMPLEMENTS_INTERFACES: + getImplementsInterfaces().clear(); + getImplementsInterfaces().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__CLASS_IMPORT: + getClassImport().clear(); + getClassImport().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__PACKAGE_IMPORTS: + getPackageImports().clear(); + getPackageImports().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__FIELDS: + getFields().clear(); + getFields().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__METHODS: + getMethods().clear(); + getMethods().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__INITIALIZERS: + getInitializers().clear(); + getInitializers().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__DECLARED_CLASSES: + getDeclaredClasses().clear(); + getDeclaredClasses().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__DECLARING_CLASS: + setDeclaringClass((JavaClass)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__EVENTS: + getEvents().clear(); + getEvents().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__ALL_EVENTS: + getAllEvents().clear(); + getAllEvents().addAll((Collection)newValue); + return; + case JavaRefPackage.ARRAY_TYPE__ARRAY_DIMENSIONS: + setArrayDimensions(((Integer)newValue).intValue()); + return; + case JavaRefPackage.ARRAY_TYPE__COMPONENT_TYPE: + setComponentType((EClassifier)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.ARRAY_TYPE__EANNOTATIONS: + getEAnnotations().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__INSTANCE_CLASS_NAME: + setInstanceClassName(INSTANCE_CLASS_NAME_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__ABSTRACT: + setAbstract(ABSTRACT_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__INTERFACE: + setInterface(INTERFACE_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__ESUPER_TYPES: + getESuperTypes().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__EOPERATIONS: + getEOperations().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__ESTRUCTURAL_FEATURES: + getEStructuralFeatures().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__KIND: + setKind(KIND_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__PUBLIC: + setPublic(PUBLIC_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__FINAL: + setFinal(FINAL_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__IMPLEMENTS_INTERFACES: + getImplementsInterfaces().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__CLASS_IMPORT: + getClassImport().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__PACKAGE_IMPORTS: + getPackageImports().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__FIELDS: + getFields().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__METHODS: + getMethods().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__INITIALIZERS: + getInitializers().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__DECLARED_CLASSES: + getDeclaredClasses().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__DECLARING_CLASS: + setDeclaringClass((JavaClass)null); + return; + case JavaRefPackage.ARRAY_TYPE__EVENTS: + getEvents().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__ALL_EVENTS: + getAllEvents().clear(); + return; + case JavaRefPackage.ARRAY_TYPE__ARRAY_DIMENSIONS: + setArrayDimensions(ARRAY_DIMENSIONS_EDEFAULT); + return; + case JavaRefPackage.ARRAY_TYPE__COMPONENT_TYPE: + setComponentType((EClassifier)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (arrayDimensions: "); + result.append(arrayDimensions); + result.append(')'); + return result.toString(); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public EClassifier getComponentTypeGen() + { + if (componentType != null && componentType.eIsProxy()) { + EClassifier oldComponentType = componentType; + componentType = (EClassifier)eResolveProxy((InternalEObject)componentType); + if (componentType != oldComponentType) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaRefPackage.ARRAY_TYPE__COMPONENT_TYPE, oldComponentType, componentType)); + } + } + return componentType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClassifier basicGetComponentType() + { + return componentType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setComponentType(EClassifier newComponentType) + { + EClassifier oldComponentType = componentType; + componentType = newComponentType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.ARRAY_TYPE__COMPONENT_TYPE, oldComponentType, componentType)); + } + + /** + * <!-- 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.ARRAY_TYPE__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__EPACKAGE: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.ARRAY_TYPE__EPACKAGE, msgs); + case JavaRefPackage.ARRAY_TYPE__EOPERATIONS: + return ((InternalEList)getEOperations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__ESTRUCTURAL_FEATURES: + return ((InternalEList)getEStructuralFeatures()).basicAdd(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__FIELDS: + return ((InternalEList)getFields()).basicAdd(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__METHODS: + return ((InternalEList)getMethods()).basicAdd(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__INITIALIZERS: + return ((InternalEList)getInitializers()).basicAdd(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__DECLARED_CLASSES: + return ((InternalEList)getDeclaredClasses()).basicAdd(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__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.ARRAY_TYPE__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__EPACKAGE: + return eBasicSetContainer(null, JavaRefPackage.ARRAY_TYPE__EPACKAGE, msgs); + case JavaRefPackage.ARRAY_TYPE__EOPERATIONS: + return ((InternalEList)getEOperations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__ESTRUCTURAL_FEATURES: + return ((InternalEList)getEStructuralFeatures()).basicRemove(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__FIELDS: + return ((InternalEList)getFields()).basicRemove(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__METHODS: + return ((InternalEList)getMethods()).basicRemove(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__INITIALIZERS: + return ((InternalEList)getInitializers()).basicRemove(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__DECLARED_CLASSES: + return ((InternalEList)getDeclaredClasses()).basicRemove(otherEnd, msgs); + case JavaRefPackage.ARRAY_TYPE__DECLARING_CLASS: + return basicSetDeclaringClass(null, msgs); + case JavaRefPackage.ARRAY_TYPE__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.ARRAY_TYPE__EPACKAGE: + return ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.EPACKAGE__ECLASSIFIERS, EPackage.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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.ARRAY_TYPE__EANNOTATIONS: + return getEAnnotations(); + case JavaRefPackage.ARRAY_TYPE__NAME: + return getName(); + case JavaRefPackage.ARRAY_TYPE__INSTANCE_CLASS_NAME: + return getInstanceClassName(); + case JavaRefPackage.ARRAY_TYPE__INSTANCE_CLASS: + return getInstanceClass(); + case JavaRefPackage.ARRAY_TYPE__DEFAULT_VALUE: + return getDefaultValue(); + case JavaRefPackage.ARRAY_TYPE__EPACKAGE: + return getEPackage(); + case JavaRefPackage.ARRAY_TYPE__ABSTRACT: + return isAbstract() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.ARRAY_TYPE__INTERFACE: + return isInterface() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.ARRAY_TYPE__ESUPER_TYPES: + return getESuperTypes(); + case JavaRefPackage.ARRAY_TYPE__EOPERATIONS: + return getEOperations(); + case JavaRefPackage.ARRAY_TYPE__EALL_ATTRIBUTES: + return getEAllAttributes(); + case JavaRefPackage.ARRAY_TYPE__EALL_REFERENCES: + return getEAllReferences(); + case JavaRefPackage.ARRAY_TYPE__EREFERENCES: + return getEReferences(); + case JavaRefPackage.ARRAY_TYPE__EATTRIBUTES: + return getEAttributes(); + case JavaRefPackage.ARRAY_TYPE__EALL_CONTAINMENTS: + return getEAllContainments(); + case JavaRefPackage.ARRAY_TYPE__EALL_OPERATIONS: + return getEAllOperations(); + case JavaRefPackage.ARRAY_TYPE__EALL_STRUCTURAL_FEATURES: + return getEAllStructuralFeatures(); + case JavaRefPackage.ARRAY_TYPE__EALL_SUPER_TYPES: + return getEAllSuperTypes(); + case JavaRefPackage.ARRAY_TYPE__EID_ATTRIBUTE: + return getEIDAttribute(); + case JavaRefPackage.ARRAY_TYPE__ESTRUCTURAL_FEATURES: + return getEStructuralFeatures(); + case JavaRefPackage.ARRAY_TYPE__KIND: + return getKind(); + case JavaRefPackage.ARRAY_TYPE__PUBLIC: + return isPublic() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.ARRAY_TYPE__FINAL: + return isFinal() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.ARRAY_TYPE__IMPLEMENTS_INTERFACES: + return getImplementsInterfaces(); + case JavaRefPackage.ARRAY_TYPE__CLASS_IMPORT: + return getClassImport(); + case JavaRefPackage.ARRAY_TYPE__PACKAGE_IMPORTS: + return getPackageImports(); + case JavaRefPackage.ARRAY_TYPE__FIELDS: + return getFields(); + case JavaRefPackage.ARRAY_TYPE__METHODS: + return getMethods(); + case JavaRefPackage.ARRAY_TYPE__INITIALIZERS: + return getInitializers(); + case JavaRefPackage.ARRAY_TYPE__DECLARED_CLASSES: + return getDeclaredClasses(); + case JavaRefPackage.ARRAY_TYPE__DECLARING_CLASS: + if (resolve) return getDeclaringClass(); + return basicGetDeclaringClass(); + case JavaRefPackage.ARRAY_TYPE__JAVA_PACKAGE: + if (resolve) return getJavaPackage(); + return basicGetJavaPackage(); + case JavaRefPackage.ARRAY_TYPE__EVENTS: + return getEvents(); + case JavaRefPackage.ARRAY_TYPE__ALL_EVENTS: + return getAllEvents(); + case JavaRefPackage.ARRAY_TYPE__ARRAY_DIMENSIONS: + return new Integer(getArrayDimensions()); + case JavaRefPackage.ARRAY_TYPE__COMPONENT_TYPE: + if (resolve) return getComponentType(); + return basicGetComponentType(); + } + return eDynamicGet(eFeature, resolve); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/BlockImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/BlockImpl.java new file mode 100644 index 000000000..be902a23a --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/BlockImpl.java @@ -0,0 +1,255 @@ +package org.eclipse.jem.java.impl; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: BlockImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.Block; +import org.eclipse.jem.java.JavaRefPackage; + +/** + * @generated + */ +public class BlockImpl extends EObjectImpl implements Block{ + + /** + * The default value of the '{@link #getSource() <em>Source</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSource() + * @generated + * @ordered + */ + protected static final String SOURCE_EDEFAULT = null; + + + /** + * @generated This field/method will be replaced during code generation. + */ + /** + * @generated This field/method will be replaced during code generation. + */ + protected String source = SOURCE_EDEFAULT; + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * @generated This field/method will be replaced during code generation. + */ + protected String name = NAME_EDEFAULT; + /** + * The cached value of the '{@link #getContents() <em>Contents</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContents() + * @generated + * @ordered + */ + protected EList contents = null; + + protected BlockImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getBlock(); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public String getSource() + { + return source; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void setSource(String newSource) + { + String oldSource = source; + source = newSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.BLOCK__SOURCE, oldSource, source)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public String getName() + { + return name; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.BLOCK__NAME, oldName, name)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public EList getContents() + { + if (contents == null) { + contents = new EObjectContainmentEList(Block.class, this, JavaRefPackage.BLOCK__CONTENTS); + } + return contents; + } + + /** + * <!-- 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.BLOCK__CONTENTS: + return ((InternalEList)getContents()).basicRemove(otherEnd, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.BLOCK__SOURCE: + return getSource(); + case JavaRefPackage.BLOCK__NAME: + return getName(); + case JavaRefPackage.BLOCK__CONTENTS: + return getContents(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.BLOCK__SOURCE: + return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); + case JavaRefPackage.BLOCK__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.BLOCK__CONTENTS: + return contents != null && !contents.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.BLOCK__SOURCE: + setSource((String)newValue); + return; + case JavaRefPackage.BLOCK__NAME: + setName((String)newValue); + return; + case JavaRefPackage.BLOCK__CONTENTS: + getContents().clear(); + getContents().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.BLOCK__SOURCE: + setSource(SOURCE_EDEFAULT); + return; + case JavaRefPackage.BLOCK__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.BLOCK__CONTENTS: + getContents().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (source: "); + result.append(source); + result.append(", name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/CommentImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/CommentImpl.java new file mode 100644 index 000000000..1a1d8fc8d --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/CommentImpl.java @@ -0,0 +1,149 @@ +package org.eclipse.jem.java.impl; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: CommentImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.Comment; +import org.eclipse.jem.java.JavaRefPackage; +/** + * @generated + */ +public class CommentImpl extends BlockImpl implements Comment{ + + + protected CommentImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getComment(); + } + + /** + * <!-- 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.COMMENT__CONTENTS: + return ((InternalEList)getContents()).basicRemove(otherEnd, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.COMMENT__SOURCE: + return getSource(); + case JavaRefPackage.COMMENT__NAME: + return getName(); + case JavaRefPackage.COMMENT__CONTENTS: + return getContents(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.COMMENT__SOURCE: + setSource((String)newValue); + return; + case JavaRefPackage.COMMENT__NAME: + setName((String)newValue); + return; + case JavaRefPackage.COMMENT__CONTENTS: + getContents().clear(); + getContents().addAll((Collection)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.COMMENT__SOURCE: + setSource(SOURCE_EDEFAULT); + return; + case JavaRefPackage.COMMENT__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.COMMENT__CONTENTS: + getContents().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.COMMENT__SOURCE: + return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); + case JavaRefPackage.COMMENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.COMMENT__CONTENTS: + return contents != null && !contents.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/FieldImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/FieldImpl.java new file mode 100644 index 000000000..6327a8d72 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/FieldImpl.java @@ -0,0 +1,711 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: FieldImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.EAttributeImpl; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.Block; +import org.eclipse.jem.java.Field; +import org.eclipse.jem.java.JavaClass; +import org.eclipse.jem.java.JavaHelpers; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.JavaURL; +import org.eclipse.jem.java.JavaVisibilityKind; +import org.eclipse.jem.internal.java.adapters.ReadAdaptor; + +/** + * @generated + */ +public class FieldImpl extends EAttributeImpl implements Field{ + + /** + * 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 cached value of the '{@link #isFinal() <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isFinal() + * @generated + * @ordered + */ + protected boolean final_ = FINAL_EDEFAULT; + + /** + * The default value of the '{@link #isStatic() <em>Static</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isStatic() + * @generated + * @ordered + */ + protected static final boolean STATIC_EDEFAULT = false; + + /** + * The cached value of the '{@link #isStatic() <em>Static</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isStatic() + * @generated + * @ordered + */ + protected boolean static_ = STATIC_EDEFAULT; + + /** + * The default value of the '{@link #getJavaVisibility() <em>Java Visibility</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getJavaVisibility() + * @generated + * @ordered + */ + protected static final JavaVisibilityKind JAVA_VISIBILITY_EDEFAULT = JavaVisibilityKind.PUBLIC_LITERAL; + + + /** + * @generated This field/method will be replaced during code generation. + */ + protected JavaVisibilityKind javaVisibility = JAVA_VISIBILITY_EDEFAULT; + /** + * The cached value of the '{@link #getInitializer() <em>Initializer</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInitializer() + * @generated + * @ordered + */ + protected Block initializer = null; + + protected FieldImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getField(); + } + + /** + * createFieldRef - return a JavaURL reference to the named field in the named Java class + * in the form "package.class_field" + */ + public static Field createFieldRef(String className, String fieldName) { + Field ref = JavaRefFactoryImpl.getActiveFactory().createField(); + JavaURL javaurl = new JavaURL(className + "/" + fieldName); + ((InternalEObject) ref).eSetProxyURI(URI.createURI(javaurl.getFullString())); + return ref; + } + /** + * Get the class that this field is within. + */ + public JavaClass getContainingJavaClass() { + return (JavaClass) this.getJavaClass(); + } + /** + * Overrides to perform lazy initializations/reflection. + */ + public EClassifier getEType() { + if (!hasReflected) reflectValues(); + return super.getEType(); + } + public Block getInitializer() { + if (!hasReflected) reflectValues(); + return getInitializerGen(); + } + public boolean isFinal() { + if (!hasReflected) reflectValues(); + return isFinalGen(); + } + public boolean isStatic() { + if (!hasReflected) reflectValues(); + return isStaticGen(); + } + public JavaHelpers getJavaType() { + return (JavaHelpers)getEType(); + } + public JavaVisibilityKind getJavaVisibility() { + if (!hasReflected) reflectValues(); + return getJavaVisibilityGen(); + } +protected ReadAdaptor getReadAdaptor() { + return (ReadAdaptor)EcoreUtil.getRegisteredAdapter(this, ReadAdaptor.TYPE_KEY); + } + +//FB protected Object getReadAdaptorValue(EObject attribute) { +//FB if (getReadAdaptor() != null) +//FB return readAdaptor.getValueIn(this, attribute); +//FB return null; +//FB } + +//FB BEGIN + protected boolean hasReflected = false; + + protected void reflectValues() + { + ReadAdaptor readAdaptor = getReadAdaptor(); + if (readAdaptor != null) hasReflected = readAdaptor.reflectValuesIfNecessary(); + } + + /** + * Is this field an array type. + */ + public boolean isArray() { + return getJavaType().isArray(); + } + + /** + * Overridden to prevent the reflection of the class. + */ + public EList eContents() { + EList results = new BasicEList(); +//FB +//FB EList containments = eClass().getEAllContainments(); +//FB if (containments != null) { +//FB Iterator i = containments.iterator(); +//FB while (i.hasNext()) { +//FB EStructuralFeature sf = (EStructuralFeature) i.next(); +//FB //Change from super to primRefValue +//FB Object value = primRefValue(sf); +//FB //EndChange +//FB if (value != null) +//FB if (sf.isMany()) +//FB results.addAll((Collection) value); +//FB else +//FB results.add(value); +//FB } +//FB } + if (getInitializerGen() != null) results.add(getInitializerGen()); //FB + return results; + } + + public String toString() { + return getClass().getName() + " " + "(" + getName() + ")"; + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavaVisibilityKind getJavaVisibilityGen() + { + return javaVisibility; + } + + /** + * @generated This field/method will be replaced during code generation + */ + public boolean isFinalGen() + { + return final_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFinal(boolean newFinal) + { + boolean oldFinal = final_; + final_ = newFinal; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.FIELD__FINAL, oldFinal, final_)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public boolean isStaticGen() + { + return static_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStatic(boolean newStatic) + { + boolean oldStatic = static_; + static_ = newStatic; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.FIELD__STATIC, oldStatic, static_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setJavaVisibility(JavaVisibilityKind newJavaVisibility) + { + JavaVisibilityKind oldJavaVisibility = javaVisibility; + javaVisibility = newJavaVisibility == null ? JAVA_VISIBILITY_EDEFAULT : newJavaVisibility; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.FIELD__JAVA_VISIBILITY, oldJavaVisibility, javaVisibility)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public JavaClass getJavaClass() + { + if (eContainerFeatureID != JavaRefPackage.FIELD__JAVA_CLASS) return null; + return (JavaClass)eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setJavaClass(JavaClass newJavaClass) + { + if (newJavaClass != eContainer || (eContainerFeatureID != JavaRefPackage.FIELD__JAVA_CLASS && newJavaClass != null)) { + if (EcoreUtil.isAncestor(this, newJavaClass)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newJavaClass != null) + msgs = ((InternalEObject)newJavaClass).eInverseAdd(this, JavaRefPackage.JAVA_CLASS__FIELDS, JavaClass.class, msgs); + msgs = eBasicSetContainer((InternalEObject)newJavaClass, JavaRefPackage.FIELD__JAVA_CLASS, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.FIELD__JAVA_CLASS, newJavaClass, newJavaClass)); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.FIELD__EANNOTATIONS: + return eAnnotations != null && !eAnnotations.isEmpty(); + case JavaRefPackage.FIELD__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.FIELD__ORDERED: + return ordered != ORDERED_EDEFAULT; + case JavaRefPackage.FIELD__UNIQUE: + return unique != UNIQUE_EDEFAULT; + case JavaRefPackage.FIELD__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + case JavaRefPackage.FIELD__UPPER_BOUND: + return upperBound != UPPER_BOUND_EDEFAULT; + case JavaRefPackage.FIELD__MANY: + return isMany() != false; + case JavaRefPackage.FIELD__REQUIRED: + return isRequired() != false; + case JavaRefPackage.FIELD__ETYPE: + return eType != null; + case JavaRefPackage.FIELD__CHANGEABLE: + return changeable != CHANGEABLE_EDEFAULT; + case JavaRefPackage.FIELD__VOLATILE: + return volatile_ != VOLATILE_EDEFAULT; + case JavaRefPackage.FIELD__TRANSIENT: + return transient_ != TRANSIENT_EDEFAULT; + case JavaRefPackage.FIELD__DEFAULT_VALUE_LITERAL: + return DEFAULT_VALUE_LITERAL_EDEFAULT == null ? defaultValueLiteral != null : !DEFAULT_VALUE_LITERAL_EDEFAULT.equals(defaultValueLiteral); + case JavaRefPackage.FIELD__DEFAULT_VALUE: + return getDefaultValue() != null; + case JavaRefPackage.FIELD__UNSETTABLE: + return unsettable != UNSETTABLE_EDEFAULT; + case JavaRefPackage.FIELD__DERIVED: + return derived != DERIVED_EDEFAULT; + case JavaRefPackage.FIELD__ECONTAINING_CLASS: + return getEContainingClass() != null; + case JavaRefPackage.FIELD__ID: + return iD != ID_EDEFAULT; + case JavaRefPackage.FIELD__EATTRIBUTE_TYPE: + return basicGetEAttributeType() != null; + case JavaRefPackage.FIELD__FINAL: + return final_ != FINAL_EDEFAULT; + case JavaRefPackage.FIELD__STATIC: + return static_ != STATIC_EDEFAULT; + case JavaRefPackage.FIELD__JAVA_VISIBILITY: + return javaVisibility != JAVA_VISIBILITY_EDEFAULT; + case JavaRefPackage.FIELD__JAVA_CLASS: + return getJavaClass() != null; + case JavaRefPackage.FIELD__INITIALIZER: + return initializer != null; + } + 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.FIELD__EANNOTATIONS: + getEAnnotations().clear(); + getEAnnotations().addAll((Collection)newValue); + return; + case JavaRefPackage.FIELD__NAME: + setName((String)newValue); + return; + case JavaRefPackage.FIELD__ORDERED: + setOrdered(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__UNIQUE: + setUnique(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__LOWER_BOUND: + setLowerBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.FIELD__UPPER_BOUND: + setUpperBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.FIELD__ETYPE: + setEType((EClassifier)newValue); + return; + case JavaRefPackage.FIELD__CHANGEABLE: + setChangeable(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__VOLATILE: + setVolatile(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__TRANSIENT: + setTransient(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__DEFAULT_VALUE_LITERAL: + setDefaultValueLiteral((String)newValue); + return; + case JavaRefPackage.FIELD__UNSETTABLE: + setUnsettable(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__DERIVED: + setDerived(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__ID: + setID(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__FINAL: + setFinal(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__STATIC: + setStatic(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.FIELD__JAVA_VISIBILITY: + setJavaVisibility((JavaVisibilityKind)newValue); + return; + case JavaRefPackage.FIELD__JAVA_CLASS: + setJavaClass((JavaClass)newValue); + return; + case JavaRefPackage.FIELD__INITIALIZER: + setInitializer((Block)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.FIELD__EANNOTATIONS: + getEAnnotations().clear(); + return; + case JavaRefPackage.FIELD__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.FIELD__ORDERED: + setOrdered(ORDERED_EDEFAULT); + return; + case JavaRefPackage.FIELD__UNIQUE: + setUnique(UNIQUE_EDEFAULT); + return; + case JavaRefPackage.FIELD__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + case JavaRefPackage.FIELD__UPPER_BOUND: + setUpperBound(UPPER_BOUND_EDEFAULT); + return; + case JavaRefPackage.FIELD__ETYPE: + setEType((EClassifier)null); + return; + case JavaRefPackage.FIELD__CHANGEABLE: + setChangeable(CHANGEABLE_EDEFAULT); + return; + case JavaRefPackage.FIELD__VOLATILE: + setVolatile(VOLATILE_EDEFAULT); + return; + case JavaRefPackage.FIELD__TRANSIENT: + setTransient(TRANSIENT_EDEFAULT); + return; + case JavaRefPackage.FIELD__DEFAULT_VALUE_LITERAL: + setDefaultValueLiteral(DEFAULT_VALUE_LITERAL_EDEFAULT); + return; + case JavaRefPackage.FIELD__UNSETTABLE: + setUnsettable(UNSETTABLE_EDEFAULT); + return; + case JavaRefPackage.FIELD__DERIVED: + setDerived(DERIVED_EDEFAULT); + return; + case JavaRefPackage.FIELD__ID: + setID(ID_EDEFAULT); + return; + case JavaRefPackage.FIELD__FINAL: + setFinal(FINAL_EDEFAULT); + return; + case JavaRefPackage.FIELD__STATIC: + setStatic(STATIC_EDEFAULT); + return; + case JavaRefPackage.FIELD__JAVA_VISIBILITY: + setJavaVisibility(JAVA_VISIBILITY_EDEFAULT); + return; + case JavaRefPackage.FIELD__JAVA_CLASS: + setJavaClass((JavaClass)null); + return; + case JavaRefPackage.FIELD__INITIALIZER: + setInitializer((Block)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public Block getInitializerGen() + { + return initializer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetInitializer(Block newInitializer, NotificationChain msgs) + { + Block oldInitializer = initializer; + initializer = newInitializer; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JavaRefPackage.FIELD__INITIALIZER, oldInitializer, newInitializer); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInitializer(Block newInitializer) + { + if (newInitializer != initializer) { + NotificationChain msgs = null; + if (initializer != null) + msgs = ((InternalEObject)initializer).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JavaRefPackage.FIELD__INITIALIZER, null, msgs); + if (newInitializer != null) + msgs = ((InternalEObject)newInitializer).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - JavaRefPackage.FIELD__INITIALIZER, null, msgs); + msgs = basicSetInitializer(newInitializer, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.FIELD__INITIALIZER, newInitializer, newInitializer)); + } + + /** + * <!-- 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.FIELD__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.FIELD__ECONTAINING_CLASS: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.FIELD__ECONTAINING_CLASS, msgs); + case JavaRefPackage.FIELD__JAVA_CLASS: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.FIELD__JAVA_CLASS, 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.FIELD__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.FIELD__ECONTAINING_CLASS: + return eBasicSetContainer(null, JavaRefPackage.FIELD__ECONTAINING_CLASS, msgs); + case JavaRefPackage.FIELD__JAVA_CLASS: + return eBasicSetContainer(null, JavaRefPackage.FIELD__JAVA_CLASS, msgs); + case JavaRefPackage.FIELD__INITIALIZER: + return basicSetInitializer(null, 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.FIELD__ECONTAINING_CLASS: + return ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.ECLASS__ESTRUCTURAL_FEATURES, EClass.class, msgs); + case JavaRefPackage.FIELD__JAVA_CLASS: + return ((InternalEObject)eContainer).eInverseRemove(this, JavaRefPackage.JAVA_CLASS__FIELDS, JavaClass.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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.FIELD__EANNOTATIONS: + return getEAnnotations(); + case JavaRefPackage.FIELD__NAME: + return getName(); + case JavaRefPackage.FIELD__ORDERED: + return isOrdered() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__UNIQUE: + return isUnique() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__LOWER_BOUND: + return new Integer(getLowerBound()); + case JavaRefPackage.FIELD__UPPER_BOUND: + return new Integer(getUpperBound()); + case JavaRefPackage.FIELD__MANY: + return isMany() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__REQUIRED: + return isRequired() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__ETYPE: + if (resolve) return getEType(); + return basicGetEType(); + case JavaRefPackage.FIELD__CHANGEABLE: + return isChangeable() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__VOLATILE: + return isVolatile() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__TRANSIENT: + return isTransient() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__DEFAULT_VALUE_LITERAL: + return getDefaultValueLiteral(); + case JavaRefPackage.FIELD__DEFAULT_VALUE: + return getDefaultValue(); + case JavaRefPackage.FIELD__UNSETTABLE: + return isUnsettable() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__DERIVED: + return isDerived() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__ECONTAINING_CLASS: + return getEContainingClass(); + case JavaRefPackage.FIELD__ID: + return isID() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__EATTRIBUTE_TYPE: + if (resolve) return getEAttributeType(); + return basicGetEAttributeType(); + case JavaRefPackage.FIELD__FINAL: + return isFinal() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__STATIC: + return isStatic() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.FIELD__JAVA_VISIBILITY: + return getJavaVisibility(); + case JavaRefPackage.FIELD__JAVA_CLASS: + return getJavaClass(); + case JavaRefPackage.FIELD__INITIALIZER: + return getInitializer(); + } + 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(" (final: "); + result.append(final_); + result.append(", static: "); + result.append(static_); + result.append(", javaVisibility: "); + result.append(javaVisibility); + result.append(')'); + return result.toString(); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/InitializerImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/InitializerImpl.java new file mode 100644 index 000000000..fa3e0ed13 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/InitializerImpl.java @@ -0,0 +1,313 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: InitializerImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.jem.java.Block; +import org.eclipse.jem.java.Initializer; +import org.eclipse.jem.java.JavaClass; +import org.eclipse.jem.java.JavaRefPackage; +/** + * @generated + */ +public class InitializerImpl extends EObjectImpl implements Initializer{ + + /** + * The default value of the '{@link #getIsStatic() <em>Is Static</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getIsStatic() + * @generated + * @ordered + */ + protected static final Boolean IS_STATIC_EDEFAULT = null; + + /** + * @generated This field/method will be replaced during code generation. + */ + /** + * @generated This field/method will be replaced during code generation. + */ + protected Boolean isStatic = IS_STATIC_EDEFAULT; + /** + * The cached value of the '{@link #getSource() <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSource() + * @generated + * @ordered + */ + protected Block source = null; + + protected InitializerImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getInitializer(); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public Boolean getIsStatic() + { + return isStatic; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public void setIsStatic(Boolean newIsStatic) + { + Boolean oldIsStatic = isStatic; + isStatic = newIsStatic; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.INITIALIZER__IS_STATIC, oldIsStatic, isStatic)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public JavaClass getJavaClass() + { + if (eContainerFeatureID != JavaRefPackage.INITIALIZER__JAVA_CLASS) return null; + return (JavaClass)eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setJavaClass(JavaClass newJavaClass) + { + if (newJavaClass != eContainer || (eContainerFeatureID != JavaRefPackage.INITIALIZER__JAVA_CLASS && newJavaClass != null)) { + if (EcoreUtil.isAncestor(this, newJavaClass)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newJavaClass != null) + msgs = ((InternalEObject)newJavaClass).eInverseAdd(this, JavaRefPackage.JAVA_CLASS__INITIALIZERS, JavaClass.class, msgs); + msgs = eBasicSetContainer((InternalEObject)newJavaClass, JavaRefPackage.INITIALIZER__JAVA_CLASS, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.INITIALIZER__JAVA_CLASS, newJavaClass, newJavaClass)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public Block getSource() + { + if (source != null && source.eIsProxy()) { + Block oldSource = source; + source = (Block)eResolveProxy((InternalEObject)source); + if (source != oldSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaRefPackage.INITIALIZER__SOURCE, oldSource, source)); + } + } + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Block basicGetSource() + { + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSource(Block newSource) + { + Block oldSource = source; + source = newSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.INITIALIZER__SOURCE, oldSource, source)); + } + + /** + * <!-- 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.INITIALIZER__JAVA_CLASS: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.INITIALIZER__JAVA_CLASS, 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.INITIALIZER__JAVA_CLASS: + return eBasicSetContainer(null, JavaRefPackage.INITIALIZER__JAVA_CLASS, 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.INITIALIZER__JAVA_CLASS: + return ((InternalEObject)eContainer).eInverseRemove(this, JavaRefPackage.JAVA_CLASS__INITIALIZERS, JavaClass.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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.INITIALIZER__IS_STATIC: + return getIsStatic(); + case JavaRefPackage.INITIALIZER__JAVA_CLASS: + return getJavaClass(); + case JavaRefPackage.INITIALIZER__SOURCE: + if (resolve) return getSource(); + return basicGetSource(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.INITIALIZER__IS_STATIC: + return IS_STATIC_EDEFAULT == null ? isStatic != null : !IS_STATIC_EDEFAULT.equals(isStatic); + case JavaRefPackage.INITIALIZER__JAVA_CLASS: + return getJavaClass() != null; + case JavaRefPackage.INITIALIZER__SOURCE: + return source != null; + } + 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.INITIALIZER__IS_STATIC: + setIsStatic((Boolean)newValue); + return; + case JavaRefPackage.INITIALIZER__JAVA_CLASS: + setJavaClass((JavaClass)newValue); + return; + case JavaRefPackage.INITIALIZER__SOURCE: + setSource((Block)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.INITIALIZER__IS_STATIC: + setIsStatic(IS_STATIC_EDEFAULT); + return; + case JavaRefPackage.INITIALIZER__JAVA_CLASS: + setJavaClass((JavaClass)null); + return; + case JavaRefPackage.INITIALIZER__SOURCE: + setSource((Block)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (isStatic: "); + result.append(isStatic); + result.append(')'); + return result.toString(); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaClassImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaClassImpl.java new file mode 100644 index 000000000..253662b7e --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaClassImpl.java @@ -0,0 +1,1813 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaClassImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +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.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EObject; +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.impl.ESuperAdapter; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +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.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.Field; +import org.eclipse.jem.java.InheritanceCycleException; +import org.eclipse.jem.java.Initializer; +import org.eclipse.jem.java.JavaClass; +import org.eclipse.jem.java.JavaDataType; +import org.eclipse.jem.java.JavaEvent; +import org.eclipse.jem.java.JavaHelpers; +import org.eclipse.jem.java.JavaPackage; +import org.eclipse.jem.java.JavaParameter; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.JavaURL; +import org.eclipse.jem.java.JavaVisibilityKind; +import org.eclipse.jem.java.Method; +import org.eclipse.jem.java.TypeKind; +import org.eclipse.jem.internal.java.adapters.InternalReadAdaptable; +import org.eclipse.jem.internal.java.adapters.JavaReflectionAdaptor; +import org.eclipse.jem.internal.java.adapters.ReadAdaptor; +import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter; +import org.eclipse.jem.internal.java.instantiation.IInstantiationInstance; +/** + * <!-- begin-user-doc --> + * @implements InternalReadAdaptable + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getKind <em>Kind</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#isPublic <em>Public</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#isFinal <em>Final</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getImplementsInterfaces <em>Implements Interfaces</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getClassImport <em>Class Import</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getPackageImports <em>Package Imports</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getFields <em>Fields</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getMethods <em>Methods</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getInitializers <em>Initializers</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getDeclaredClasses <em>Declared Classes</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getDeclaringClass <em>Declaring Class</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getJavaPackage <em>Java Package</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getEvents <em>Events</em>}</li> + * <li>{@link org.eclipse.jem.java.impl.JavaClassImpl#getAllEvents <em>All Events</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class JavaClassImpl extends EClassImpl implements JavaClass, InternalReadAdaptable { + /** + * 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 cached value of the '{@link #isPublic() <em>Public</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isPublic() + * @generated + * @ordered + */ + protected boolean public_ = PUBLIC_EDEFAULT; + /** + * 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 cached value of the '{@link #isFinal() <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isFinal() + * @generated + * @ordered + */ + protected boolean final_ = FINAL_EDEFAULT; + /** + * 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(); + } + /** + * <!-- 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 + */ + public static JavaClass createClassRef(String targetName) { + JavaClass ref = JavaRefFactoryImpl.getActiveFactory().createJavaClass(); + JavaURL javaurl = new JavaURL(targetName); + ((InternalEObject) ref).eSetProxyURI(URI.createURI(javaurl.getFullString())); + return ref; + } + + /** + * 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; + } + + public EList getAllSupertypes() { + getESuperTypes(); //Force reflection, if needed, before getting all supertypes. + return super.getEAllSuperTypes(); + } + /** + * Overrides to perform reflection if necessary + */ + public EList getClassImport() { + if (!hasReflected) + reflectValues(); + return getClassImportGen(); + } + + /** + * MOF41, attribute, reference are changed to volatile + * Because of this we need to re-implement it here to do the + * merge within the introspection adapter instead. + * The merge done in EClassImpl and above doesn't + * necessarily do what we need. + */ + public EList getEAllOperations() { + IIntrospectionAdapter ia = getIntrospectionAdapter(); + if (ia == null) + return super.getEAllOperations(); // No introspection, do normal. + ESuperAdapter a = getESuperAdapter(); + if (eAllOperations == null || a.isAllOperationsCollectionModified()) + eAllOperations = ia.getEAllOperations(); + return eAllOperations; + } + + public EList getEOperations() { + IIntrospectionAdapter adapter = getIntrospectionAdapter(); + if (adapter != null) + return adapter.getEOperations(); + return super.getEOperations(); + } + + public EList getEOperationsGen() { + // 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 getEStructuralFeaturesGen() { + // 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() { + if (!hasReflected) + reflectValues(); + return getFieldsGen(); + } + /** + * Return all fields, including those from supertypes. + */ + public List getFieldsExtended() { + List fields = new ArrayList(); + collectFieldsExtended(fields); + return fields; + } + public EList getImplementsInterfaces() { + if (!hasReflected) + reflectValues(); + return getImplementsInterfacesGen(); + } + /** + * Return an IntrospectionAdaptor which can introspect our Java properties + */ + protected IIntrospectionAdapter getIntrospectionAdapter() { + return (IIntrospectionAdapter) EcoreUtil.getRegisteredAdapter(this, IIntrospectionAdapter.ADAPTER_KEY); + } + + public String getJavaName() { + return getQualifiedName(); + } + /** + * 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() { + if (!hasReflected) + reflectValues(); + 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()) { + JavaURL url = new JavaURL(eProxyURI().toString()); + result = url.getClassName(); + if (result != null) + result = result.replace('$', '.'); + } + 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() { + if (!hasReflected) + reflectValues(); + 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; + } + /** + * 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()) { + JavaURL url = new JavaURL(eProxyURI().toString()); + String internalName = url.getPackageName(); + if (internalName != null && internalName.length() > 0) + result = internalName + "." + url.getClassName(); + else + result = url.getClassName(); + } 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 ReadAdaptor getReadAdaptor() { + return (ReadAdaptor) EcoreUtil.getRegisteredAdapter(this, ReadAdaptor.TYPE_KEY); + } + + protected boolean hasReflected = false; + + protected void reflectValues() { + ReadAdaptor readAdaptor = getReadAdaptor(); + if (readAdaptor != null) + hasReflected = readAdaptor.reflectValuesIfNecessary(); + } + + public JavaClass getSupertype() { + List list = getESuperTypes(); + if (!list.isEmpty()) + return (JavaClass) list.get(0); + return 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()); + if (!hasReflected) + reflectValues(); //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(" " + ((JavaHelpers) 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() { + // Note: Temporary, inefficient implementation + return ((JavaReflectionAdaptor) EcoreUtil.getRegisteredAdapter(this, ReadAdaptor.TYPE_KEY)).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 = ""; + JavaPackage pack = getJavaPackage(); + if (pack != null && pack.getPackageName().length() != 0) + result = pack.getPackageName() + "." + 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. + */ + public static JavaHelpers reflect(String aQualifiedName, EObject relatedObject) { + Resource r = relatedObject.eResource(); + if (r != null) { + ResourceSet rs = r.getResourceSet(); + if (rs != null) { + return reflect(aQualifiedName, rs); + } + } + return null; + } + /** + * 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. + */ + public static JavaHelpers reflect(String aQualifiedName, ResourceSet set) { + if (aQualifiedName != null) { + int index = aQualifiedName.lastIndexOf("."); + if (index > 0) + return reflect(aQualifiedName.substring(0, index), aQualifiedName.substring(index + 1, aQualifiedName.length()), set); + else + return reflect("", aQualifiedName, set); + } + return null; + } + /** + * 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. + */ + public static JavaHelpers reflect(String aPackageName, String aClassName, ResourceSet set) { + if (aClassName != null && aPackageName != null) { + org.eclipse.jem.internal.java.init.JavaInit.init(); + JavaURL url = new JavaURL(aPackageName, aClassName); + return (JavaHelpers) set.getEObject(URI.createURI(url.getFullString()), true); + } + return null; + } + 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() { + ESuperAdapter adapter = ESuperAdapter.getESuperAdapter(this); + if (adapter != null) + return adapter.getSubclasses(); + return Collections.EMPTY_LIST; + } + public String toString() { + return getClass().getName() + "(" + getQualifiedName() + ")"; + } + public TypeKind getKind() { + if (!hasReflected) + reflectValues(); + 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() { + if (!hasReflected) + reflectValues(); + return isPublicGen(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPublic(boolean newPublic) + { + boolean oldPublic = public_; + public_ = newPublic; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_CLASS__PUBLIC, oldPublic, public_)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public boolean isFinal() + { + return final_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFinal(boolean newFinal) + { + boolean oldFinal = final_; + final_ = newFinal; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_CLASS__FINAL, oldFinal, final_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TypeKind getKindGen() + { + return kind; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isPublicGen() + { + return public_; + } + + public boolean isFinalGen() { + return final_; + } + 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() { + if (!hasReflected) + reflectValues(); + 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 getInstanceClass() != null; + case JavaRefPackage.JAVA_CLASS__DEFAULT_VALUE: + return getDefaultValue() != null; + case JavaRefPackage.JAVA_CLASS__EPACKAGE: + return getEPackage() != null; + case JavaRefPackage.JAVA_CLASS__ABSTRACT: + return abstract_ != ABSTRACT_EDEFAULT; + case JavaRefPackage.JAVA_CLASS__INTERFACE: + return interface_ != 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 public_ != PUBLIC_EDEFAULT; + case JavaRefPackage.JAVA_CLASS__FINAL: + return final_ != 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) { + 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() { + if (!hasReflected) + reflectValues();//Force reflection, if needed, before getting all supertypes. + return super.getEAllSuperTypes(); + } + + public EList getESuperTypes() { + if (!hasReflected) + reflectValues(); + 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 ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.EPACKAGE__ECLASSIFIERS, EPackage.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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(public_); + result.append(", final: "); + result.append(final_); + result.append(')'); + return result.toString(); + } + + /** + * @see org.eclipse.jem.java.adapters.InternalReadAdaptable#setReflected(boolean) + */ + public void setReflected(boolean aBoolean) { + hasReflected = aBoolean; + } +} diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaDataTypeImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaDataTypeImpl.java new file mode 100644 index 000000000..a30e08fe0 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaDataTypeImpl.java @@ -0,0 +1,399 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaDataTypeImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +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.util.InternalEList; + +import org.eclipse.jem.java.JavaClass; +import org.eclipse.jem.java.JavaDataType; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.internal.java.instantiation.IInstantiationInstance; +/** + * @generated + */ +public class JavaDataTypeImpl extends EClassImpl implements JavaDataType{ + + + static final String FALSE = "false"; + static final String DOUBLE_ZERO = "0.0"; + static final String FLOAT_ZERO = "0.0f"; + static final String CHAR_ZERO = "'0'"; + static final String ZERO = "0"; + protected JavaDataTypeImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getJavaDataType(); + } + + /** + * Return the default string representing the default value of the primitive. + */ + public String getDefaultValueString() { + String typeName = getJavaName(); + if (typeName.equals(Boolean.TYPE.getName())) + return FALSE; + if (typeName.equals(Double.TYPE.getName())) + return DOUBLE_ZERO; + if (typeName.equals(Float.TYPE.getName())) + return FLOAT_ZERO; + if (typeName.equals(Character.TYPE.getName())) + return CHAR_ZERO; + return ZERO; + } + /** + * (JavaHelpers)javaName - return the String which represents the Java name for this type + */ + public String getJavaName() { + return getName(); + } + public JavaDataType getPrimitive() { + return this; + } + public String getQualifiedName() { + return getJavaName(); + } + public JavaClass getWrapper() { + String wrapperName = getWrapperQualifiedName(); + if (wrapperName != null) { + return (JavaClass) JavaClassImpl.reflect(wrapperName, this); + } + return null; + } + /** + * getWrapper method comment. + */ + protected String getWrapperQualifiedName() { + String myName = getJavaName(); + if (myName.equals(PRIM_INTEGER_NAME)) + return INTEGER_NAME; + if(myName.equals(PRIM_CHARACTER_NAME)) + return CHARACTER_NAME; + if(myName.equals(PRIM_BOOLEAN_NAME)) + return BOOLEAN_NAME; + if(myName.equals(PRIM_BYTE_NAME)) + return BYTE_NAME; + if(myName.equals(PRIM_SHORT_NAME)) + return SHORT_NAME; + if(myName.equals(PRIM_LONG_NAME)) + return LONG_NAME; + if(myName.equals(PRIM_FLOAT_NAME)) + return FLOAT_NAME; + if(myName.equals(PRIM_DOUBLE_NAME)) + return DOUBLE_NAME; + return null; + } + /* + * JavaHelpers.isArray() - array types are always JavaClasses, even if their component type is + * a primitive data type. Return false. + */ + public boolean isArray() { + return false; + } + /** + * Can an object of the passed in class be assigned to an + * object of this class? In the case of primitives, are they the same. + */ + public boolean isAssignableFrom(EClassifier aClass) { + return this == aClass; + } + /** + * See if this is valid object of this type. + */ + public boolean isInstance(Object o) { + return o instanceof IInstantiationInstance ? isAssignableFrom(((IInstantiationInstance) o).getJavaType()) : false; + } + public boolean isPrimitive() { + return true; + } + /** + * <!-- 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_DATA_TYPE__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.JAVA_DATA_TYPE__EPACKAGE: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.JAVA_DATA_TYPE__EPACKAGE, msgs); + case JavaRefPackage.JAVA_DATA_TYPE__EOPERATIONS: + return ((InternalEList)getEOperations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.JAVA_DATA_TYPE__ESTRUCTURAL_FEATURES: + return ((InternalEList)getEStructuralFeatures()).basicAdd(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_DATA_TYPE__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.JAVA_DATA_TYPE__EPACKAGE: + return eBasicSetContainer(null, JavaRefPackage.JAVA_DATA_TYPE__EPACKAGE, msgs); + case JavaRefPackage.JAVA_DATA_TYPE__EOPERATIONS: + return ((InternalEList)getEOperations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.JAVA_DATA_TYPE__ESTRUCTURAL_FEATURES: + return ((InternalEList)getEStructuralFeatures()).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_DATA_TYPE__EPACKAGE: + return ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.EPACKAGE__ECLASSIFIERS, EPackage.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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_DATA_TYPE__EANNOTATIONS: + return getEAnnotations(); + case JavaRefPackage.JAVA_DATA_TYPE__NAME: + return getName(); + case JavaRefPackage.JAVA_DATA_TYPE__INSTANCE_CLASS_NAME: + return getInstanceClassName(); + case JavaRefPackage.JAVA_DATA_TYPE__INSTANCE_CLASS: + return getInstanceClass(); + case JavaRefPackage.JAVA_DATA_TYPE__DEFAULT_VALUE: + return getDefaultValue(); + case JavaRefPackage.JAVA_DATA_TYPE__EPACKAGE: + return getEPackage(); + case JavaRefPackage.JAVA_DATA_TYPE__ABSTRACT: + return isAbstract() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_DATA_TYPE__INTERFACE: + return isInterface() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_DATA_TYPE__ESUPER_TYPES: + return getESuperTypes(); + case JavaRefPackage.JAVA_DATA_TYPE__EOPERATIONS: + return getEOperations(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_ATTRIBUTES: + return getEAllAttributes(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_REFERENCES: + return getEAllReferences(); + case JavaRefPackage.JAVA_DATA_TYPE__EREFERENCES: + return getEReferences(); + case JavaRefPackage.JAVA_DATA_TYPE__EATTRIBUTES: + return getEAttributes(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_CONTAINMENTS: + return getEAllContainments(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_OPERATIONS: + return getEAllOperations(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_STRUCTURAL_FEATURES: + return getEAllStructuralFeatures(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_SUPER_TYPES: + return getEAllSuperTypes(); + case JavaRefPackage.JAVA_DATA_TYPE__EID_ATTRIBUTE: + return getEIDAttribute(); + case JavaRefPackage.JAVA_DATA_TYPE__ESTRUCTURAL_FEATURES: + return getEStructuralFeatures(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_DATA_TYPE__EANNOTATIONS: + getEAnnotations().clear(); + getEAnnotations().addAll((Collection)newValue); + return; + case JavaRefPackage.JAVA_DATA_TYPE__NAME: + setName((String)newValue); + return; + case JavaRefPackage.JAVA_DATA_TYPE__INSTANCE_CLASS_NAME: + setInstanceClassName((String)newValue); + return; + case JavaRefPackage.JAVA_DATA_TYPE__ABSTRACT: + setAbstract(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_DATA_TYPE__INTERFACE: + setInterface(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_DATA_TYPE__ESUPER_TYPES: + getESuperTypes().clear(); + getESuperTypes().addAll((Collection)newValue); + return; + case JavaRefPackage.JAVA_DATA_TYPE__EOPERATIONS: + getEOperations().clear(); + getEOperations().addAll((Collection)newValue); + return; + case JavaRefPackage.JAVA_DATA_TYPE__ESTRUCTURAL_FEATURES: + getEStructuralFeatures().clear(); + getEStructuralFeatures().addAll((Collection)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_DATA_TYPE__EANNOTATIONS: + getEAnnotations().clear(); + return; + case JavaRefPackage.JAVA_DATA_TYPE__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.JAVA_DATA_TYPE__INSTANCE_CLASS_NAME: + setInstanceClassName(INSTANCE_CLASS_NAME_EDEFAULT); + return; + case JavaRefPackage.JAVA_DATA_TYPE__ABSTRACT: + setAbstract(ABSTRACT_EDEFAULT); + return; + case JavaRefPackage.JAVA_DATA_TYPE__INTERFACE: + setInterface(INTERFACE_EDEFAULT); + return; + case JavaRefPackage.JAVA_DATA_TYPE__ESUPER_TYPES: + getESuperTypes().clear(); + return; + case JavaRefPackage.JAVA_DATA_TYPE__EOPERATIONS: + getEOperations().clear(); + return; + case JavaRefPackage.JAVA_DATA_TYPE__ESTRUCTURAL_FEATURES: + getEStructuralFeatures().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_DATA_TYPE__EANNOTATIONS: + return eAnnotations != null && !eAnnotations.isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.JAVA_DATA_TYPE__INSTANCE_CLASS_NAME: + return INSTANCE_CLASS_NAME_EDEFAULT == null ? instanceClassName != null : !INSTANCE_CLASS_NAME_EDEFAULT.equals(instanceClassName); + case JavaRefPackage.JAVA_DATA_TYPE__INSTANCE_CLASS: + return getInstanceClass() != null; + case JavaRefPackage.JAVA_DATA_TYPE__DEFAULT_VALUE: + return getDefaultValue() != null; + case JavaRefPackage.JAVA_DATA_TYPE__EPACKAGE: + return getEPackage() != null; + case JavaRefPackage.JAVA_DATA_TYPE__ABSTRACT: + return abstract_ != ABSTRACT_EDEFAULT; + case JavaRefPackage.JAVA_DATA_TYPE__INTERFACE: + return interface_ != INTERFACE_EDEFAULT; + case JavaRefPackage.JAVA_DATA_TYPE__ESUPER_TYPES: + return eSuperTypes != null && !eSuperTypes.isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EOPERATIONS: + return eOperations != null && !eOperations.isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_ATTRIBUTES: + return !getEAllAttributes().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_REFERENCES: + return !getEAllReferences().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EREFERENCES: + return !getEReferences().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EATTRIBUTES: + return !getEAttributes().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_CONTAINMENTS: + return !getEAllContainments().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_OPERATIONS: + return !getEAllOperations().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_STRUCTURAL_FEATURES: + return !getEAllStructuralFeatures().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EALL_SUPER_TYPES: + return !getEAllSuperTypes().isEmpty(); + case JavaRefPackage.JAVA_DATA_TYPE__EID_ATTRIBUTE: + return getEIDAttribute() != null; + case JavaRefPackage.JAVA_DATA_TYPE__ESTRUCTURAL_FEATURES: + return eStructuralFeatures != null && !eStructuralFeatures.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /* (non-Javadoc) + * @see org.eclipse.jem.java.JavaHelpers#getQualifiedNameForReflection() + */ + public String getQualifiedNameForReflection() { + return getJavaName(); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaEventImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaEventImpl.java new file mode 100644 index 000000000..db32ec597 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaEventImpl.java @@ -0,0 +1,317 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaEventImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.EStructuralFeatureImpl; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.JavaEvent; +import org.eclipse.jem.java.JavaRefPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Java Event</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class JavaEventImpl extends EStructuralFeatureImpl implements JavaEvent { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JavaEventImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getJavaEvent(); + } + + /** + * <!-- 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_EVENT__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.JAVA_EVENT__ECONTAINING_CLASS: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.JAVA_EVENT__ECONTAINING_CLASS, 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_EVENT__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.JAVA_EVENT__ECONTAINING_CLASS: + return eBasicSetContainer(null, JavaRefPackage.JAVA_EVENT__ECONTAINING_CLASS, 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_EVENT__ECONTAINING_CLASS: + return ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.ECLASS__ESTRUCTURAL_FEATURES, EClass.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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_EVENT__EANNOTATIONS: + return getEAnnotations(); + case JavaRefPackage.JAVA_EVENT__NAME: + return getName(); + case JavaRefPackage.JAVA_EVENT__ORDERED: + return isOrdered() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__UNIQUE: + return isUnique() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__LOWER_BOUND: + return new Integer(getLowerBound()); + case JavaRefPackage.JAVA_EVENT__UPPER_BOUND: + return new Integer(getUpperBound()); + case JavaRefPackage.JAVA_EVENT__MANY: + return isMany() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__REQUIRED: + return isRequired() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__ETYPE: + if (resolve) return getEType(); + return basicGetEType(); + case JavaRefPackage.JAVA_EVENT__CHANGEABLE: + return isChangeable() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__VOLATILE: + return isVolatile() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__TRANSIENT: + return isTransient() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE_LITERAL: + return getDefaultValueLiteral(); + case JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE: + return getDefaultValue(); + case JavaRefPackage.JAVA_EVENT__UNSETTABLE: + return isUnsettable() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__DERIVED: + return isDerived() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_EVENT__ECONTAINING_CLASS: + return getEContainingClass(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_EVENT__EANNOTATIONS: + getEAnnotations().clear(); + getEAnnotations().addAll((Collection)newValue); + return; + case JavaRefPackage.JAVA_EVENT__NAME: + setName((String)newValue); + return; + case JavaRefPackage.JAVA_EVENT__ORDERED: + setOrdered(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_EVENT__UNIQUE: + setUnique(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_EVENT__LOWER_BOUND: + setLowerBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.JAVA_EVENT__UPPER_BOUND: + setUpperBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.JAVA_EVENT__ETYPE: + setEType((EClassifier)newValue); + return; + case JavaRefPackage.JAVA_EVENT__CHANGEABLE: + setChangeable(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_EVENT__VOLATILE: + setVolatile(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_EVENT__TRANSIENT: + setTransient(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE_LITERAL: + setDefaultValueLiteral((String)newValue); + return; + case JavaRefPackage.JAVA_EVENT__UNSETTABLE: + setUnsettable(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_EVENT__DERIVED: + setDerived(((Boolean)newValue).booleanValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_EVENT__EANNOTATIONS: + getEAnnotations().clear(); + return; + case JavaRefPackage.JAVA_EVENT__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__ORDERED: + setOrdered(ORDERED_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__UNIQUE: + setUnique(UNIQUE_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__UPPER_BOUND: + setUpperBound(UPPER_BOUND_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__ETYPE: + setEType((EClassifier)null); + return; + case JavaRefPackage.JAVA_EVENT__CHANGEABLE: + setChangeable(CHANGEABLE_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__VOLATILE: + setVolatile(VOLATILE_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__TRANSIENT: + setTransient(TRANSIENT_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE_LITERAL: + setDefaultValueLiteral(DEFAULT_VALUE_LITERAL_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__UNSETTABLE: + setUnsettable(UNSETTABLE_EDEFAULT); + return; + case JavaRefPackage.JAVA_EVENT__DERIVED: + setDerived(DERIVED_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_EVENT__EANNOTATIONS: + return eAnnotations != null && !eAnnotations.isEmpty(); + case JavaRefPackage.JAVA_EVENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.JAVA_EVENT__ORDERED: + return ordered != ORDERED_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__UNIQUE: + return unique != UNIQUE_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__UPPER_BOUND: + return upperBound != UPPER_BOUND_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__MANY: + return isMany() != false; + case JavaRefPackage.JAVA_EVENT__REQUIRED: + return isRequired() != false; + case JavaRefPackage.JAVA_EVENT__ETYPE: + return eType != null; + case JavaRefPackage.JAVA_EVENT__CHANGEABLE: + return changeable != CHANGEABLE_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__VOLATILE: + return volatile_ != VOLATILE_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__TRANSIENT: + return transient_ != TRANSIENT_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE_LITERAL: + return DEFAULT_VALUE_LITERAL_EDEFAULT == null ? defaultValueLiteral != null : !DEFAULT_VALUE_LITERAL_EDEFAULT.equals(defaultValueLiteral); + case JavaRefPackage.JAVA_EVENT__DEFAULT_VALUE: + return getDefaultValue() != null; + case JavaRefPackage.JAVA_EVENT__UNSETTABLE: + return unsettable != UNSETTABLE_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__DERIVED: + return derived != DERIVED_EDEFAULT; + case JavaRefPackage.JAVA_EVENT__ECONTAINING_CLASS: + return getEContainingClass() != null; + } + return eDynamicIsSet(eFeature); + } + +}
\ No newline at end of file diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaFactoryImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaFactoryImpl.java new file mode 100644 index 000000000..46a514f1f --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaFactoryImpl.java @@ -0,0 +1,68 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaFactoryImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.eclipse.jem.internal.java.instantiation.IInstantiationHandler; +import org.eclipse.jem.internal.java.instantiation.IInstantiationHandlerFactoryAdapter; + +/** + * The factory to use JavaRef packages. It will use the + * IInstantiationHandler, if there is one, to do the + * factory requests. Else it will let the superclass handle it. + */ +public class JavaFactoryImpl extends EFactoryImpl { + + private IInstantiationHandler instantiationHandler; + private boolean retrievedHandler; + + /** + * Constructor for JavaFactoryImpl. + */ + public JavaFactoryImpl() { + super(); + } + + protected IInstantiationHandler getInstantiationHandler() { + if (!retrievedHandler) { + // Need to retrieve handler lazily because when factory is created it does not yet know what ResourceSet it is in. + // Can't know that until the first time we need a handler. + ResourceSet rset = getEPackage().eResource().getResourceSet(); + if (rset != null) { + retrievedHandler = true; + IInstantiationHandlerFactoryAdapter factory = (IInstantiationHandlerFactoryAdapter) EcoreUtil.getExistingAdapter(rset, IInstantiationHandlerFactoryAdapter.ADAPTER_KEY); + if (factory != null) + instantiationHandler = factory.getInstantiationHandler(this); + } + } + return instantiationHandler; + } + + /** + * @see org.eclipse.emf.ecore.EFactory#create(EClass) + */ + public EObject create(EClass eClass) { + IInstantiationHandler ia = getInstantiationHandler(); + if (ia == null || !ia.handlesClass(eClass)) + return super.create(eClass); + else + return ia.create(eClass); + } + +} diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaPackageImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaPackageImpl.java new file mode 100644 index 000000000..b2ad2b362 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaPackageImpl.java @@ -0,0 +1,330 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaPackageImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import java.util.Collection; + +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.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EFactory; +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.EPackageImpl; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.JavaPackage; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.JavaURL; + +public class JavaPackageImpl extends EPackageImpl implements JavaPackage, EPackage { + /** + * @generated This field/method will be replaced during code generation. + */ + protected JavaPackageImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getJavaPackage(); + } + + /** + * Get the list of classes that this package contains. + * Since this is a derived relationship, we need to implement + * it here. It will get the metaobjects list. These are the + * java classes this package contains. + * + * If this is the primitives package, then it must return + * an empty list because it doesn't contain any classes. + */ + public EList getJavaClasses() { + return !PRIMITIVE_PACKAGE_NAME.equals(getName()) ? + ECollections.unmodifiableEList(getEClassifiers()) : + ECollections.EMPTY_ELIST; + } +/** + * Return the name for this package. + * We do not want to expose the .javaprim package + * since this is the name of the default package. + */ +public String getName() { + if (isDefault()) + return ""; + else + return super.getName(); +} + public String getPackageName() { + + String internalName = super.getName() ; + return JavaPackage.PRIMITIVE_PACKAGE_NAME.equals(internalName) ? "" : internalName ; +} +protected boolean isDefault() { + return JavaPackage.PRIMITIVE_PACKAGE_NAME.equals(super.getName()); +} + /** + * Since classes are loaded dynamically and not from a schema, a + * class could be asked for through this method, and if not yet reflected, + * it wouldn't be found. We need to make sure that any class asked for + * in this package is found (i.e. poofed up). Otherwise loading an instance + * document that refers to java class through namespaces won't be found. + */ + public EClassifier getEClassifier(String className) { + // Try to get the class from the resource that this package is in. + // This will create it if not found. This works because the + // structure is there is one java package per resource, and + // the id of the class is the class name without the package + // portion, which is what className above is. + Object result = eResource().getEObject(className); + return (result instanceof EClassifier) ? (EClassifier) result : null; + } + /** + * reflect - reflect a Java package for a given package name. + * If the package does not exist, one will be created through + * the reflection mechanism. + */ + public static JavaPackage reflect(String packageName, ResourceSet set) { + if (packageName != null) { + org.eclipse.jem.internal.java.init.JavaInit.init(); + JavaURL url = new JavaURL(packageName, PACKAGE_ID); + return (JavaPackage) set.getEObject(URI.createURI(url.getFullString()), true); + } + return null; + } + + /** + * <!-- 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_PACKAGE__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.JAVA_PACKAGE__EFACTORY_INSTANCE: + if (eFactoryInstance != null) + msgs = ((InternalEObject)eFactoryInstance).eInverseRemove(this, EcorePackage.EFACTORY__EPACKAGE, EFactory.class, msgs); + return basicSetEFactoryInstance((EFactory)otherEnd, msgs); + case JavaRefPackage.JAVA_PACKAGE__ECLASSIFIERS: + return ((InternalEList)getEClassifiers()).basicAdd(otherEnd, msgs); + case JavaRefPackage.JAVA_PACKAGE__ESUBPACKAGES: + return ((InternalEList)getESubpackages()).basicAdd(otherEnd, msgs); + case JavaRefPackage.JAVA_PACKAGE__ESUPER_PACKAGE: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.JAVA_PACKAGE__ESUPER_PACKAGE, 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_PACKAGE__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.JAVA_PACKAGE__EFACTORY_INSTANCE: + return basicSetEFactoryInstance(null, msgs); + case JavaRefPackage.JAVA_PACKAGE__ECLASSIFIERS: + return ((InternalEList)getEClassifiers()).basicRemove(otherEnd, msgs); + case JavaRefPackage.JAVA_PACKAGE__ESUBPACKAGES: + return ((InternalEList)getESubpackages()).basicRemove(otherEnd, msgs); + case JavaRefPackage.JAVA_PACKAGE__ESUPER_PACKAGE: + return eBasicSetContainer(null, JavaRefPackage.JAVA_PACKAGE__ESUPER_PACKAGE, 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_PACKAGE__ESUPER_PACKAGE: + return ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.EPACKAGE__ESUBPACKAGES, EPackage.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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_PACKAGE__EANNOTATIONS: + return getEAnnotations(); + case JavaRefPackage.JAVA_PACKAGE__NAME: + return getName(); + case JavaRefPackage.JAVA_PACKAGE__NS_URI: + return getNsURI(); + case JavaRefPackage.JAVA_PACKAGE__NS_PREFIX: + return getNsPrefix(); + case JavaRefPackage.JAVA_PACKAGE__EFACTORY_INSTANCE: + return getEFactoryInstance(); + case JavaRefPackage.JAVA_PACKAGE__ECLASSIFIERS: + return getEClassifiers(); + case JavaRefPackage.JAVA_PACKAGE__ESUBPACKAGES: + return getESubpackages(); + case JavaRefPackage.JAVA_PACKAGE__ESUPER_PACKAGE: + return getESuperPackage(); + case JavaRefPackage.JAVA_PACKAGE__JAVA_CLASSES: + return getJavaClasses(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_PACKAGE__EANNOTATIONS: + getEAnnotations().clear(); + getEAnnotations().addAll((Collection)newValue); + return; + case JavaRefPackage.JAVA_PACKAGE__NAME: + setName((String)newValue); + return; + case JavaRefPackage.JAVA_PACKAGE__NS_URI: + setNsURI((String)newValue); + return; + case JavaRefPackage.JAVA_PACKAGE__NS_PREFIX: + setNsPrefix((String)newValue); + return; + case JavaRefPackage.JAVA_PACKAGE__EFACTORY_INSTANCE: + setEFactoryInstance((EFactory)newValue); + return; + case JavaRefPackage.JAVA_PACKAGE__ECLASSIFIERS: + getEClassifiers().clear(); + getEClassifiers().addAll((Collection)newValue); + return; + case JavaRefPackage.JAVA_PACKAGE__ESUBPACKAGES: + getESubpackages().clear(); + getESubpackages().addAll((Collection)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_PACKAGE__EANNOTATIONS: + getEAnnotations().clear(); + return; + case JavaRefPackage.JAVA_PACKAGE__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.JAVA_PACKAGE__NS_URI: + setNsURI(NS_URI_EDEFAULT); + return; + case JavaRefPackage.JAVA_PACKAGE__NS_PREFIX: + setNsPrefix(NS_PREFIX_EDEFAULT); + return; + case JavaRefPackage.JAVA_PACKAGE__EFACTORY_INSTANCE: + setEFactoryInstance((EFactory)null); + return; + case JavaRefPackage.JAVA_PACKAGE__ECLASSIFIERS: + getEClassifiers().clear(); + return; + case JavaRefPackage.JAVA_PACKAGE__ESUBPACKAGES: + getESubpackages().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_PACKAGE__EANNOTATIONS: + return eAnnotations != null && !eAnnotations.isEmpty(); + case JavaRefPackage.JAVA_PACKAGE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.JAVA_PACKAGE__NS_URI: + return NS_URI_EDEFAULT == null ? nsURI != null : !NS_URI_EDEFAULT.equals(nsURI); + case JavaRefPackage.JAVA_PACKAGE__NS_PREFIX: + return NS_PREFIX_EDEFAULT == null ? nsPrefix != null : !NS_PREFIX_EDEFAULT.equals(nsPrefix); + case JavaRefPackage.JAVA_PACKAGE__EFACTORY_INSTANCE: + return eFactoryInstance != null; + case JavaRefPackage.JAVA_PACKAGE__ECLASSIFIERS: + return eClassifiers != null && !eClassifiers.isEmpty(); + case JavaRefPackage.JAVA_PACKAGE__ESUBPACKAGES: + return eSubpackages != null && !eSubpackages.isEmpty(); + case JavaRefPackage.JAVA_PACKAGE__ESUPER_PACKAGE: + return getESuperPackage() != null; + case JavaRefPackage.JAVA_PACKAGE__JAVA_CLASSES: + return !getJavaClasses().isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //JavaPackageImpl + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaParameterImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaParameterImpl.java new file mode 100644 index 000000000..65f948439 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaParameterImpl.java @@ -0,0 +1,378 @@ +package org.eclipse.jem.java.impl; + +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaParameterImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EParameterImpl; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.JavaHelpers; +import org.eclipse.jem.java.JavaParameter; +import org.eclipse.jem.java.JavaParameterKind; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.Method; + +/** + * @generated + */ +public class JavaParameterImpl extends EParameterImpl implements JavaParameter{ + + /** + * 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 cached value of the '{@link #isFinal() <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isFinal() + * @generated + * @ordered + */ + protected boolean final_ = FINAL_EDEFAULT; + + /** + * The default value of the '{@link #getParameterKind() <em>Parameter Kind</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getParameterKind() + * @generated + * @ordered + */ + protected static final JavaParameterKind PARAMETER_KIND_EDEFAULT = JavaParameterKind.IN_LITERAL; + + /** + * @generated This field/method will be replaced during code generation. + */ + protected JavaParameterKind parameterKind = PARAMETER_KIND_EDEFAULT; + protected JavaParameterImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getJavaParameter(); + } + + public JavaHelpers getJavaType() { + return (JavaHelpers)getEType(); + } + public String getQualifiedName() { + return (eContainer() instanceof Method) ? ((Method)eContainer()).getName() + "." + this.getName() : this.getName(); + } + /** + * Is this parameter type an array type. + */ + public boolean isArray() { + return getJavaType().isArray(); + } + /** + * Is this a return parameter. + */ + public boolean isReturn() { + return JavaParameterKind.RETURN == getParameterKind().getValue(); + } + /** + * @generated This field/method will be replaced during code generation + */ + public boolean isFinal() + { + return final_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFinal(boolean newFinal) + { + boolean oldFinal = final_; + final_ = newFinal; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_PARAMETER__FINAL, oldFinal, final_)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public JavaParameterKind getParameterKind() + { + return parameterKind; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParameterKind(JavaParameterKind newParameterKind) + { + JavaParameterKind oldParameterKind = parameterKind; + parameterKind = newParameterKind == null ? PARAMETER_KIND_EDEFAULT : newParameterKind; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.JAVA_PARAMETER__PARAMETER_KIND, oldParameterKind, parameterKind)); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.JAVA_PARAMETER__EANNOTATIONS: + return eAnnotations != null && !eAnnotations.isEmpty(); + case JavaRefPackage.JAVA_PARAMETER__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.JAVA_PARAMETER__ORDERED: + return ordered != ORDERED_EDEFAULT; + case JavaRefPackage.JAVA_PARAMETER__UNIQUE: + return unique != UNIQUE_EDEFAULT; + case JavaRefPackage.JAVA_PARAMETER__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + case JavaRefPackage.JAVA_PARAMETER__UPPER_BOUND: + return upperBound != UPPER_BOUND_EDEFAULT; + case JavaRefPackage.JAVA_PARAMETER__MANY: + return isMany() != false; + case JavaRefPackage.JAVA_PARAMETER__REQUIRED: + return isRequired() != false; + case JavaRefPackage.JAVA_PARAMETER__ETYPE: + return eType != null; + case JavaRefPackage.JAVA_PARAMETER__EOPERATION: + return getEOperation() != null; + case JavaRefPackage.JAVA_PARAMETER__FINAL: + return final_ != FINAL_EDEFAULT; + case JavaRefPackage.JAVA_PARAMETER__PARAMETER_KIND: + return parameterKind != PARAMETER_KIND_EDEFAULT; + } + 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_PARAMETER__EANNOTATIONS: + getEAnnotations().clear(); + getEAnnotations().addAll((Collection)newValue); + return; + case JavaRefPackage.JAVA_PARAMETER__NAME: + setName((String)newValue); + return; + case JavaRefPackage.JAVA_PARAMETER__ORDERED: + setOrdered(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_PARAMETER__UNIQUE: + setUnique(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_PARAMETER__LOWER_BOUND: + setLowerBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.JAVA_PARAMETER__UPPER_BOUND: + setUpperBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.JAVA_PARAMETER__ETYPE: + setEType((EClassifier)newValue); + return; + case JavaRefPackage.JAVA_PARAMETER__FINAL: + setFinal(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.JAVA_PARAMETER__PARAMETER_KIND: + setParameterKind((JavaParameterKind)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_PARAMETER__EANNOTATIONS: + getEAnnotations().clear(); + return; + case JavaRefPackage.JAVA_PARAMETER__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.JAVA_PARAMETER__ORDERED: + setOrdered(ORDERED_EDEFAULT); + return; + case JavaRefPackage.JAVA_PARAMETER__UNIQUE: + setUnique(UNIQUE_EDEFAULT); + return; + case JavaRefPackage.JAVA_PARAMETER__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + case JavaRefPackage.JAVA_PARAMETER__UPPER_BOUND: + setUpperBound(UPPER_BOUND_EDEFAULT); + return; + case JavaRefPackage.JAVA_PARAMETER__ETYPE: + setEType((EClassifier)null); + return; + case JavaRefPackage.JAVA_PARAMETER__FINAL: + setFinal(FINAL_EDEFAULT); + return; + case JavaRefPackage.JAVA_PARAMETER__PARAMETER_KIND: + setParameterKind(PARAMETER_KIND_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (final: "); + result.append(final_); + result.append(", parameterKind: "); + result.append(parameterKind); + result.append(')'); + return result.toString(); + } + + /** + * <!-- 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_PARAMETER__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.JAVA_PARAMETER__EOPERATION: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.JAVA_PARAMETER__EOPERATION, 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_PARAMETER__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.JAVA_PARAMETER__EOPERATION: + return eBasicSetContainer(null, JavaRefPackage.JAVA_PARAMETER__EOPERATION, 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_PARAMETER__EOPERATION: + return ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.EOPERATION__EPARAMETERS, EOperation.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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_PARAMETER__EANNOTATIONS: + return getEAnnotations(); + case JavaRefPackage.JAVA_PARAMETER__NAME: + return getName(); + case JavaRefPackage.JAVA_PARAMETER__ORDERED: + return isOrdered() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_PARAMETER__UNIQUE: + return isUnique() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_PARAMETER__LOWER_BOUND: + return new Integer(getLowerBound()); + case JavaRefPackage.JAVA_PARAMETER__UPPER_BOUND: + return new Integer(getUpperBound()); + case JavaRefPackage.JAVA_PARAMETER__MANY: + return isMany() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_PARAMETER__REQUIRED: + return isRequired() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_PARAMETER__ETYPE: + if (resolve) return getEType(); + return basicGetEType(); + case JavaRefPackage.JAVA_PARAMETER__EOPERATION: + return getEOperation(); + case JavaRefPackage.JAVA_PARAMETER__FINAL: + return isFinal() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.JAVA_PARAMETER__PARAMETER_KIND: + return getParameterKind(); + } + return eDynamicGet(eFeature, resolve); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefFactoryImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefFactoryImpl.java new file mode 100644 index 000000000..18211be77 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefFactoryImpl.java @@ -0,0 +1,325 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaRefFactoryImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.eclipse.jem.java.*; +import org.eclipse.jem.internal.java.adapters.jdk.JavaJDKAdapterFactory; + + + +/** + * @generated + */ +public class JavaRefFactoryImpl extends EFactoryImpl implements JavaRefFactory { + + + protected static Class ReflectionFactoryClass = JavaJDKAdapterFactory.class; + public JavaRefFactoryImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) { + case JavaRefPackage.JAVA_CLASS: return createJavaClass(); + case JavaRefPackage.INITIALIZER: return createInitializer(); + case JavaRefPackage.JAVA_PARAMETER: return createJavaParameter(); + case JavaRefPackage.METHOD: return createMethod(); + case JavaRefPackage.FIELD: return createField(); + case JavaRefPackage.BLOCK: return createBlock(); + case JavaRefPackage.COMMENT: return createComment(); + case JavaRefPackage.STATEMENT: return createStatement(); + case JavaRefPackage.JAVA_PACKAGE: return createJavaPackage(); + case JavaRefPackage.JAVA_DATA_TYPE: return createJavaDataType(); + case JavaRefPackage.ARRAY_TYPE: return createArrayType(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) { + case JavaRefPackage.TYPE_KIND: + return TypeKind.get(initialValue); + case JavaRefPackage.JAVA_VISIBILITY_KIND: + return JavaVisibilityKind.get(initialValue); + case JavaRefPackage.JAVA_PARAMETER_KIND: + return JavaParameterKind.get(initialValue); + case JavaRefPackage.JTYPE_JAVA_HELPERS: + return createJTypeJavaHelpersFromString(eDataType, initialValue); + case JavaRefPackage.JTYPE_LIST: + return createJTypeListFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) { + case JavaRefPackage.TYPE_KIND: + return instanceValue == null ? null : instanceValue.toString(); + case JavaRefPackage.JAVA_VISIBILITY_KIND: + return instanceValue == null ? null : instanceValue.toString(); + case JavaRefPackage.JAVA_PARAMETER_KIND: + return instanceValue == null ? null : instanceValue.toString(); + case JavaRefPackage.JTYPE_JAVA_HELPERS: + return convertJTypeJavaHelpersToString(eDataType, instanceValue); + case JavaRefPackage.JTYPE_LIST: + return convertJTypeListToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + public ArrayType createArrayType(JavaHelpers componentType) { + ArrayType at = createArrayType(); + + String computedName = componentType.getQualifiedName() + "[]"; + at.setName(computedName); + return at; + } + public ArrayType createArrayType(JavaHelpers finalComponentType, int dimensions) { + ArrayType at = createArrayType(); + + String computedName = finalComponentType.getQualifiedName(); + for (int i = 0; i < dimensions; i++){ + computedName = computedName + "[]"; + } + at.setName(computedName); + return at; + } + public static ResourceSet createJavaContext() { + org.eclipse.jem.internal.java.init.JavaInit.init(); + ResourceSet set = new ResourceSetImpl(); + set.getAdapterFactories().add(createJavaReflectionAdapterFactory()); + return set; + } + protected static AdapterFactory createJavaReflectionAdapterFactory() { + AdapterFactory factoryInstance = null; + try { + if (getReflectionAdapterFactoryClass() != null) + factoryInstance = (AdapterFactory) getReflectionAdapterFactoryClass().newInstance(); + } catch (Exception e) { + // Reflection or instantiation problems. + // OK, can't do Java Model reflection + } + return factoryInstance; + } + /** + * Return the Class for the Java refection adapter factory. + */ + public static Class getReflectionAdapterFactoryClass() { + return ReflectionFactoryClass; + } + /** + * Set the Class for the Java refection adapter factory. + * + * @see JavaPlugin.startup() + */ + public static void setReflectionAdapterFactoryClass(Class javaReflectionFactoryClass) { + ReflectionFactoryClass = javaReflectionFactoryClass; + } + /** + * @generated This field/method will be replaced during code generation. + */ + public Method createMethod() + { + MethodImpl method = new MethodImpl(); + return method; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public JavaClass createJavaClass() + { + JavaClassImpl javaClass = new JavaClassImpl(); + return javaClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public Field createField() + { + FieldImpl field = new FieldImpl(); + return field; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public Block createBlock() + { + BlockImpl block = new BlockImpl(); + return block; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public Comment createComment() + { + CommentImpl comment = new CommentImpl(); + return comment; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public Statement createStatement() + { + StatementImpl statement = new StatementImpl(); + return statement; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public Initializer createInitializer() + { + InitializerImpl initializer = new InitializerImpl(); + return initializer; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public JavaParameter createJavaParameter() + { + JavaParameterImpl javaParameter = new JavaParameterImpl(); + return javaParameter; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public ArrayType createArrayType() + { + ArrayTypeImpl arrayType = new ArrayTypeImpl(); + return arrayType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavaHelpers createJTypeJavaHelpersFromString(EDataType eDataType, String initialValue) + { + return (JavaHelpers)super.createFromString(eDataType, initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertJTypeJavaHelpersToString(EDataType eDataType, Object instanceValue) + { + return super.convertToString(eDataType, instanceValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List createJTypeListFromString(EDataType eDataType, String initialValue) + { + return (List)super.createFromString(eDataType, initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertJTypeListToString(EDataType eDataType, Object instanceValue) + { + return super.convertToString(eDataType, instanceValue); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public JavaDataType createJavaDataType() + { + JavaDataTypeImpl javaDataType = new JavaDataTypeImpl(); + return javaDataType; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public JavaPackage createJavaPackage() + { + JavaPackageImpl javaPackage = new JavaPackageImpl(); + return javaPackage; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public JavaRefPackage getJavaRefPackage() + { + return (JavaRefPackage)getEPackage(); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public static JavaRefPackage getPackage() + { + return JavaRefPackage.eINSTANCE; + } + public static JavaRefFactory getActiveFactory() + { + JavaRefPackage pkg = getPackage(); + if (pkg != null) return pkg.getJavaRefFactory(); + else return null; + }} + + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefPackageImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefPackageImpl.java new file mode 100644 index 000000000..9c82cafa7 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefPackageImpl.java @@ -0,0 +1,1041 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaRefPackageImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.List; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.emf.ecore.impl.EcorePackageImpl; + +import org.eclipse.jem.java.ArrayType; +import org.eclipse.jem.java.Block; +import org.eclipse.jem.java.Comment; +import org.eclipse.jem.java.Field; +import org.eclipse.jem.java.Initializer; +import org.eclipse.jem.java.JavaClass; +import org.eclipse.jem.java.JavaDataType; +import org.eclipse.jem.java.JavaEvent; +import org.eclipse.jem.java.JavaHelpers; +import org.eclipse.jem.java.JavaPackage; +import org.eclipse.jem.java.JavaParameter; +import org.eclipse.jem.java.JavaParameterKind; +import org.eclipse.jem.java.JavaRefFactory; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.JavaVisibilityKind; +import org.eclipse.jem.java.Method; +import org.eclipse.jem.java.Statement; +import org.eclipse.jem.java.TypeKind; + + +/** + * @lastgen class JavaRefPackageImpl extends EPackageImpl implements JavaRefPackage, EPackage {} + */ +public class JavaRefPackageImpl extends EPackageImpl implements JavaRefPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass javaClassEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass initializerEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass javaParameterEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass methodEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass fieldEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass blockEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass commentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass statementEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass javaPackageEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass javaDataTypeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass arrayTypeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass javaEventEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum typeKindEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum javaVisibilityKindEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum javaParameterKindEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType jTypeJavaHelpersEDataType = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType jTypeListEDataType = null; + + /** + * @generated This field/method will be replaced during code generation. + */ + private JavaRefPackageImpl() + { + super(eNS_URI, JavaRefFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * @generated This field/method will be replaced during code generation. + */ + public static JavaRefPackage init() + { + if (isInited) return (JavaRefPackage)EPackage.Registry.INSTANCE.get(JavaRefPackage.eNS_URI); + + // Obtain or create and register package. + JavaRefPackageImpl theJavaRefPackage = (JavaRefPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EPackage ? EPackage.Registry.INSTANCE.get(eNS_URI) : new JavaRefPackageImpl()); + + isInited = true; + + // Initialize simple dependencies + EcorePackageImpl.init(); + + // Obtain or create and register interdependencies + + // Step 1: create meta-model objects + theJavaRefPackage.createPackageContents(); + + // Step 2: complete initialization + theJavaRefPackage.initializePackageContents(); + + return theJavaRefPackage; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getJavaClass() + { + return javaClassEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getJavaClass_Kind() + { + return (EAttribute)javaClassEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getJavaClass_Public() + { + return (EAttribute)javaClassEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getJavaClass_Final() + { + return (EAttribute)javaClassEClass.getEStructuralFeatures().get(2); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_ImplementsInterfaces() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(3); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_ClassImport() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(4); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_PackageImports() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(5); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_Fields() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(6); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_Methods() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(7); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_Initializers() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(8); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_DeclaringClass() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(10); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_DeclaredClasses() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(9); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_JavaPackage() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(11); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_Events() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(12); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaClass_AllEvents() + { + return (EReference)javaClassEClass.getEStructuralFeatures().get(13); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getField() + { + return fieldEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getField_Final() + { + return (EAttribute)fieldEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getField_Static() + { + return (EAttribute)fieldEClass.getEStructuralFeatures().get(1); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getField_JavaVisibility() + { + return (EAttribute)fieldEClass.getEStructuralFeatures().get(2); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getField_JavaClass() + { + return (EReference)fieldEClass.getEStructuralFeatures().get(3); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getField_Initializer() + { + return (EReference)fieldEClass.getEStructuralFeatures().get(4); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getMethod() + { + return methodEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMethod_Abstract() + { + return (EAttribute)methodEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMethod_Native() + { + return (EAttribute)methodEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMethod_Synchronized() + { + return (EAttribute)methodEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMethod_Final() + { + return (EAttribute)methodEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMethod_Constructor() + { + return (EAttribute)methodEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getMethod_Static() + { + return (EAttribute)methodEClass.getEStructuralFeatures().get(5); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getMethod_JavaVisibility() + { + return (EAttribute)methodEClass.getEStructuralFeatures().get(6); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getMethod_Parameters() + { + return (EReference)methodEClass.getEStructuralFeatures().get(7); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getMethod_JavaExceptions() + { + return (EReference)methodEClass.getEStructuralFeatures().get(8); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getMethod_JavaClass() + { + return (EReference)methodEClass.getEStructuralFeatures().get(9); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getMethod_Source() + { + return (EReference)methodEClass.getEStructuralFeatures().get(10); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getJavaParameter() + { + return javaParameterEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getJavaParameter_Final() + { + return (EAttribute)javaParameterEClass.getEStructuralFeatures().get(0); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getJavaParameter_ParameterKind() + { + return (EAttribute)javaParameterEClass.getEStructuralFeatures().get(1); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getArrayType() + { + return arrayTypeEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getArrayType_ArrayDimensions() + { + return (EAttribute)arrayTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getArrayType_ComponentType() + { + return (EReference)arrayTypeEClass.getEStructuralFeatures().get(1); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getJavaDataType() + { + return javaDataTypeEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getJavaEvent() + { + return javaEventEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getJavaPackage() + { + return javaPackageEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getJavaPackage_JavaClasses() + { + return (EReference)javaPackageEClass.getEStructuralFeatures().get(0); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getBlock() + { + return blockEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getBlock_Source() + { + return (EAttribute)blockEClass.getEStructuralFeatures().get(0); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getBlock_Name() + { + return (EAttribute)blockEClass.getEStructuralFeatures().get(1); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getBlock_Contents() + { + return (EReference)blockEClass.getEStructuralFeatures().get(2); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getComment() + { + return commentEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getStatement() + { + return statementEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EClass getInitializer() + { + return initializerEClass; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EAttribute getInitializer_IsStatic() + { + return (EAttribute)initializerEClass.getEStructuralFeatures().get(0); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getInitializer_JavaClass() + { + return (EReference)initializerEClass.getEStructuralFeatures().get(1); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EReference getInitializer_Source() + { + return (EReference)initializerEClass.getEStructuralFeatures().get(2); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EEnum getJavaVisibilityKind() + { + return javaVisibilityKindEEnum; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EEnum getJavaParameterKind() + { + return javaParameterKindEEnum; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EEnum getTypeKind() + { + return typeKindEEnum; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EDataType getJTypeList() + { + return jTypeListEDataType; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public EDataType getJTypeJavaHelpers() + { + return jTypeJavaHelpersEDataType; + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public JavaRefFactory getJavaRefFactory() + { + return (JavaRefFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + javaClassEClass = createEClass(JAVA_CLASS); + createEAttribute(javaClassEClass, JAVA_CLASS__KIND); + createEAttribute(javaClassEClass, JAVA_CLASS__PUBLIC); + createEAttribute(javaClassEClass, JAVA_CLASS__FINAL); + createEReference(javaClassEClass, JAVA_CLASS__IMPLEMENTS_INTERFACES); + createEReference(javaClassEClass, JAVA_CLASS__CLASS_IMPORT); + createEReference(javaClassEClass, JAVA_CLASS__PACKAGE_IMPORTS); + createEReference(javaClassEClass, JAVA_CLASS__FIELDS); + createEReference(javaClassEClass, JAVA_CLASS__METHODS); + createEReference(javaClassEClass, JAVA_CLASS__INITIALIZERS); + createEReference(javaClassEClass, JAVA_CLASS__DECLARED_CLASSES); + createEReference(javaClassEClass, JAVA_CLASS__DECLARING_CLASS); + createEReference(javaClassEClass, JAVA_CLASS__JAVA_PACKAGE); + createEReference(javaClassEClass, JAVA_CLASS__EVENTS); + createEReference(javaClassEClass, JAVA_CLASS__ALL_EVENTS); + + initializerEClass = createEClass(INITIALIZER); + createEAttribute(initializerEClass, INITIALIZER__IS_STATIC); + createEReference(initializerEClass, INITIALIZER__JAVA_CLASS); + createEReference(initializerEClass, INITIALIZER__SOURCE); + + javaParameterEClass = createEClass(JAVA_PARAMETER); + createEAttribute(javaParameterEClass, JAVA_PARAMETER__FINAL); + createEAttribute(javaParameterEClass, JAVA_PARAMETER__PARAMETER_KIND); + + methodEClass = createEClass(METHOD); + createEAttribute(methodEClass, METHOD__ABSTRACT); + createEAttribute(methodEClass, METHOD__NATIVE); + createEAttribute(methodEClass, METHOD__SYNCHRONIZED); + createEAttribute(methodEClass, METHOD__FINAL); + createEAttribute(methodEClass, METHOD__CONSTRUCTOR); + createEAttribute(methodEClass, METHOD__STATIC); + createEAttribute(methodEClass, METHOD__JAVA_VISIBILITY); + createEReference(methodEClass, METHOD__PARAMETERS); + createEReference(methodEClass, METHOD__JAVA_EXCEPTIONS); + createEReference(methodEClass, METHOD__JAVA_CLASS); + createEReference(methodEClass, METHOD__SOURCE); + + fieldEClass = createEClass(FIELD); + createEAttribute(fieldEClass, FIELD__FINAL); + createEAttribute(fieldEClass, FIELD__STATIC); + createEAttribute(fieldEClass, FIELD__JAVA_VISIBILITY); + createEReference(fieldEClass, FIELD__JAVA_CLASS); + createEReference(fieldEClass, FIELD__INITIALIZER); + + blockEClass = createEClass(BLOCK); + createEAttribute(blockEClass, BLOCK__SOURCE); + createEAttribute(blockEClass, BLOCK__NAME); + createEReference(blockEClass, BLOCK__CONTENTS); + + commentEClass = createEClass(COMMENT); + + statementEClass = createEClass(STATEMENT); + + javaPackageEClass = createEClass(JAVA_PACKAGE); + createEReference(javaPackageEClass, JAVA_PACKAGE__JAVA_CLASSES); + + javaDataTypeEClass = createEClass(JAVA_DATA_TYPE); + + arrayTypeEClass = createEClass(ARRAY_TYPE); + createEAttribute(arrayTypeEClass, ARRAY_TYPE__ARRAY_DIMENSIONS); + createEReference(arrayTypeEClass, ARRAY_TYPE__COMPONENT_TYPE); + + javaEventEClass = createEClass(JAVA_EVENT); + + // Create enums + typeKindEEnum = createEEnum(TYPE_KIND); + javaVisibilityKindEEnum = createEEnum(JAVA_VISIBILITY_KIND); + javaParameterKindEEnum = createEEnum(JAVA_PARAMETER_KIND); + + // Create data types + jTypeJavaHelpersEDataType = createEDataType(JTYPE_JAVA_HELPERS); + jTypeListEDataType = createEDataType(JTYPE_LIST); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + EcorePackageImpl theEcorePackage = (EcorePackageImpl)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI); + + // Add supertypes to classes + javaClassEClass.getESuperTypes().add(theEcorePackage.getEClass()); + javaParameterEClass.getESuperTypes().add(theEcorePackage.getEParameter()); + javaParameterEClass.getESuperTypes().add(theEcorePackage.getEModelElement()); + methodEClass.getESuperTypes().add(theEcorePackage.getEOperation()); + fieldEClass.getESuperTypes().add(theEcorePackage.getEAttribute()); + commentEClass.getESuperTypes().add(this.getBlock()); + statementEClass.getESuperTypes().add(this.getBlock()); + javaPackageEClass.getESuperTypes().add(theEcorePackage.getEPackage()); + javaDataTypeEClass.getESuperTypes().add(theEcorePackage.getEClass()); + arrayTypeEClass.getESuperTypes().add(this.getJavaClass()); + javaEventEClass.getESuperTypes().add(theEcorePackage.getEStructuralFeature()); + + // Initialize classes and features; add operations and parameters + initEClass(javaClassEClass, JavaClass.class, "JavaClass", !IS_ABSTRACT, !IS_INTERFACE); + initEAttribute(getJavaClass_Kind(), this.getTypeKind(), "kind", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getJavaClass_Public(), ecorePackage.getEBoolean(), "public", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getJavaClass_Final(), ecorePackage.getEBoolean(), "final", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_ImplementsInterfaces(), this.getJavaClass(), null, "implementsInterfaces", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_ClassImport(), this.getJavaClass(), null, "classImport", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_PackageImports(), this.getJavaPackage(), null, "packageImports", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_Fields(), this.getField(), this.getField_JavaClass(), "fields", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_Methods(), this.getMethod(), this.getMethod_JavaClass(), "methods", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_Initializers(), this.getInitializer(), this.getInitializer_JavaClass(), "initializers", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_DeclaredClasses(), this.getJavaClass(), this.getJavaClass_DeclaringClass(), "declaredClasses", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_DeclaringClass(), this.getJavaClass(), this.getJavaClass_DeclaredClasses(), "declaringClass", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_JavaPackage(), this.getJavaPackage(), this.getJavaPackage_JavaClasses(), "javaPackage", null, 0, 1, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_Events(), this.getJavaEvent(), null, "events", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getJavaClass_AllEvents(), this.getJavaEvent(), null, "allEvents", null, 0, -1, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + + addEOperation(javaClassEClass, ecorePackage.getEBoolean(), "isNested"); + + EOperation op = addEOperation(javaClassEClass, this.getField(), "getField"); + addEParameter(op, ecorePackage.getEString(), "fieldName"); + + op = addEOperation(javaClassEClass, this.getField(), "getFieldExtended"); + addEParameter(op, ecorePackage.getEString(), "fieldName"); + + op = addEOperation(javaClassEClass, this.getField(), "getFieldNamed"); + addEParameter(op, ecorePackage.getEString(), "fieldName"); + + addEOperation(javaClassEClass, this.getJTypeList(), "getFieldsExtended"); + + op = addEOperation(javaClassEClass, this.getMethod(), "getMethod"); + addEParameter(op, ecorePackage.getEString(), "methodName"); + addEParameter(op, this.getJTypeList(), "parameterTypes"); + + addEOperation(javaClassEClass, this.getJTypeList(), "getMethodElementSignatures"); + + op = addEOperation(javaClassEClass, this.getMethod(), "getMethodExtended"); + addEParameter(op, ecorePackage.getEString(), "methodName"); + addEParameter(op, this.getJTypeList(), "parameterTypes"); + + addEOperation(javaClassEClass, this.getJTypeList(), "getMethodsExtended"); + + op = addEOperation(javaClassEClass, this.getJTypeList(), "getOnlySpecificMethods"); + addEParameter(op, ecorePackage.getEString(), "aMethodNamePrefix"); + addEParameter(op, this.getJTypeList(), "excludedNames"); + + op = addEOperation(javaClassEClass, this.getMethod(), "getPublicMethod"); + addEParameter(op, ecorePackage.getEString(), "methodName"); + addEParameter(op, this.getJTypeList(), "parameterTypes"); + + addEOperation(javaClassEClass, this.getJTypeList(), "getPublicMethods"); + + addEOperation(javaClassEClass, this.getJTypeList(), "getPublicMethodsExtended"); + + op = addEOperation(javaClassEClass, this.getJTypeList(), "getPublicMethodsNamed"); + addEParameter(op, ecorePackage.getEString(), "name"); + + addEOperation(javaClassEClass, this.getJavaClass(), "getSupertype"); + + op = addEOperation(javaClassEClass, ecorePackage.getEBoolean(), "implementsInterface"); + addEParameter(op, this.getJavaClass(), "interfaceType"); + + addEOperation(javaClassEClass, ecorePackage.getEString(), "infoString"); + + op = addEOperation(javaClassEClass, ecorePackage.getEBoolean(), "inheritsFrom"); + addEParameter(op, this.getJavaClass(), "javaClass"); + + addEOperation(javaClassEClass, ecorePackage.getEBoolean(), "isExistingType"); + + addEOperation(javaClassEClass, ecorePackage.getEBoolean(), "isInterface"); + + op = addEOperation(javaClassEClass, null, "setSupertype"); + addEParameter(op, this.getJavaClass(), "javaclass"); + + initEClass(initializerEClass, Initializer.class, "Initializer", !IS_ABSTRACT, !IS_INTERFACE); + initEAttribute(getInitializer_IsStatic(), ecorePackage.getEBooleanObject(), "isStatic", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEReference(getInitializer_JavaClass(), this.getJavaClass(), this.getJavaClass_Initializers(), "javaClass", null, 0, 1, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getInitializer_Source(), this.getBlock(), null, "source", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + + initEClass(javaParameterEClass, JavaParameter.class, "JavaParameter", !IS_ABSTRACT, !IS_INTERFACE); + initEAttribute(getJavaParameter_Final(), ecorePackage.getEBoolean(), "final", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getJavaParameter_ParameterKind(), this.getJavaParameterKind(), "parameterKind", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + + addEOperation(javaParameterEClass, ecorePackage.getEBoolean(), "isArray"); + + addEOperation(javaParameterEClass, ecorePackage.getEBoolean(), "isReturn"); + + addEOperation(javaParameterEClass, this.getJTypeJavaHelpers(), "getJavaType"); + + addEOperation(javaParameterEClass, ecorePackage.getEString(), "getQualifiedName"); + + initEClass(methodEClass, Method.class, "Method", !IS_ABSTRACT, !IS_INTERFACE); + initEAttribute(getMethod_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getMethod_Native(), ecorePackage.getEBoolean(), "native", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getMethod_Synchronized(), ecorePackage.getEBoolean(), "synchronized", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getMethod_Final(), ecorePackage.getEBoolean(), "final", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getMethod_Constructor(), ecorePackage.getEBoolean(), "constructor", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getMethod_Static(), ecorePackage.getEBoolean(), "static", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getMethod_JavaVisibility(), this.getJavaVisibilityKind(), "javaVisibility", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEReference(getMethod_Parameters(), this.getJavaParameter(), null, "parameters", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getMethod_JavaExceptions(), this.getJavaClass(), null, "javaExceptions", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getMethod_JavaClass(), this.getJavaClass(), this.getJavaClass_Methods(), "javaClass", null, 0, 1, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getMethod_Source(), this.getBlock(), null, "source", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + + addEOperation(methodEClass, this.getJavaClass(), "getContainingJavaClass"); + + addEOperation(methodEClass, ecorePackage.getEString(), "getMethodElementSignature"); + + op = addEOperation(methodEClass, this.getJavaParameter(), "getParameter"); + addEParameter(op, ecorePackage.getEString(), "parameterName"); + + addEOperation(methodEClass, this.getJTypeJavaHelpers(), "getReturnType"); + + op = addEOperation(methodEClass, null, "setReturnType"); + addEParameter(op, this.getJTypeJavaHelpers(), "type"); + + addEOperation(methodEClass, ecorePackage.getEString(), "getSignature"); + + addEOperation(methodEClass, ecorePackage.getEBoolean(), "isGenerated"); + + op = addEOperation(methodEClass, null, "setIsGenerated"); + addEParameter(op, ecorePackage.getEBoolean(), "generated"); + + addEOperation(methodEClass, ecorePackage.getEBoolean(), "isVoid"); + + initEClass(fieldEClass, Field.class, "Field", !IS_ABSTRACT, !IS_INTERFACE); + initEAttribute(getField_Final(), ecorePackage.getEBoolean(), "final", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getField_Static(), ecorePackage.getEBoolean(), "static", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getField_JavaVisibility(), this.getJavaVisibilityKind(), "javaVisibility", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEReference(getField_JavaClass(), this.getJavaClass(), this.getJavaClass_Fields(), "javaClass", null, 0, 1, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + initEReference(getField_Initializer(), this.getBlock(), null, "initializer", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + + addEOperation(fieldEClass, this.getJavaClass(), "getContainingJavaClass"); + + addEOperation(fieldEClass, ecorePackage.getEBoolean(), "isArray"); + + initEClass(blockEClass, Block.class, "Block", !IS_ABSTRACT, !IS_INTERFACE); + initEAttribute(getBlock_Source(), ecorePackage.getEString(), "source", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEAttribute(getBlock_Name(), ecorePackage.getEString(), "name", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEReference(getBlock_Contents(), this.getBlock(), null, "contents", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + + initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT, !IS_INTERFACE); + + initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE); + + initEClass(javaPackageEClass, JavaPackage.class, "JavaPackage", !IS_ABSTRACT, !IS_INTERFACE); + initEReference(getJavaPackage_JavaClasses(), this.getJavaClass(), this.getJavaClass_JavaPackage(), "javaClasses", null, 0, -1, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + + initEClass(javaDataTypeEClass, JavaDataType.class, "JavaDataType", !IS_ABSTRACT, !IS_INTERFACE); + + addEOperation(javaDataTypeEClass, ecorePackage.getEString(), "getDefaultValueString"); + + initEClass(arrayTypeEClass, ArrayType.class, "ArrayType", !IS_ABSTRACT, !IS_INTERFACE); + initEAttribute(getArrayType_ArrayDimensions(), ecorePackage.getEInt(), "arrayDimensions", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED); + initEReference(getArrayType_ComponentType(), theEcorePackage.getEClassifier(), null, "componentType", null, 1, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED); + + addEOperation(arrayTypeEClass, this.getJTypeJavaHelpers(), "getFinalComponentType"); + + addEOperation(arrayTypeEClass, this.getJTypeJavaHelpers(), "getComponentTypeAsHelper"); + + addEOperation(arrayTypeEClass, ecorePackage.getEBoolean(), "isPrimitiveArray"); + + op = addEOperation(arrayTypeEClass, null, "setComponentType"); + addEParameter(op, this.getJTypeJavaHelpers(), "helperComponentType"); + + initEClass(javaEventEClass, JavaEvent.class, "JavaEvent", IS_ABSTRACT, !IS_INTERFACE); + + // Initialize enums and add enum literals + initEEnum(typeKindEEnum, TypeKind.class, "TypeKind"); + addEEnumLiteral(typeKindEEnum, TypeKind.UNDEFINED_LITERAL); + addEEnumLiteral(typeKindEEnum, TypeKind.CLASS_LITERAL); + addEEnumLiteral(typeKindEEnum, TypeKind.INTERFACE_LITERAL); + addEEnumLiteral(typeKindEEnum, TypeKind.EXCEPTION_LITERAL); + + initEEnum(javaVisibilityKindEEnum, JavaVisibilityKind.class, "JavaVisibilityKind"); + addEEnumLiteral(javaVisibilityKindEEnum, JavaVisibilityKind.PUBLIC_LITERAL); + addEEnumLiteral(javaVisibilityKindEEnum, JavaVisibilityKind.PRIVATE_LITERAL); + addEEnumLiteral(javaVisibilityKindEEnum, JavaVisibilityKind.PROTECTED_LITERAL); + addEEnumLiteral(javaVisibilityKindEEnum, JavaVisibilityKind.PACKAGE_LITERAL); + + initEEnum(javaParameterKindEEnum, JavaParameterKind.class, "JavaParameterKind"); + addEEnumLiteral(javaParameterKindEEnum, JavaParameterKind.IN_LITERAL); + addEEnumLiteral(javaParameterKindEEnum, JavaParameterKind.OUT_LITERAL); + addEEnumLiteral(javaParameterKindEEnum, JavaParameterKind.INOUT_LITERAL); + addEEnumLiteral(javaParameterKindEEnum, JavaParameterKind.RETURN_LITERAL); + + // Initialize data types + initEDataType(jTypeJavaHelpersEDataType, JavaHelpers.class, "JTypeJavaHelpers", IS_SERIALIZABLE); + initEDataType(jTypeListEDataType, List.class, "JTypeList", IS_SERIALIZABLE); + + // Create resource + createResource(eNS_URI); + } +} //JavaRefPackageImpl + + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/MethodImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/MethodImpl.java new file mode 100644 index 000000000..0d0436056 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/MethodImpl.java @@ -0,0 +1,1091 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: MethodImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EOperationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.Block; +import org.eclipse.jem.java.JavaClass; +import org.eclipse.jem.java.JavaHelpers; +import org.eclipse.jem.java.JavaParameter; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.JavaVisibilityKind; +import org.eclipse.jem.java.Method; +import org.eclipse.jem.internal.java.adapters.ReadAdaptor; + +/** + * @generated + */ +public class MethodImpl extends EOperationImpl implements Method{ + protected String signature; + + /** + * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final boolean ABSTRACT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isAbstract() <em>Abstract</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isAbstract() + * @generated + * @ordered + */ + protected boolean abstract_ = ABSTRACT_EDEFAULT; + + /** + * The default value of the '{@link #isNative() <em>Native</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isNative() + * @generated + * @ordered + */ + protected static final boolean NATIVE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isNative() <em>Native</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isNative() + * @generated + * @ordered + */ + protected boolean native_ = NATIVE_EDEFAULT; + + /** + * The default value of the '{@link #isSynchronized() <em>Synchronized</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSynchronized() + * @generated + * @ordered + */ + protected static final boolean SYNCHRONIZED_EDEFAULT = false; + + /** + * The cached value of the '{@link #isSynchronized() <em>Synchronized</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSynchronized() + * @generated + * @ordered + */ + protected boolean synchronized_ = SYNCHRONIZED_EDEFAULT; + + /** + * 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 cached value of the '{@link #isFinal() <em>Final</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isFinal() + * @generated + * @ordered + */ + protected boolean final_ = FINAL_EDEFAULT; + + /** + * The default value of the '{@link #isConstructor() <em>Constructor</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isConstructor() + * @generated + * @ordered + */ + protected static final boolean CONSTRUCTOR_EDEFAULT = false; + + /** + * The cached value of the '{@link #isConstructor() <em>Constructor</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isConstructor() + * @generated + * @ordered + */ + protected boolean constructor = CONSTRUCTOR_EDEFAULT; + + /** + * The default value of the '{@link #isStatic() <em>Static</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isStatic() + * @generated + * @ordered + */ + protected static final boolean STATIC_EDEFAULT = false; + + /** + * The cached value of the '{@link #isStatic() <em>Static</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isStatic() + * @generated + * @ordered + */ + protected boolean static_ = STATIC_EDEFAULT; + + /** + * The default value of the '{@link #getJavaVisibility() <em>Java Visibility</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getJavaVisibility() + * @generated + * @ordered + */ + protected static final JavaVisibilityKind JAVA_VISIBILITY_EDEFAULT = JavaVisibilityKind.PUBLIC_LITERAL; + + public static final String copyright = "(c) Copyright IBM Corporation 2001."; + private transient boolean isGenerated = false; + /** + * @generated This field/method will be replaced during code generation. + */ + protected JavaVisibilityKind javaVisibility = JAVA_VISIBILITY_EDEFAULT; + /** + * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters = null; + + /** + * The cached value of the '{@link #getJavaExceptions() <em>Java Exceptions</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getJavaExceptions() + * @generated + * @ordered + */ + protected EList javaExceptions = null; + + /** + * The cached value of the '{@link #getSource() <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSource() + * @generated + * @ordered + */ + protected Block source = null; + + protected MethodImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getMethod(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isAbstractGen() + { + return abstract_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setAbstract(boolean newAbstract) + { + boolean oldAbstract = abstract_; + abstract_ = newAbstract; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__ABSTRACT, oldAbstract, abstract_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isNativeGen() + { + return native_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setNative(boolean newNative) + { + boolean oldNative = native_; + native_ = newNative; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__NATIVE, oldNative, native_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSynchronizedGen() + { + return synchronized_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSynchronized(boolean newSynchronized) + { + boolean oldSynchronized = synchronized_; + synchronized_ = newSynchronized; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__SYNCHRONIZED, oldSynchronized, synchronized_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isFinalGen() + { + return final_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFinal(boolean newFinal) + { + boolean oldFinal = final_; + final_ = newFinal; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__FINAL, oldFinal, final_)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isConstructorGen() + { + return constructor; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setConstructor(boolean newConstructor) + { + boolean oldConstructor = constructor; + constructor = newConstructor; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__CONSTRUCTOR, oldConstructor, constructor)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isStaticGen() + { + return static_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStatic(boolean newStatic) + { + boolean oldStatic = static_; + static_ = newStatic; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__STATIC, oldStatic, static_)); + } + + /** + * Return the java class that this method is defined in. + */ + public JavaClass getContainingJavaClass() { + return this.getJavaClass(); + } + /** + * Overrides to ensure reflection is done. + */ + public boolean isAbstract() { + if (!hasReflected) reflectValues(); + return isAbstractGen(); + } + public boolean isConstructor() { + if (!hasReflected) reflectValues(); + return isConstructorGen(); + } + public boolean isFinal() { + if (!hasReflected) reflectValues(); + return isFinalGen(); + } + public boolean isNative() { + if (!hasReflected) reflectValues(); + return isNativeGen(); + } + public boolean isStatic() { + if (!hasReflected) reflectValues(); + return isStaticGen(); + } + public boolean isSynchronized() { + if (!hasReflected) reflectValues(); + return isSynchronizedGen(); + } + public EList getJavaExceptions() { + if (!hasReflected) reflectValues(); + return getJavaExceptionsGen(); + } + public JavaVisibilityKind getJavaVisibility() { + if (!hasReflected) reflectValues(); + return getJavaVisibilityGen(); + } + public EList getParameters() { + if (!hasReflected) reflectValues(); + return getParametersGen(); + } + + /** + * @see org.eclipse.emf.ecore.ETypedElement#getEType() + */ + public EClassifier getEType() { + if (!hasReflected) reflectValues(); + return getETypeGen(); + } + + public EClassifier getETypeGen() { + return super.getEType(); + } + + + /** + * Return a String with the the method name and its parameters. e.g. <code> setFirstName(java.lang.String) <//code> . + * + */ + public String getMethodElementSignature() { + StringBuffer sb = new StringBuffer(75); + sb.append(getName()); + sb.append("("); + List params = getParameters(); + JavaParameter param; + int parmSize = params.size(); + int commaTest = 0; + for (int j = 0; j < parmSize; j++) { + if (j > commaTest) { + sb.append(","); + } + param = (JavaParameter) params.get(j); +//FB if (param.isReturn()) { +//FB commaTest ++; +//FB continue; +//FB } + sb.append(((JavaHelpers) param.getEType()).getQualifiedName()); + } + sb.append(")"); + return sb.toString(); + } + /** + * Return a Parameter with the passed name, or null. + */ + public JavaParameter getParameter(String parameterName) { + List parms = getParameters(); + JavaParameter parm; + int parmSize = parms.size(); + for (int j = 0; j < parmSize; j++) { + parm = (JavaParameter) parms.get(j); + if (parm.getName().equals(parameterName)) + return parm; + } + return null; + } + + /** + * Return a ReadAdaptor which can reflect our Java properties + */ + protected ReadAdaptor getReadAdaptor() { + return (ReadAdaptor)EcoreUtil.getRegisteredAdapter(this, ReadAdaptor.TYPE_KEY); + } + + protected boolean hasReflected = false; + + protected void reflectValues() + { + ReadAdaptor readAdaptor = getReadAdaptor(); + if (readAdaptor != null) hasReflected = readAdaptor.reflectValuesIfNecessary(); + } + + /** + * Get the return type. + */ + public JavaHelpers getReturnType() { + return (JavaHelpers)getEType(); + } + + public String getSignature() { + if (signature == null) + signature = doGetSignature(); + return signature; + } + + /** + * Replicate the functionality of java.lang.reflect.Method.toString(). + * + * Returns a string describing this Method. The string is formatted as the method access modifiers, if any, followed by the method return type, followed by a space, followed by the class declaring the method, followed by a period, followed by the method name, followed by a parenthesized, comma-separated list of the method's formal parameter types. If the method throws checked exceptions, the parameter list is followed by a space, followed by the word throws followed by a comma-separated list of the thrown exception types. + * + * For example: + * + * public boolean java.lang.Object.equals(java.lang.Object) + * + * The access modifiers are placed in canonical order as specified by "The Java Language Specification". This is public, <tt>protected<//tt> or <tt>private<//tt> first, and then other modifiers in the following order: <tt>abstract<//tt>, <tt>static<//tt>, <tt>final<//tt>, <tt>synchronized<//tt> <tt>native<//tt>. + + */ + protected String doGetSignature() { + StringBuffer sb = new StringBuffer(); + switch (getJavaVisibility().getValue()) + { + case JavaVisibilityKind.PUBLIC: + sb.append("Public "); + break; + case JavaVisibilityKind.PROTECTED: + sb.append("Protected "); + break; + case JavaVisibilityKind.PRIVATE: + sb.append("Private "); + break; + case JavaVisibilityKind.PACKAGE: + sb.append("Package "); + break; + } + if (isAbstract()) + sb.append("abstract "); + if (isStatic()) + sb.append("static "); + if (isFinal()) + sb.append("final "); + if (isSynchronized()) + sb.append("synchronized "); + if (isNative()) + sb.append("native "); + if (isVoid()) + sb.append("void "); + else + sb.append(((JavaHelpers) getReturnType()).getQualifiedName() + " "); + sb.append(getContainingJavaClass().getJavaName() + "."); + sb.append(getName() + "("); + List params = getParameters(); + JavaParameter param; + int parmSize = params.size(); + for (int j = 0; j < parmSize; j++) { + param = (JavaParameter) params.get(j); +//FB if (param.isReturn()) +//FB continue; // listParameters() includes return type in array + sb.append(((JavaHelpers) param.getEType()).getQualifiedName()); + if (j < (params.size() - 1)) { + sb.append(","); + } + } + sb.append(")"); + List exceptions = getJavaExceptions(); + JavaClass exception; + if (exceptions.size() > 0) { + sb.append(" throws "); + for (int k = 0; k < exceptions.size(); k++) { + exception = (JavaClass) exceptions.get(k); + sb.append(exception.getJavaName()); + if (k < (exceptions.size() - 1)) { + sb.append(","); + } + } + } + return sb.toString(); + } + /** + * Returns true if the method is system generated. + * This is usually determined by the "generated" tag in the comment. + */ + public boolean isGenerated() { + return isGenerated; + } + + /** + * Is this a void return type method. + */ + public boolean isVoid() { +//FB return (getReturnParameter() == null || "void".equals(getReturnType().getName())); + return (getReturnType() == null || "void".equals(getReturnType().getName())); + } + public JavaParameter[] listParametersWithoutReturn() { + Collection v = getParameters(); + JavaParameter[] result = new JavaParameter[v.size()]; + v.toArray(result); + return result; + } + + public EList eContents() { + EList results = new BasicEList(); + results.addAll(getParametersGen()); //FB + return results; + } + /** + * Set the isGenerated flag. + */ + public void setIsGenerated(boolean generated) { + isGenerated = generated; + } + /** + * Set the return type + */ + public void setReturnType(JavaHelpers type) { + this.setEType(type); + } + /** + * @generated This field/method will be replaced during code generation + */ + public JavaVisibilityKind getJavaVisibilityGen() + { + return javaVisibility; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setJavaVisibility(JavaVisibilityKind newJavaVisibility) + { + JavaVisibilityKind oldJavaVisibility = javaVisibility; + javaVisibility = newJavaVisibility == null ? JAVA_VISIBILITY_EDEFAULT : newJavaVisibility; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__JAVA_VISIBILITY, oldJavaVisibility, javaVisibility)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public JavaClass getJavaClass() + { + if (eContainerFeatureID != JavaRefPackage.METHOD__JAVA_CLASS) return null; + return (JavaClass)eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setJavaClass(JavaClass newJavaClass) + { + if (newJavaClass != eContainer || (eContainerFeatureID != JavaRefPackage.METHOD__JAVA_CLASS && newJavaClass != null)) { + if (EcoreUtil.isAncestor(this, newJavaClass)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newJavaClass != null) + msgs = ((InternalEObject)newJavaClass).eInverseAdd(this, JavaRefPackage.JAVA_CLASS__METHODS, JavaClass.class, msgs); + msgs = eBasicSetContainer((InternalEObject)newJavaClass, JavaRefPackage.METHOD__JAVA_CLASS, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__JAVA_CLASS, newJavaClass, newJavaClass)); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public Block getSource() + { + if (source != null && source.eIsProxy()) { + Block oldSource = source; + source = (Block)eResolveProxy((InternalEObject)source); + if (source != oldSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaRefPackage.METHOD__SOURCE, oldSource, source)); + } + } + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Block basicGetSource() + { + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSource(Block newSource) + { + Block oldSource = source; + source = newSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavaRefPackage.METHOD__SOURCE, oldSource, source)); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.METHOD__EANNOTATIONS: + return eAnnotations != null && !eAnnotations.isEmpty(); + case JavaRefPackage.METHOD__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.METHOD__ORDERED: + return ordered != ORDERED_EDEFAULT; + case JavaRefPackage.METHOD__UNIQUE: + return unique != UNIQUE_EDEFAULT; + case JavaRefPackage.METHOD__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + case JavaRefPackage.METHOD__UPPER_BOUND: + return upperBound != UPPER_BOUND_EDEFAULT; + case JavaRefPackage.METHOD__MANY: + return isMany() != false; + case JavaRefPackage.METHOD__REQUIRED: + return isRequired() != false; + case JavaRefPackage.METHOD__ETYPE: + return eType != null; + case JavaRefPackage.METHOD__ECONTAINING_CLASS: + return getEContainingClass() != null; + case JavaRefPackage.METHOD__EPARAMETERS: + return eParameters != null && !eParameters.isEmpty(); + case JavaRefPackage.METHOD__EEXCEPTIONS: + return eExceptions != null && !eExceptions.isEmpty(); + case JavaRefPackage.METHOD__ABSTRACT: + return abstract_ != ABSTRACT_EDEFAULT; + case JavaRefPackage.METHOD__NATIVE: + return native_ != NATIVE_EDEFAULT; + case JavaRefPackage.METHOD__SYNCHRONIZED: + return synchronized_ != SYNCHRONIZED_EDEFAULT; + case JavaRefPackage.METHOD__FINAL: + return final_ != FINAL_EDEFAULT; + case JavaRefPackage.METHOD__CONSTRUCTOR: + return constructor != CONSTRUCTOR_EDEFAULT; + case JavaRefPackage.METHOD__STATIC: + return static_ != STATIC_EDEFAULT; + case JavaRefPackage.METHOD__JAVA_VISIBILITY: + return javaVisibility != JAVA_VISIBILITY_EDEFAULT; + case JavaRefPackage.METHOD__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + case JavaRefPackage.METHOD__JAVA_EXCEPTIONS: + return javaExceptions != null && !javaExceptions.isEmpty(); + case JavaRefPackage.METHOD__JAVA_CLASS: + return getJavaClass() != null; + case JavaRefPackage.METHOD__SOURCE: + return source != null; + } + 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.METHOD__EANNOTATIONS: + getEAnnotations().clear(); + getEAnnotations().addAll((Collection)newValue); + return; + case JavaRefPackage.METHOD__NAME: + setName((String)newValue); + return; + case JavaRefPackage.METHOD__ORDERED: + setOrdered(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__UNIQUE: + setUnique(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__LOWER_BOUND: + setLowerBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.METHOD__UPPER_BOUND: + setUpperBound(((Integer)newValue).intValue()); + return; + case JavaRefPackage.METHOD__ETYPE: + setEType((EClassifier)newValue); + return; + case JavaRefPackage.METHOD__EPARAMETERS: + getEParameters().clear(); + getEParameters().addAll((Collection)newValue); + return; + case JavaRefPackage.METHOD__EEXCEPTIONS: + getEExceptions().clear(); + getEExceptions().addAll((Collection)newValue); + return; + case JavaRefPackage.METHOD__ABSTRACT: + setAbstract(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__NATIVE: + setNative(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__SYNCHRONIZED: + setSynchronized(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__FINAL: + setFinal(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__CONSTRUCTOR: + setConstructor(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__STATIC: + setStatic(((Boolean)newValue).booleanValue()); + return; + case JavaRefPackage.METHOD__JAVA_VISIBILITY: + setJavaVisibility((JavaVisibilityKind)newValue); + return; + case JavaRefPackage.METHOD__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection)newValue); + return; + case JavaRefPackage.METHOD__JAVA_EXCEPTIONS: + getJavaExceptions().clear(); + getJavaExceptions().addAll((Collection)newValue); + return; + case JavaRefPackage.METHOD__JAVA_CLASS: + setJavaClass((JavaClass)newValue); + return; + case JavaRefPackage.METHOD__SOURCE: + setSource((Block)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.METHOD__EANNOTATIONS: + getEAnnotations().clear(); + return; + case JavaRefPackage.METHOD__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.METHOD__ORDERED: + setOrdered(ORDERED_EDEFAULT); + return; + case JavaRefPackage.METHOD__UNIQUE: + setUnique(UNIQUE_EDEFAULT); + return; + case JavaRefPackage.METHOD__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + case JavaRefPackage.METHOD__UPPER_BOUND: + setUpperBound(UPPER_BOUND_EDEFAULT); + return; + case JavaRefPackage.METHOD__ETYPE: + setEType((EClassifier)null); + return; + case JavaRefPackage.METHOD__EPARAMETERS: + getEParameters().clear(); + return; + case JavaRefPackage.METHOD__EEXCEPTIONS: + getEExceptions().clear(); + return; + case JavaRefPackage.METHOD__ABSTRACT: + setAbstract(ABSTRACT_EDEFAULT); + return; + case JavaRefPackage.METHOD__NATIVE: + setNative(NATIVE_EDEFAULT); + return; + case JavaRefPackage.METHOD__SYNCHRONIZED: + setSynchronized(SYNCHRONIZED_EDEFAULT); + return; + case JavaRefPackage.METHOD__FINAL: + setFinal(FINAL_EDEFAULT); + return; + case JavaRefPackage.METHOD__CONSTRUCTOR: + setConstructor(CONSTRUCTOR_EDEFAULT); + return; + case JavaRefPackage.METHOD__STATIC: + setStatic(STATIC_EDEFAULT); + return; + case JavaRefPackage.METHOD__JAVA_VISIBILITY: + setJavaVisibility(JAVA_VISIBILITY_EDEFAULT); + return; + case JavaRefPackage.METHOD__PARAMETERS: + getParameters().clear(); + return; + case JavaRefPackage.METHOD__JAVA_EXCEPTIONS: + getJavaExceptions().clear(); + return; + case JavaRefPackage.METHOD__JAVA_CLASS: + setJavaClass((JavaClass)null); + return; + case JavaRefPackage.METHOD__SOURCE: + setSource((Block)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * @generated This field/method will be replaced during code generation. + */ + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (abstract: "); + result.append(abstract_); + result.append(", native: "); + result.append(native_); + result.append(", synchronized: "); + result.append(synchronized_); + result.append(", final: "); + result.append(final_); + result.append(", constructor: "); + result.append(constructor); + result.append(", static: "); + result.append(static_); + result.append(", javaVisibility: "); + result.append(javaVisibility); + result.append(')'); + return result.toString(); + } + + /** + * @generated This field/method will be replaced during code generation + */ + public EList getParametersGen() + { + if (parameters == null) { + parameters = new EObjectContainmentEList(JavaParameter.class, this, JavaRefPackage.METHOD__PARAMETERS); + } + return parameters; + } + + /** + * @generated This field/method will be replaced during code generation + */ + public EList getJavaExceptionsGen() + { + if (javaExceptions == null) { + javaExceptions = new EObjectResolvingEList(JavaClass.class, this, JavaRefPackage.METHOD__JAVA_EXCEPTIONS); + } + return javaExceptions; + } + + /** + * <!-- 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.METHOD__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); + case JavaRefPackage.METHOD__ECONTAINING_CLASS: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.METHOD__ECONTAINING_CLASS, msgs); + case JavaRefPackage.METHOD__EPARAMETERS: + return ((InternalEList)getEParameters()).basicAdd(otherEnd, msgs); + case JavaRefPackage.METHOD__JAVA_CLASS: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavaRefPackage.METHOD__JAVA_CLASS, 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.METHOD__EANNOTATIONS: + return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); + case JavaRefPackage.METHOD__ECONTAINING_CLASS: + return eBasicSetContainer(null, JavaRefPackage.METHOD__ECONTAINING_CLASS, msgs); + case JavaRefPackage.METHOD__EPARAMETERS: + return ((InternalEList)getEParameters()).basicRemove(otherEnd, msgs); + case JavaRefPackage.METHOD__PARAMETERS: + return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); + case JavaRefPackage.METHOD__JAVA_CLASS: + return eBasicSetContainer(null, JavaRefPackage.METHOD__JAVA_CLASS, 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.METHOD__ECONTAINING_CLASS: + return ((InternalEObject)eContainer).eInverseRemove(this, EcorePackage.ECLASS__EOPERATIONS, EClass.class, msgs); + case JavaRefPackage.METHOD__JAVA_CLASS: + return ((InternalEObject)eContainer).eInverseRemove(this, JavaRefPackage.JAVA_CLASS__METHODS, JavaClass.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return ((InternalEObject)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.METHOD__EANNOTATIONS: + return getEAnnotations(); + case JavaRefPackage.METHOD__NAME: + return getName(); + case JavaRefPackage.METHOD__ORDERED: + return isOrdered() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__UNIQUE: + return isUnique() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__LOWER_BOUND: + return new Integer(getLowerBound()); + case JavaRefPackage.METHOD__UPPER_BOUND: + return new Integer(getUpperBound()); + case JavaRefPackage.METHOD__MANY: + return isMany() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__REQUIRED: + return isRequired() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__ETYPE: + if (resolve) return getEType(); + return basicGetEType(); + case JavaRefPackage.METHOD__ECONTAINING_CLASS: + return getEContainingClass(); + case JavaRefPackage.METHOD__EPARAMETERS: + return getEParameters(); + case JavaRefPackage.METHOD__EEXCEPTIONS: + return getEExceptions(); + case JavaRefPackage.METHOD__ABSTRACT: + return isAbstract() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__NATIVE: + return isNative() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__SYNCHRONIZED: + return isSynchronized() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__FINAL: + return isFinal() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__CONSTRUCTOR: + return isConstructor() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__STATIC: + return isStatic() ? Boolean.TRUE : Boolean.FALSE; + case JavaRefPackage.METHOD__JAVA_VISIBILITY: + return getJavaVisibility(); + case JavaRefPackage.METHOD__PARAMETERS: + return getParameters(); + case JavaRefPackage.METHOD__JAVA_EXCEPTIONS: + return getJavaExceptions(); + case JavaRefPackage.METHOD__JAVA_CLASS: + return getJavaClass(); + case JavaRefPackage.METHOD__SOURCE: + if (resolve) return getSource(); + return basicGetSource(); + } + return eDynamicGet(eFeature, resolve); + } + +} + + + + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/StatementImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/StatementImpl.java new file mode 100644 index 000000000..327e17fa3 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/StatementImpl.java @@ -0,0 +1,146 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: StatementImpl.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jem.java.Statement; +/** + * @generated + */ +public class StatementImpl extends BlockImpl implements Statement{ + + protected StatementImpl() { + super(); + } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() + { + return JavaRefPackage.eINSTANCE.getStatement(); + } + + /** + * <!-- 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.STATEMENT__CONTENTS: + return ((InternalEList)getContents()).basicRemove(otherEnd, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.STATEMENT__SOURCE: + return getSource(); + case JavaRefPackage.STATEMENT__NAME: + return getName(); + case JavaRefPackage.STATEMENT__CONTENTS: + return getContents(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.STATEMENT__SOURCE: + setSource((String)newValue); + return; + case JavaRefPackage.STATEMENT__NAME: + setName((String)newValue); + return; + case JavaRefPackage.STATEMENT__CONTENTS: + getContents().clear(); + getContents().addAll((Collection)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.STATEMENT__SOURCE: + setSource(SOURCE_EDEFAULT); + return; + case JavaRefPackage.STATEMENT__NAME: + setName(NAME_EDEFAULT); + return; + case JavaRefPackage.STATEMENT__CONTENTS: + getContents().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) + { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavaRefPackage.STATEMENT__SOURCE: + return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); + case JavaRefPackage.STATEMENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case JavaRefPackage.STATEMENT__CONTENTS: + return contents != null && !contents.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} + + + + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/URL.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/URL.java new file mode 100644 index 000000000..be53a289f --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/URL.java @@ -0,0 +1,76 @@ +package org.eclipse.jem.java.impl; +/******************************************************************************* + * Copyright (c) 2001, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: URL.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import java.util.ArrayList; +import java.util.List; + +public class URL { + public String namespaceName; + public String ID; + List attributeNames; +/** + * URL constructor comment. + */ +public URL(String urlString) { + initializeFromString(urlString); +} +/** + * URL constructor comment. + */ +public URL(String nameSpaceName, String anID) { + this.namespaceName = nameSpaceName; + this.ID = anID; +} +public List getAttributeNames() { + return attributeNames; +} +public void initializeFromString(String urlString) { + int poundInx = urlString.lastIndexOf('#'); + if (poundInx > -1) { + namespaceName = urlString.substring(0, poundInx); + urlString = urlString.substring(poundInx + 1); + int dotIndex = urlString.indexOf("->"); + if (dotIndex > -1) { + ID = urlString.substring(0, dotIndex); + String attributeNameString = urlString.substring(dotIndex + 2); + attributeNames = new ArrayList(); + do { + dotIndex = attributeNameString.indexOf("->"); + if (dotIndex > -1) { + attributeNames.add(attributeNameString.substring(0, dotIndex)); + attributeNameString = attributeNameString.substring(dotIndex + 2); + } else + attributeNames.add(attributeNameString); + } while (dotIndex > -1); + } else { + ID = urlString; + } + } else { + // assume that any URL string that ends with .xmi is a namespace. + if (urlString.endsWith(".xmi")){ + namespaceName = urlString; + ID = null; + } else { + namespaceName = "?defaultURL?"; + ID = urlString; + } + } +} +public String toString() { + return "URL(" + ((namespaceName == null) ? "" : namespaceName + "#") + ((ID == null) ? "" : ID) + ")"; +} +} + + diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefAdapterFactory.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefAdapterFactory.java new file mode 100644 index 000000000..6617192a4 --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefAdapterFactory.java @@ -0,0 +1,522 @@ +package org.eclipse.jem.java.util; +/******************************************************************************* + * Copyright (c) 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaRefAdapterFactory.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EModelElement; +import org.eclipse.emf.ecore.ENamedElement; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EParameter; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.ETypedElement; + +import org.eclipse.jem.java.*; + + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.jem.java.JavaRefPackage + * @generated + */ +public class JavaRefAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static JavaRefPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavaRefAdapterFactory() + { + if (modelPackage == null) { + modelPackage = JavaRefPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch the delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JavaRefSwitch modelSwitch = + new JavaRefSwitch() { + public Object caseJavaClass(JavaClass object) { + return createJavaClassAdapter(); + } + public Object caseInitializer(Initializer object) { + return createInitializerAdapter(); + } + public Object caseJavaParameter(JavaParameter object) { + return createJavaParameterAdapter(); + } + public Object caseMethod(Method object) { + return createMethodAdapter(); + } + public Object caseField(Field object) { + return createFieldAdapter(); + } + public Object caseBlock(Block object) { + return createBlockAdapter(); + } + public Object caseComment(Comment object) { + return createCommentAdapter(); + } + public Object caseStatement(Statement object) { + return createStatementAdapter(); + } + public Object caseJavaPackage(JavaPackage object) { + return createJavaPackageAdapter(); + } + public Object caseJavaDataType(JavaDataType object) { + return createJavaDataTypeAdapter(); + } + public Object caseArrayType(ArrayType object) { + return createArrayTypeAdapter(); + } + public Object caseJavaEvent(JavaEvent object) { + return createJavaEventAdapter(); + } + public Object caseEModelElement(EModelElement object) { + return createEModelElementAdapter(); + } + public Object caseENamedElement(ENamedElement object) { + return createENamedElementAdapter(); + } + public Object caseEClassifier(EClassifier object) { + return createEClassifierAdapter(); + } + public Object caseEClass(EClass object) { + return createEClassAdapter(); + } + public Object caseETypedElement(ETypedElement object) { + return createETypedElementAdapter(); + } + public Object caseEParameter(EParameter object) { + return createEParameterAdapter(); + } + public Object caseEOperation(EOperation object) { + return createEOperationAdapter(); + } + public Object caseEStructuralFeature(EStructuralFeature object) { + return createEStructuralFeatureAdapter(); + } + public Object caseEAttribute(EAttribute object) { + return createEAttributeAdapter(); + } + public Object caseEPackage(EPackage object) { + return createEPackageAdapter(); + } + public Object defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + public Adapter createAdapter(Notifier target) + { + return (Adapter)modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.JavaClass <em>Java Class</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.JavaClass + * @generated + */ + public Adapter createJavaClassAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.Initializer <em>Initializer</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.Initializer + * @generated + */ + public Adapter createInitializerAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.JavaParameter <em>Java Parameter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.JavaParameter + * @generated + */ + public Adapter createJavaParameterAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.Method <em>Method</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.Method + * @generated + */ + public Adapter createMethodAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.Field <em>Field</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.Field + * @generated + */ + public Adapter createFieldAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.Block <em>Block</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.Block + * @generated + */ + public Adapter createBlockAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.Comment <em>Comment</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.Comment + * @generated + */ + public Adapter createCommentAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.Statement <em>Statement</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.Statement + * @generated + */ + public Adapter createStatementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.JavaPackage <em>Java Package</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.JavaPackage + * @generated + */ + public Adapter createJavaPackageAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.JavaDataType <em>Java Data Type</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.JavaDataType + * @generated + */ + public Adapter createJavaDataTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.ArrayType <em>Array Type</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.ArrayType + * @generated + */ + public Adapter createArrayTypeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jem.java.JavaEvent <em>Java Event</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jem.java.JavaEvent + * @generated + */ + public Adapter createJavaEventAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EModelElement + * @generated + */ + public Adapter createEModelElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.ENamedElement + * @generated + */ + public Adapter createENamedElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EClassifier <em>EClassifier</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EClassifier + * @generated + */ + public Adapter createEClassifierAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EClass <em>EClass</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EClass + * @generated + */ + public Adapter createEClassAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ETypedElement <em>ETyped Element</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.ETypedElement + * @generated + */ + public Adapter createETypedElementAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EParameter <em>EParameter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EParameter + * @generated + */ + public Adapter createEParameterAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EOperation <em>EOperation</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EOperation + * @generated + */ + public Adapter createEOperationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EStructuralFeature <em>EStructural Feature</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EStructuralFeature + * @generated + */ + public Adapter createEStructuralFeatureAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EAttribute <em>EAttribute</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EAttribute + * @generated + */ + public Adapter createEAttributeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EPackage <em>EPackage</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.ecore.EPackage + * @generated + */ + public Adapter createEPackageAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //JavaRefAdapterFactory diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefSwitch.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefSwitch.java new file mode 100644 index 000000000..73bb047ca --- /dev/null +++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefSwitch.java @@ -0,0 +1,551 @@ +package org.eclipse.jem.java.util; + +/******************************************************************************* + * Copyright (c) 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +/* + * $RCSfile: JavaRefSwitch.java,v $ + * $Revision: 1.1 $ $Date: 2004/01/13 16:16:21 $ + */ +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EModelElement; +import org.eclipse.emf.ecore.ENamedElement; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EParameter; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.ETypedElement; + +import org.eclipse.jem.java.*; + + + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.jem.java.JavaRefPackage + * @generated + */ +public class JavaRefSwitch { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static JavaRefPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavaRefSwitch() + { + if (modelPackage == null) { + modelPackage = JavaRefPackage.eINSTANCE; + } + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + public Object doSwitch(EObject theEObject) + { + EClass theEClass = theEObject.eClass(); + if (theEClass.eContainer() == modelPackage) { + switch (theEClass.getClassifierID()) { + case JavaRefPackage.JAVA_CLASS: { + JavaClass javaClass = (JavaClass)theEObject; + Object result = caseJavaClass(javaClass); + if (result == null) result = caseEClass(javaClass); + if (result == null) result = caseEClassifier(javaClass); + if (result == null) result = caseENamedElement(javaClass); + if (result == null) result = caseEModelElement(javaClass); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.INITIALIZER: { + Initializer initializer = (Initializer)theEObject; + Object result = caseInitializer(initializer); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.JAVA_PARAMETER: { + JavaParameter javaParameter = (JavaParameter)theEObject; + Object result = caseJavaParameter(javaParameter); + if (result == null) result = caseEParameter(javaParameter); + if (result == null) result = caseEModelElement(javaParameter); + if (result == null) result = caseETypedElement(javaParameter); + if (result == null) result = caseENamedElement(javaParameter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.METHOD: { + Method method = (Method)theEObject; + Object result = caseMethod(method); + if (result == null) result = caseEOperation(method); + if (result == null) result = caseETypedElement(method); + if (result == null) result = caseENamedElement(method); + if (result == null) result = caseEModelElement(method); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.FIELD: { + Field field = (Field)theEObject; + Object result = caseField(field); + if (result == null) result = caseEAttribute(field); + if (result == null) result = caseEStructuralFeature(field); + if (result == null) result = caseETypedElement(field); + if (result == null) result = caseENamedElement(field); + if (result == null) result = caseEModelElement(field); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.BLOCK: { + Block block = (Block)theEObject; + Object result = caseBlock(block); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.COMMENT: { + Comment comment = (Comment)theEObject; + Object result = caseComment(comment); + if (result == null) result = caseBlock(comment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.STATEMENT: { + Statement statement = (Statement)theEObject; + Object result = caseStatement(statement); + if (result == null) result = caseBlock(statement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.JAVA_PACKAGE: { + JavaPackage javaPackage = (JavaPackage)theEObject; + Object result = caseJavaPackage(javaPackage); + if (result == null) result = caseEPackage(javaPackage); + if (result == null) result = caseENamedElement(javaPackage); + if (result == null) result = caseEModelElement(javaPackage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.JAVA_DATA_TYPE: { + JavaDataType javaDataType = (JavaDataType)theEObject; + Object result = caseJavaDataType(javaDataType); + if (result == null) result = caseEClass(javaDataType); + if (result == null) result = caseEClassifier(javaDataType); + if (result == null) result = caseENamedElement(javaDataType); + if (result == null) result = caseEModelElement(javaDataType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaRefPackage.ARRAY_TYPE: { + ArrayType arrayType = (ArrayType)theEObject; + Object result = caseArrayType(arrayType); + if (result == null) result = caseJavaClass(arrayType); + if (result == null) result = caseEClass(arrayType); + if (result == null) result = caseEClassifier(arrayType); + if (result == null) result = caseENamedElement(arrayType); + if (result == null) result = caseEModelElement(arrayType); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + return defaultCase(theEObject); + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Java Class</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Java Class</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseJavaClass(JavaClass object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Initializer</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Initializer</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseInitializer(Initializer object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Java Parameter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Java Parameter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseJavaParameter(JavaParameter object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Method</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Method</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMethod(Method object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Field</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Field</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseField(Field object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Block</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Block</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseBlock(Block object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Comment</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Comment</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseComment(Comment object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Statement</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Statement</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStatement(Statement object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Java Package</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Java Package</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseJavaPackage(JavaPackage object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Java Data Type</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Java Data Type</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseJavaDataType(JavaDataType object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Array Type</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Array Type</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseArrayType(ArrayType object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Java Event</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Java Event</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseJavaEvent(JavaEvent object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EModel Element</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EModel Element</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEModelElement(EModelElement object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>ENamed Element</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>ENamed Element</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseENamedElement(ENamedElement object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EClassifier</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EClassifier</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEClassifier(EClassifier object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EClass</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EClass</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEClass(EClass object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>ETyped Element</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>ETyped Element</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseETypedElement(ETypedElement object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EParameter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EParameter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEParameter(EParameter object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EOperation</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EOperation</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEOperation(EOperation object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EStructural Feature</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EStructural Feature</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEStructuralFeature(EStructuralFeature object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EAttribute</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EAttribute</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEAttribute(EAttribute object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EPackage</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EPackage</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEPackage(EPackage object) + { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + public Object defaultCase(EObject object) + { + return null; + } + +} //JavaRefSwitch |