Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrkulp2004-01-13 16:17:42 +0000
committerrkulp2004-01-13 16:17:42 +0000
commitd3c1ef3217e1a4ff11b6c29248de6b25b2c65b01 (patch)
tree6102316e482e73c08f2fdc27c9dc3f094bdf7730 /plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java
parent78151f6a46a52c9b56eebee9a34dc0f7f1066de5 (diff)
downloadwebtools.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')
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/ArrayType.java97
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Block.java60
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Comment.java29
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Field.java121
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/InheritanceCycleException.java43
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Initializer.java72
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaClass.java410
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaDataType.java42
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaEvent.java29
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaHelpers.java61
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaPackage.java41
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameter.java85
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaParameterKind.java205
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefFactory.java118
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaRefPackage.java2022
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaURL.java91
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/JavaVisibilityKind.java206
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Method.java278
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/Statement.java28
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/TypeKind.java203
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/ArrayTypeImpl.java680
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/BlockImpl.java255
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/CommentImpl.java149
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/FieldImpl.java711
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/InitializerImpl.java313
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaClassImpl.java1813
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaDataTypeImpl.java399
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaEventImpl.java317
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaFactoryImpl.java68
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaPackageImpl.java330
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaParameterImpl.java378
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefFactoryImpl.java325
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/JavaRefPackageImpl.java1041
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/MethodImpl.java1091
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/StatementImpl.java146
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/impl/URL.java76
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefAdapterFactory.java522
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/util/JavaRefSwitch.java551
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

Back to the top