blob: 2f8aa37cc856c7c42e9afddc42914ef36fc6aafc [file] [log] [blame]
<?xml version="1.0" encoding="ASCII"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="java"
nsURI="java.xmi" nsPrefix="org.eclipse.jem.java">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Changes to synch up with Java3e:&#xD;&#xA;- deleted JavaElement, BodyElement which didn't add anything useful&#xD;&#xA;- deleted NestedClass and the association which described nesting, contents can be used instead&#xD;&#xA;- deleted extends/extendedBy which is replaced with MOF subtype/supertype&#xD;&#xA;- deleted the clumsy main diagram&#xD;&#xA;- moved the MOF inheritance details to the MOF binding diagram&#xD;&#xA;- deleted &quot;final&quot; on JavaParameter, don't know what that was supposed to be&#xD;&#xA;- deleted the Category junk&#xD;&#xA;- changed the Block-typed attributes on Field, Method, Initializer to be associations to Block&#xD;&#xA;&#xD;&#xA;Outstanding questions/issues:&#xD;&#xA;- JavaParameterKind should go away if we get the base Parameter kind fixed up&#xD;&#xA;"/>
</eAnnotations>
<eClassifiers xsi:type="ecore:EClass" name="JavaClass" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
<eOperations name="isNested" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="getField" eType="#//Field">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return an Field with the passed name, or null."/>
</eAnnotations>
<eParameters name="fieldName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getFieldExtended" eType="#//Field">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value=" Return an Field with the passed name from this JavaClass or any supertypes.&#xD;&#xA;&#xD;&#xA;Return null if a Field named fieldName is not found."/>
</eAnnotations>
<eParameters name="fieldName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getFieldNamed" eType="#//Field">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return an Field with the passed name, or null."/>
</eAnnotations>
<eParameters name="fieldName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getFieldsExtended" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return all fields, including those from supertypes."/>
</eAnnotations>
</eOperations>
<eOperations name="getMethod" eType="#//Method">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Get the method of this name and these parameters. It will not look up the supertype hierarchy."/>
</eAnnotations>
<eParameters name="methodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="parameterTypes" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="List of parameter types."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getMethodElementSignatures" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return a List of Strings that represent MethodElement signatures from most general to most specific."/>
</eAnnotations>
</eOperations>
<eOperations name="getMethodExtended" eType="#//Method">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Get the method of this name and these parameters. It will look up the supertype hierarchy."/>
</eAnnotations>
<eParameters name="methodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="parameterTypes" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="List of parameter types."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getMethodsExtended" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return all methods, including those from supertypes."/>
</eAnnotations>
</eOperations>
<eOperations name="getOnlySpecificMethods" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="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.&#xD;&#xA;"/>
</eAnnotations>
<eParameters name="aMethodNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="excludedNames" eType="#//JTypeList"/>
</eOperations>
<eOperations name="getPublicMethod" eType="#//Method">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="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."/>
</eAnnotations>
<eParameters name="methodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="parameterTypes" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="List of parameter types."/>
</eAnnotations>
</eParameters>
</eOperations>
<eOperations name="getPublicMethods" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return all methods, it will not go up the supertype hierarchy."/>
</eAnnotations>
</eOperations>
<eOperations name="getPublicMethodsExtended" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return all public methods, including those from supertypes."/>
</eAnnotations>
</eOperations>
<eOperations name="getPublicMethodsNamed" eType="#//JTypeList">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Returns a filtered list on the methods of this class, having a name equal to that of the parameter."/>
</eAnnotations>
<eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getSupertype" eType="#//JavaClass"/>
<eOperations name="implementsInterface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Test whether the receiver implements the passed interface (or one of its supertypes)."/>
</eAnnotations>
<eParameters name="interfaceType" eType="#//JavaClass"/>
</eOperations>
<eOperations name="infoString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return a string showing our details."/>
</eAnnotations>
</eOperations>
<eOperations name="inheritsFrom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Tests whether this class inherits from the passed in class."/>
</eAnnotations>
<eParameters name="javaClass" eType="#//JavaClass"/>
</eOperations>
<eOperations name="isExistingType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Does this type exist."/>
</eAnnotations>
</eOperations>
<eOperations name="isInterface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Is this an interface."/>
</eAnnotations>
</eOperations>
<eOperations name="setSupertype">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set the supertype."/>
</eAnnotations>
<eParameters name="javaclass" eType="#//JavaClass"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//TypeKind"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="implementsInterfaces" upperBound="-1"
eType="#//JavaClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="classImport" upperBound="-1"
eType="#//JavaClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="packageImports" upperBound="-1"
eType="#//JavaPackage"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="fields" upperBound="-1"
eType="#//Field" containment="true" eOpposite="#//Field/javaClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="methods" upperBound="-1"
eType="#//Method" containment="true" eOpposite="#//Method/javaClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="initializers" upperBound="-1"
eType="#//Initializer" containment="true" eOpposite="#//Initializer/javaClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="declaredClasses" upperBound="-1"
eType="#//JavaClass" eOpposite="#//JavaClass/declaringClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="declaringClass" eType="#//JavaClass"
eOpposite="#//JavaClass/declaredClasses"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="javaPackage" eType="#//JavaPackage"
changeable="false" volatile="true" transient="true" eOpposite="#//JavaPackage/javaClasses"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
eType="#//JavaEvent" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="allEvents" upperBound="-1"
eType="#//JavaEvent" volatile="true" transient="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Initializer">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#//JavaClass"
transient="true" eOpposite="#//JavaClass/initializers"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//Block"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="JavaParameter" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EParameter">
<eOperations name="isArray" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Is this parameter type an array type."/>
</eAnnotations>
</eOperations>
<eOperations name="isReturn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Is this a return parameter."/>
</eAnnotations>
</eOperations>
<eOperations name="getJavaType" eType="#//JTypeJavaHelpers"/>
<eOperations name="getQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterKind" eType="#//JavaParameterKind"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Method" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation">
<eOperations name="getContainingJavaClass" eType="#//JavaClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return the java class that this method is defined in."/>
</eAnnotations>
</eOperations>
<eOperations name="getMethodElementSignature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return a String with the the method name and its parameters. e.g. &lt;code> setFirstName(java.lang.String) &lt;/code> .&#xD;&#xA; "/>
</eAnnotations>
</eOperations>
<eOperations name="getParameter" eType="#//JavaParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return a Parameter with the passed name, or null."/>
</eAnnotations>
<eParameters name="parameterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getReturnType" eType="#//JTypeJavaHelpers">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Get the return type."/>
</eAnnotations>
</eOperations>
<eOperations name="setReturnType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set the return type"/>
</eAnnotations>
<eParameters name="type" eType="#//JTypeJavaHelpers"/>
</eOperations>
<eOperations name="getSignature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Replicate the functionality of java.lang.reflect.Method.toString().&#xD;&#xA;&#xD;&#xA;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.&#xD;&#xA;&#xD;&#xA;For example:&#xD;&#xA;&#xD;&#xA; public boolean java.lang.Object.equals(java.lang.Object)&#xD;&#xA;&#xD;&#xA;The access modifiers are placed in canonical order as specified by &quot;The Java Language Specification&quot;. This is public, &lt;tt>protected&lt;/tt> or &lt;tt>private&lt;/tt> first, and then other modifiers in the following order: &lt;tt>abstract&lt;/tt>, &lt;tt>static&lt;/tt>, &lt;tt>final&lt;/tt>, &lt;tt>synchronized&lt;/tt> &lt;tt>native&lt;/tt>.&#xD;&#xA;"/>
</eAnnotations>
</eOperations>
<eOperations name="isGenerated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Returns true if the method is system generated.&#xD;&#xA;This is usually determined by the @generated tag in the comment."/>
</eAnnotations>
</eOperations>
<eOperations name="setIsGenerated">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set the isGenerated flag."/>
</eAnnotations>
<eParameters name="generated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eOperations>
<eOperations name="isVoid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Is this a void return type method."/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="native" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="constructor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="javaVisibility" eType="#//JavaVisibilityKind"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//JavaParameter" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="javaExceptions" upperBound="-1"
eType="#//JavaClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#//JavaClass"
transient="true" eOpposite="#//JavaClass/methods"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//Block"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Field" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement">
<eOperations name="getContainingJavaClass" eType="#//JavaClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Get the class that this field is within."/>
</eAnnotations>
</eOperations>
<eOperations name="isArray" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Is this field an array type."/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="javaVisibility" eType="#//JavaVisibilityKind"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#//JavaClass"
transient="true" eOpposite="#//JavaClass/fields"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="initializer" eType="#//Block"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="TypeKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="UNDEFINED=1 CLASS=2 INTERFACE=3 EXCEPTION=4"/>
</eAnnotations>
<eLiterals name="UNDEFINED"/>
<eLiterals name="CLASS" value="1"/>
<eLiterals name="INTERFACE" value="2"/>
<eLiterals name="EXCEPTION" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Block">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1"
eType="#//Block" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Block"/>
<eClassifiers xsi:type="ecore:EClass" name="Statement" eSuperTypes="#//Block"/>
<eClassifiers xsi:type="ecore:EClass" name="JavaPackage" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage">
<eStructuralFeatures xsi:type="ecore:EReference" name="javaClasses" upperBound="-1"
eType="#//JavaClass" changeable="false" volatile="true" transient="true" eOpposite="#//JavaClass/javaPackage"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="JavaVisibilityKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="PACKAGE=1&#xD;&#xA;PUBLIC=2&#xD;&#xA;PRIVATE=3&#xD;&#xA;PROTECTED=4"/>
</eAnnotations>
<eLiterals name="PUBLIC"/>
<eLiterals name="PRIVATE" value="1"/>
<eLiterals name="PROTECTED" value="2"/>
<eLiterals name="PACKAGE" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="JavaParameterKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="IN=0&#xD;&#xA;OUT=1&#xD;&#xA;INOUT=2&#xD;&#xA;RETURN=3"/>
</eAnnotations>
<eLiterals name="IN"/>
<eLiterals name="OUT" value="1"/>
<eLiterals name="INOUT" value="2"/>
<eLiterals name="RETURN" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="JavaDataType" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
<eOperations name="getDefaultValueString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Return the default string representing the default value of the primitive."/>
</eAnnotations>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArrayType" eSuperTypes="#//JavaClass">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Describes a Java Array type&#xD;&#xA; For multi-dimensional arrays, it is unlikely that the component type will be&#xD;&#xA; specified directly. This would require instantiating a chain of component types&#xD;&#xA; such as String[][][][]->String[][][]->String[][]->String[]->String.&#xD;&#xA;&#xD;&#xA; The component type relationship will be computed if the finalComponentType&#xD;&#xA; and array dimensions is specified.&#xD;&#xA; &#xD;&#xA; For this reason, the preferred way to create is through the JavaRefFactory factory method:&#xD;&#xA; createArrayType(JavaClass finalComponentType, int dimensions)"/>
</eAnnotations>
<eOperations name="getFinalComponentType" eType="#//JTypeJavaHelpers">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Get the final component type for this Array Type.&#xD;&#xA;&#xD;&#xA;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."/>
</eAnnotations>
</eOperations>
<eOperations name="getComponentTypeAsHelper" eType="#//JTypeJavaHelpers">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Get the component type of this array. &#xD;&#xA;&#xD;&#xA;If this is a multi-dimensional array, the component type will be the nested array type."/>
</eAnnotations>
</eOperations>
<eOperations name="isPrimitiveArray" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Is this an array of java primitives"/>
</eAnnotations>
</eOperations>
<eOperations name="setComponentType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Set the component type."/>
</eAnnotations>
<eParameters name="helperComponentType" eType="#//JTypeJavaHelpers"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayDimensions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="componentType" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="JTypeJavaHelpers" instanceClassName="org.eclipse.jem.java.JavaHelpers">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This interface is a common interface between JavaClass and JavaDataType plus some common helper methods."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="JTypeList" instanceClassName="java.util.List">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="java.util.List type"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="JavaEvent" abstract="true" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
</ecore:EPackage>