<?xml version="1.0" encoding="UTF-8"?>
<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="component"
    nsURI="http://www.nokia.com/sdt/emf/component" nsPrefix="component">
  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
    <details key="documentation" value="&#xD;&#xA;Type mappings are used to store mappings along with a type.  Added post 1.2&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;Member mappings are used to map a property to a member of a resource.&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="AbstractPropertyType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A base schema type for further property type declarations. Not used directly in components.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="abstractPropertyType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The category grouping to be used in the property sheet. &#xD;&#xA;&#x9;&#x9;&#x9; If this value matches the key of a known group then the localized name is looked up within the Symbian component provider. Otherwise it is treated like a&#xD;&#xA;&#x9;&#x9;&#x9; potentially localized string, i.e. if it is %-prefixed a string is looked up in the properties file.&#xD;&#xA;&#x9;&#x9;&#x9; The special value of &quot;hidden&quot; will cause the property to be filtered from the property sheet.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="category"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionKey" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A property key to descriptive text for the property to be displayed in the status bar&#xD;&#xA;&#x9;&#x9;&#x9;when the property is selected in the property sheet.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="descriptionKey"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The property name to be display in the user interface. Can contain spaces and other characters.&#xD;&#xA;&#x9;&#x9;&#x9;This value should be localized.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="displayName"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="editorClass" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The fully qualified name of a class implementing com.nokia.sdt.component.property.IPropertyEditorFactory.&#xD;&#xA;&#x9;&#x9;&#x9;This allows Java code to provide a label provider, cell editor, and validator for the property.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="editorClass"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="helpKey" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A key to more detailed help for the property.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="helpKey"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The internal name for the property. It must be unique within the component and its base&#xD;&#xA;&#x9;&#x9;&#x9;components. Since it may be used as an identifier in scripts it should be a legal JavaScript identifier.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If true the property will be read-only in the property sheet.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="readOnly"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resettable" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If false the reset button will be disabled, inhibiting the user from reverting to the default value&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="resettable"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ArrayPropertyType" eSuperTypes="#//AbstractPropertyType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A concrete property type that is a dynamic array of property values. All values&#xD;&#xA;&#x9;&#x9;&#x9;are of the same type, which can be either a simple or compound property type.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="arrayPropertyType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The element type. It must be either a propertyDataType value, such as &quot;integer&quot; &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;or &quot;localizedString&quot;, or the fully qualified name of a compound property type.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="type"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AttributesType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="attributes_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
        upperBound="-1" eType="#//AttributeType" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="attribute"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AttributeType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="attribute_._type"/>
      <details key="kind" value="simple"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="name" value=":0"/>
        <details key="kind" value="simple"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="key"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ChoiceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="choice_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="twoWayMappingGroup" unique="false"
        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
        volatile="true" transient="true" derived="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="twoWayMapping:group"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="twoWayMapping" upperBound="-1"
        eType="#//TwoWayMappingType" changeable="false" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="twoWayMapping"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="twoWayMapping:group"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResource" upperBound="-1"
        eType="#//MapResourceType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an instance to a RESOURCE.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResource"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="select" upperBound="-1"
        eType="#//SelectType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element encapsulates choice elements which allow conditional&#xD;&#xA;&#x9;&#x9;source mapping.  One choice must match or an error results (you can&#xD;&#xA;&#x9;&#x9;use an empty choice to match the default case if necessary).  Only&#xD;&#xA;&#x9;&#x9;the first matching choice is considered.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9; for the select statement.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="select"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The value to match.  If unspecified, the choice always matches.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="value"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CodeType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="code_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Class in plugin.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="class"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="plugin" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Plugin id&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="plugin"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentDefinitionType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="componentDefinition_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="compoundPropertyDeclaration"
        upperBound="-1" eType="#//CompoundPropertyDeclarationType" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Declares a compound type that may be referenced from one or more&#xD;&#xA;&#x9;&#x9;&#x9;compound property declarations in this or other component documents. All compound property declarations are in a global &#xD;&#xA;&#x9;&#x9;&#x9;namespace and must be declared as global elements.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="compoundPropertyDeclaration"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="enumPropertyDeclaration"
        upperBound="-1" eType="#//EnumPropertyDeclarationType" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Declares an enumerated type that may be referenced from one or more&#xD;&#xA;&#x9;&#x9;&#x9;enumerated property declarations in this or other component documents. All enum property declarations are in a global &#xD;&#xA;&#x9;&#x9;&#x9;namespace and must be declared as global elements.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="enumPropertyDeclaration"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="component" eType="#//ComponentType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;        This is the container element for all the information about a single component.&#xD;&#xA;        "/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="component"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentReferencePropertyType" eSuperTypes="#//AbstractPropertyType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="A concrete property type that maintains a reference to a component&#xD;&#xA;&#x9;&#x9;&#x9;instance in the same model. The reference is kept by name, and is maintained across renames of the target&#xD;&#xA;&#x9;&#x9;&#x9;instance. It is cleared automatically if the target instance is removed.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="componentReferencePropertyType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="constraint" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If specified, this must be the fully qualified name of a component type. Values&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;are then constrained to be instances of this type, and the property sheet user interface displays a list of eligible&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;instances.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="constraint"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationKeys" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="An optional comma-delimited string containing a list of keys. When&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;present these keys are used to add &quot;create new xxx&quot; items to the dropdown menu for the property, in addition to&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;the &quot;None&quot; and existing instances populated into the menu. A component using this feature must also provide&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;an ISetValueCommandExtender implementation to handle the creation of these items.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Each key is used for two purposes:&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;- As a resource key for the dropdown menu item. The resource string should be the full command, e.g. &quot;Create new Foo&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;- When selected, the key is provided as a parameter to a com.nokia.sdt.component.NewComponentReferenceParameter instance. &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;This instance is then available from the SetValueCommand passed to ISetValueCommandExtender.getExtendedCommand. &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The implementation should retrieve the key, and return a Command object that will create the appropriate new instance &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;and set the target value to the new instance.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="creationKeys"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="promoteReferenceProperties"
        unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If specified, the properties of the instance referenced by this property are promoted&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;into this property source, excluding the 'name' property and other properties that already exist in this component.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;This property and the referenced component instance's properties will be at the same level.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="promoteReferenceProperties"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="scope" unique="false" lowerBound="1"
        eType="#//ReferenceScopeType" defaultValueLiteral="model" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Enumeration defining the scope for permissable values.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="scope"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="component_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="documentation" eType="#//DocumentationType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The optional documentation element provides brief description information about the component and a link to more detailed documentation&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="documentation"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="symbian" eType="#//SymbianType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The optional Symbian element provides SDK compatibility information and information about the related &#xD;&#xA;&#x9;C++ classes and resource structures. When this element is omitted the component will be considered incompatible&#xD;&#xA;&#x9;with all Symbian SDKs.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="symbian"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="designerImages" eType="#//DesignerImagesType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This element is specifies images for use by the UI designer. Only those images that apply need to be defined, e.g.&#xD;&#xA;&#x9;&#x9;if a component never appears in the UI design wizard or palette then it doesn't need those images.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="designerImages"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" eType="#//AttributesType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;Attribute elements can hold any static character data that is common to all instances of a component. Attributes are inherited from their base components.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="attributes"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" eType="#//PropertiesType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The list of properties defined for this component. Components also inherit the properties of their base&#xD;&#xA;&#x9;&#x9;components, and can have properties added dynamically, see extensionProperties.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="properties"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="extensionProperties" upperBound="-1"
        eType="#//ExtensionPropertiesType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Extension properties may be dynamically added, based on the state of an instance of this&#xD;&#xA;&#x9;&#x9;component, its container, or other objects. There may be more than one set of extension properties defined in a component.&#xD;&#xA;&#x9;&#x9;See the com.nokia.sdt.datamodel.adapter.IPropertyExtenders interface.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="extensionProperties"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="propertyOverrides" eType="#//PropertyOverridesType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A list of property overrides defined for this component. Components also&#xD;&#xA;&#x9;&#x9;inherit the property overrides of their base components, with changes applied by the most derived component taking&#xD;&#xA;&#x9;&#x9;precedence. &#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;Property overrides allow certain characteristics of a property to be modified, such as changing a modifiable property&#xD;&#xA;&#x9;&#x9;to read-only.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="propertyOverrides"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="events" eType="#//EventsType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The list of events defined for this component. Components also inherit the events of&#xD;&#xA;&#x9;&#x9;&#x9;their base components. Events are named notifications or hooks to which code can be attached. The data here is&#xD;&#xA;&#x9;&#x9;&#x9;used to drive the user interface. The details of source code generation are part of the source code generation templates.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;The set of available events, and default event, may be overriden via code or script. See the &#xD;&#xA;&#x9;&#x9;&#x9;com.nokia.sdt.datamodel.adapter.IComponentEventInfo interface for more information.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="events"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceGen" eType="#//SourceGenType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This section controls C/C++ source generation (with the potential to support &#xD;&#xA;&#x9;&#x9;other one-way languages).  In a sourceGen element, all the elements in linear &#xD;&#xA;&#x9;&#x9;order comprise the component's contributions.  &#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;Conditional sourcegen is implemented by using the &quot;form&quot; attribute on &#xD;&#xA;&#x9;&#x9;templates or templateGroups, or explicitly checking the regex &quot;form&quot; in inline code.  &#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;Another form of conditional sourcegen is event handling code.  The &quot;ifEvents&quot; attribute completely filters out defineLocation/template elements if a given event is not bound to an instance.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="sourceGen"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMapping" eType="#//SourceMappingType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;The sourceMapping element defines a particular style of source generation&#xD;&#xA;which consists of automatic generation of source by structurally&#xD;&#xA;mapping a component instance to a source definition.  &#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="sourceMapping"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="implementations" eType="#//ImplementationsType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Implementation elements declare code or script implementations of interfaces by name.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="implementations"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Specify true to define a component intended to be used as a basis for deriving other components.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Abstract components are filtered out of the component palette.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="abstract"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseComponent" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The fully qualifed name of the base component. The version of the base component&#xD;&#xA;&#x9;&#x9;&#x9;cannot be specified, it will be whichever is selected via SDK matching.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="baseComponent"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Specifies the grouping for the editor's component palette. If this string matches the key&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;of a known group then the localized name is looked up within the Symbian component provider. Otherwise it is treated like a&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;potentially localized string, i.e. if it is %-prefixed a string is looked up in the properties file.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="category"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="friendlyName" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A short name displayed in the user interface. These values should be localized.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="friendlyName"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceNameRoot" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The root part of the name used in assigned unique names to component instances. For example,&#xD;&#xA;&#x9;&#x9;&#x9;if the root is &quot;label&quot; then names will be assigned in sequence &quot;label1&quot;, &quot;label2&quot;, and so forth. These values should not be localized.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="instanceNameRoot"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A globally unique name for a component. By convention these use dotted names, such as&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;com.example.MyComponent. Different versions of a component, in different files, can share the same qualified name. These values&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;should not be localized.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="qualifiedName"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Identifies the version of the component specified by this document. Uses OSGI style version strings, composed&#xD;&#xA;&#x9;&#x9;&#x9;of up to 3 integers and a text qualifier, of the form &amp;lt;major version&amp;gt;.&amp;lt;minor version&amp;gt;.&amp;lt;micro version&amp;gt;.&amp;lt;qualifier&amp;gt;.&#xD;&#xA;&#x9;&#x9;&#x9;See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="version"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CompoundPropertyDeclarationType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="compoundPropertyDeclaration_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractPropertyGroup"
        unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Any property type may be used here, i.e. simple, compound, array, reference.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="abstractProperty:group"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="abstractProperty" upperBound="-1"
        eType="#//AbstractPropertyType" changeable="false" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Any property type may be used here, i.e. simple, compound, array, reference.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="abstractProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="abstractProperty:group"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceTypeMapping" eType="#//SourceTypeMappingType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;This element provides source mapping for the type, for use by&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;map*FromType elements.  Added post 1.2.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="sourceTypeMapping"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="converterClass" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If specified, this must be the fully qualified name of an implementation of&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;com.nokia.sdt.component.property.ICompoundPropertyValueConverter. It is used to convert back and forth between&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;the editable value and the compound value. The editable value is a single value, display as the parent value in the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;property sheet and used with cell editors.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="converterClass"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="editableType" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String" defaultValueLiteral=""
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The property type of the editable value. In addition to editing each&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;child value, the user may be able to edit the property as a whole. For example, an RGB color value may be&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;editable as a string. This value can be a propertyDataType value such as &quot;integer&quot; or &quot;string&quot;, or can be&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;the name of an enumPropertyDeclaration.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="editableType"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="editorClass" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The fully qualified name of a class implementing &#xD;&#xA;&#x9;&#x9;&#x9;com.nokia.sdt.component.property.IPropertyEditorFactory.&#xD;&#xA;&#x9;&#x9;&#x9;This allows Java code to provide a label provider, cell editor, and validator for the property.&#xD;&#xA;&#x9;&#x9;&#x9;Specify a factory class here provides a default for all compound properties of this type. The factory&#xD;&#xA;&#x9;&#x9;&#x9;may be overriden by a compound property declaration&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="editorClass"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A globally unique name for the property. By convention this is a dotted name, e.g.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;com.example.MyPropertyType. This identifier is used in compound property declarations.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="qualifiedName"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CompoundPropertyType" eSuperTypes="#//AbstractPropertyType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Concrete type used for structured properties.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="compoundPropertyType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="An optional default value for the property. The compoundPropertyDeclaration must&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;have a converterType specified for this default value to be used.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="default"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The fully qualified name of the compound property type declaration. It can be&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;any type accessible from the current or any other component definitions. See compoundPropertyDeclaration for&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;further information.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="type"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ConditionalSourceGen" abstract="true">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="ConditionalSourceGen"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="forms" unique="false" eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Added post 1.1 to inline.&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#x9;A list of tokens used to select a particular kind of source for a parent.&#xD;&#xA;&#x9;&#x9;&#x9;The namespace is determined implicitly by what a parent requests.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;For instance, a parent may have special sourcegen, and pass&#xD;&#xA;&#x9;&#x9;&#x9;the form &quot;SpecialCase&quot; to its children.  Elements specifying&#xD;&#xA;&#x9;&#x9;&#x9;form=&quot;SpecialCase&quot; will be selected.  Other parents will not see&#xD;&#xA;&#x9;&#x9;&#x9;such elements if they do not specify that form.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;If the form does not match, the element is not invoked.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="forms"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ifEvents" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Added post 1.1 to inline.&#xD;&#xA;&#x9;&#x9;&#x9;If defined, a list of events, any of which must be bound for the&#xD;&#xA;&#x9;&#x9;&#x9;element to be invoked.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="ifEvents"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ifExpr" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;&#x9;If defined, a Javascript expression which must evaluate to&#xD;&#xA;&#x9;&#x9;&#x9;true (or non-zero) for the element to be invoked.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="ifExpr"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ConditionalSourceGenString" abstract="true">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for sourcegen elements which may be conditionally skipped&#xD;&#xA;&#x9;&#x9;(and which contain text).&#xD;&#xA;&#x9;&#x9;Such skipping applies to the save-time behavior and not&#xD;&#xA;&#x9;&#x9;the load-time or validation-time behavior.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="ConditionalSourceGenString"/>
      <details key="kind" value="simple"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="name" value=":0"/>
        <details key="kind" value="simple"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="forms" unique="false" eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Added post 1.1 to inline.&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#x9;A list of tokens used to select a particular kind of source for a parent.&#xD;&#xA;&#x9;&#x9;&#x9;The namespace is determined implicitly by what a parent requests.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;For instance, a parent may have special sourcegen, and pass&#xD;&#xA;&#x9;&#x9;&#x9;the form &quot;SpecialCase&quot; to its children.  Elements specifying&#xD;&#xA;&#x9;&#x9;&#x9;form=&quot;SpecialCase&quot; will be selected.  Other parents will not see&#xD;&#xA;&#x9;&#x9;&#x9;such elements if they do not specify that form.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;If the form does not match, the element is not invoked.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="forms"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ifEvents" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Added post 1.1 to inline.&#xD;&#xA;&#x9;&#x9;&#x9;If defined, a list of events, any of which must be bound for the&#xD;&#xA;&#x9;&#x9;&#x9;element to be invoked.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="ifEvents"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ifExpr" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;&#x9;If defined, a Javascript expression which must evaluate to&#xD;&#xA;&#x9;&#x9;&#x9;true (or non-zero) for the element to be invoked.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="ifExpr"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DefineLocationType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="defineLocation_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="template" upperBound="-1"
        eType="#//TemplateType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines a contribution.  The text element is template-expanded &#xD;&#xA;&#x9;&#x9;with ${ ... } expression escapes and may contain Javascript in &amp;lt;% ... %&amp;gt; sections.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="template"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="inline" upperBound="-1"
        eType="#//InlineType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Provide Javascript in-line with templates and other sourceGen elements.&#xD;&#xA;&#x9;&#x9;Be sure to supply a &quot;forms&quot; attribute, otherwise the code may execute multiple times&#xD;&#xA;&#x9;&#x9;during the source generation contribution-gathering phase.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="inline"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="script" upperBound="-1"
        eType="#//ScriptType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Define a reference to an interface implemented in Javascript.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="script"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expandMacro" upperBound="-1"
        eType="#//ExpandMacroType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;Expands a given macro into the sourceGen of the caller.  &#xD;&#xA;&#x9;&#x9;This has the same effect as inserting the same templates and inlines &#xD;&#xA;&#x9;&#x9;from the macro's definition at the point of call.  &#xD;&#xA;&#x9;&#x9;Variable references from those templates and inlines&#xD;&#xA;&#x9;&#x9;are substituted with the values provided in attributes &#xD;&#xA;&#x9;&#x9;(e.g. variableName=&quot;value&quot;) or expandArgument child elements.  &#xD;&#xA;&#x9;&#x9;The latter may be preferred for cases where code is substituted,&#xD;&#xA;&#x9;&#x9;so the formatting may be retained.&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;As a special case, variable references may have modifiers to&#xD;&#xA;&#x9;&#x9;modify the formatting of a variable when it is expanded.  &#xD;&#xA;&#x9;&#x9;Modifiers are appended&#xD;&#xA;&#x9;&#x9;to the variable name as in: $(varName::modifier).  &#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Currently supported modifiers are all for tweaking canonical&#xD;&#xA;&#x9;&#x9;function argument lists, which match the format of &#xD;&#xA;&#x9;&#x9;declaration, with spaces, argument names, default values, etc:&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;ul xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-declaration-args: identity&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-definition-args: removes default argument values&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-location-args: removes argument names, default arguments, and spaces&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&lt;/ul>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="expandMacro"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseLocation" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If defined, the location id this location lives inside.  (E.g. a class inside a file,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;an enum declaration inside a class, etc.)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="baseLocation"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dir" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;For a top-level location, where baseLocation is null, this is a&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;template-expanded reference to the project-relative directory to&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;use.  Predefined variables ${src}, ${inc}, ${resource}, ${build}&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;are provided.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="dir"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="domain" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The source domain which controls how locations are interpreted and instantiated.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Only &quot;cpp&quot; is supported currently.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="domain"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="file" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;For a top-level location, where baseLocation is null, this is a&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;template-expanded filename relative to the directory specified by &quot;dir&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="file"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="filter" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String" defaultValueLiteral="default"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Defines a filter on contributions added to the location.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Available filters:&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;* unique-includes (can be applied anywhere, but scans files)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;* unique-prototypes (can be applied in &quot;class()&quot; or children, but scans the class)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;* unique-bases (can be applied to &quot;bases()&quot; or children, but scans the base class list)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="filter"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The location identifier.  This must be unique in a component.  A derived component&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;may redefine a location.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ifEvents" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If defined, a list of events, any of which must be bound for the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;location to be declared.  Otherwise, its id is not available and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;the location is undefined.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="ifEvents"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isEventHandler" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Note: a string for macro use only; must resolve to &quot;true&quot; or &quot;false&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;When &quot;ifEvents&quot; is non-empty, this flag tells the designer which particular&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;function is the user-editable event handler.  So this usually is applied&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;to a function() location.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="isEventHandler"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;This describes the location relative to its base (use &quot;&quot; for a&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;top-level file location).  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;A location segment in the cpp domain is a string&#xD;&#xA;representing a node in a C/C++ parse tree.  Each takes the syntax “&amp;lt;name&amp;gt;&#xD;&#xA;‘(‘ &amp;lt;arguments…&amp;gt; ‘)’�?.  Certain nodes may only appear within certain&#xD;&#xA;others.  This list defines top-level nodes:&#xD;&#xA;&#xD;&#xA;class(&amp;lt;name&amp;gt;): &#xD;&#xA;reference the class declaration for the class ‘name’, which may include namespaces (e.g.&#xD;&#xA;“class(MyClass)�? or “class(${className})�?)&#xD;&#xA;&#xD;&#xA;function(&amp;lt;name&amp;gt;(&amp;lt;arguments…)):&#xD;&#xA;reference a function with the given signature.  ‘name’ may include namespaces&#xD;&#xA;or represent a destructor.  ‘arguments’ is a comma-separated list of types. &#xD;&#xA;This list of arguments is currently not parsed and only the number of&#xD;&#xA;arguments matters.  The arguments list may end in ellipsis (“…�?) to indicate&#xD;&#xA;that any zero or more arguments are matched.  Again, the &amp;lt;template&amp;gt;&#xD;&#xA;inside a &amp;lt;defineLocation&amp;gt; really defines the function.  (E.g.&#xD;&#xA;“function(main(int,char**))�? or “function(${className}::method(void*)�?.)&#xD;&#xA;&#xD;&#xA;region(&amp;lt;name&amp;gt;): &#xD;&#xA;a region defines a commented block of text with no other syntactical clues.  The&#xD;&#xA;block comments and the name are used to identify the block.  Thus, names should&#xD;&#xA;be unique across a component.  (E.g. “region(Generated Includes)�?.)&#xD;&#xA;&#xD;&#xA;enum(&amp;lt;name&amp;gt;): &#xD;&#xA;a enum declaration with the given name.  Name must be non-empty (locations are&#xD;&#xA;used to look up source, so anonymous enums cannot be unambiguously&#xD;&#xA;identified).  (E.g. “enum(T${className}Ids)�?.)&#xD;&#xA;&#xD;&#xA;namespace(&amp;lt;name&amp;gt;):&#xD;&#xA;a namespace declaration with the given name, which may contain colons.  (E.g.&#xD;&#xA;“namespace(std::tr1)�?)&#xD;&#xA;&#xD;&#xA;to-file(): &#xD;&#xA;resolve to the current file of a location, i.e. get back to the root location. &#xD;&#xA;&#xD;&#xA;Inside a class(), namespace() is not allowed, and this&#xD;&#xA;additional segment is allowed:&#xD;&#xA;&#xD;&#xA;bases(): &#xD;&#xA;references the base-class-list within a class declaration.  If the class’ defining text&#xD;&#xA;already includes a base, then the defining text for the bases() location may be&#xD;&#xA;omitted.  If a class’ defining text does not include a base, the bases()&#xD;&#xA;location must include the leading colon in its defining text.  Otherwise,&#xD;&#xA;contributions are individual class references with leading commas.&#xD;&#xA;&#xD;&#xA;In a function(), only class(), region(), enum(), and to-file() are allowed.&#xD;&#xA;&#xD;&#xA;In an enum(), bases() or region(), only region() and to-file() are allowed.&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="location"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="owned" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Note: a string for macro use only; must resolve to &quot;true&quot; or &quot;false&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, the location is marked generated in source and will be&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;regenerated from scratch on every save.  Otherwise, the location&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;is generated only when missing.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="owned"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="realize" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String" defaultValueLiteral="false"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Added post 1.1.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Note: a string for macro use only; must resolve to &quot;true&quot; or &quot;false&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, a template for this location is automatically added when this location is defined.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Otherwise, the location is a placeholder and is not &quot;realized&quot; in actual source unless a template references it.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="realize"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DefineMacroType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="defineMacro_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="importArguments" upperBound="-1"
        eType="#//ImportArgumentsType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.  &#xD;&#xA;&#x9;&#x9;This element specifies that a list of arguments (name, type, defaults,&#xD;&#xA;&#x9;&#x9;optional flags) will be imported from another macro. &#xD;&#xA;&#x9;&#x9;If this element is omitted, then all the arguments from the macro&#xD;&#xA;&#x9;&#x9;are imported.  &#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="importArguments"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="macroArgument" upperBound="-1"
        eType="#//MacroArgumentType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;Defines an argument for use with the macro.&#xD;&#xA;&#x9;&#x9;The default value may be specified in the 'default' attribute or in the text of the element.&#xD;&#xA;&#x9;&#x9;The text supercedes the attribute.  &#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="macroArgument"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:2"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="template" upperBound="-1"
        eType="#//TemplateType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines a contribution.  The text element is template-expanded &#xD;&#xA;&#x9;&#x9;with ${ ... } expression escapes and may contain Javascript in &amp;lt;% ... %&amp;gt; sections.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="template"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:2"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="inline" upperBound="-1"
        eType="#//InlineType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Provide Javascript in-line with templates and other sourceGen elements.&#xD;&#xA;&#x9;&#x9;Be sure to supply a &quot;forms&quot; attribute, otherwise the code may execute multiple times&#xD;&#xA;&#x9;&#x9;during the source generation contribution-gathering phase.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="inline"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:2"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defineLocation" upperBound="-1"
        eType="#//DefineLocationType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element defines a location in source, such as a function in the main &#xD;&#xA;&#x9;&#x9;file or a region of text in a class declaration.  &#xD;&#xA;&#x9;&#x9;This is a slight misnomer as this element does not by its presence realize&#xD;&#xA;&#x9;&#x9;the location.  Only when a contribution references&#xD;&#xA;&#x9;&#x9;location id (or post 1.1: when realize=&quot;true&quot; is used)&#xD;&#xA;&#x9;&#x9;will the location be added to source.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="defineLocation"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:2"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expandMacro" upperBound="-1"
        eType="#//ExpandMacroType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;Expands a given macro into the sourceGen of the caller.  &#xD;&#xA;&#x9;&#x9;This has the same effect as inserting the same templates and inlines &#xD;&#xA;&#x9;&#x9;from the macro's definition at the point of call.  &#xD;&#xA;&#x9;&#x9;Variable references from those templates and inlines&#xD;&#xA;&#x9;&#x9;are substituted with the values provided in attributes &#xD;&#xA;&#x9;&#x9;(e.g. variableName=&quot;value&quot;) or expandArgument child elements.  &#xD;&#xA;&#x9;&#x9;The latter may be preferred for cases where code is substituted,&#xD;&#xA;&#x9;&#x9;so the formatting may be retained.&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;As a special case, variable references may have modifiers to&#xD;&#xA;&#x9;&#x9;modify the formatting of a variable when it is expanded.  &#xD;&#xA;&#x9;&#x9;Modifiers are appended&#xD;&#xA;&#x9;&#x9;to the variable name as in: $(varName::modifier).  &#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Currently supported modifiers are all for tweaking canonical&#xD;&#xA;&#x9;&#x9;function argument lists, which match the format of &#xD;&#xA;&#x9;&#x9;declaration, with spaces, argument names, default values, etc:&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;ul xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-declaration-args: identity&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-definition-args: removes default argument values&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-location-args: removes argument names, default arguments, and spaces&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&lt;/ul>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="expandMacro"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:2"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="help" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Help/usage text for a documentation generating tool.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="help"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Unique id for the macro within a component.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Ids may be shared for different&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;forms.  Derived components inherit macros automatically&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;but may redefine a macro with the same id.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DesignerImagesType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="designerImages_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconFile" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="largeIconFile"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutImageFile" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="layoutImageFile"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconFile" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A relative path to an Eclipse-supported image type, such as PNG, GIF, or BMP. This image is displayed in the outline.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="smallIconFile"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="thumbnailFile" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A relative path to an Eclipse-supported image type, such as PNG, GIF, or BMP. This image is displayed in UI designer's graphical&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;layout area if the component does not provide rendering code.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="thumbnailFile"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DocumentationType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="documentation_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="information" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Brief description of the component, shown in a tooltip. This value should be localized.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="information"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="helpTopic" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A link to help information for this component.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="helpTopic"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="wizardDescription" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Text displayed in the UI design wizard. Applies only to containers and top-level content. This&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;value should be localized.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="wizardDescription"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DocumentRoot">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value=""/>
      <details key="kind" value="mixed"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="elementWildcard"/>
        <details key="name" value=":mixed"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1"
        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
        transient="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="xmlns:prefix"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1"
        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
        transient="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="xsi:schemaLocation"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="abstractProperty" upperBound="-2"
        eType="#//AbstractPropertyType" changeable="false" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="abstractProperty"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="arrayProperty" upperBound="-2"
        eType="#//ArrayPropertyType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="arrayProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="abstractProperty"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" upperBound="-2"
        eType="#//AttributeType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="attribute"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-2"
        eType="#//AttributesType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;Attribute elements can hold any static character data that is common to all instances of a component. Attributes are inherited from their base components.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="attributes"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="choice" upperBound="-2"
        eType="#//ChoiceType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines a decision in the select element.  If the &quot;value&quot; attribute&#xD;&#xA;&#x9;&#x9;matches the value obtained in the select element, the choice is matched&#xD;&#xA;&#x9;&#x9;and its mapping elements instantiated.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="choice"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="code" upperBound="-2" eType="#//CodeType"
        volatile="true" transient="true" derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Define a reference to an interface implemented in Java.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="code"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="component" upperBound="-2"
        eType="#//ComponentType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;        This is the container element for all the information about a single component.&#xD;&#xA;        "/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="component"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="componentDefinition" upperBound="-2"
        eType="#//ComponentDefinitionType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="componentDefinition must be the root element of a component definition document.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;It includes zero or more compound property declarations, zero or more enum declarations and zero or one&#xD;&#xA;&#x9;&#x9;&#x9;component declarations.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;Displayable strings can either be included literally within the XML or referenced in the &#xD;&#xA;&#x9;&#x9;&#x9;component.properties file by prefixing the string with %. For example, &quot;%foo&quot; references the &#xD;&#xA;&#x9;&#x9;&#x9;value of the &quot;foo&quot; property in component.properties. To obtain the string &quot;%foo&quot; &#xD;&#xA;&#x9;&#x9;&#x9;use a double %, e.g. &quot;%%foo&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="componentDefinition"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="componentReferenceProperty"
        upperBound="-2" eType="#//ComponentReferencePropertyType" volatile="true"
        transient="true" derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="componentReferenceProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="abstractProperty"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="compoundProperty" upperBound="-2"
        eType="#//CompoundPropertyType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="compoundProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="abstractProperty"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="compoundPropertyDeclaration"
        upperBound="-2" eType="#//CompoundPropertyDeclarationType" volatile="true"
        transient="true" derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Declares a compound type that may be referenced from one or more&#xD;&#xA;&#x9;&#x9;&#x9;compound property declarations in this or other component documents. All compound property declarations are in a global &#xD;&#xA;&#x9;&#x9;&#x9;namespace and must be declared as global elements.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="compoundPropertyDeclaration"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defineLocation" upperBound="-2"
        eType="#//DefineLocationType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element defines a location in source, such as a function in the main &#xD;&#xA;&#x9;&#x9;file or a region of text in a class declaration.  &#xD;&#xA;&#x9;&#x9;This is a slight misnomer as this element does not by its presence realize&#xD;&#xA;&#x9;&#x9;the location.  Only when a contribution references&#xD;&#xA;&#x9;&#x9;location id (or post 1.1: when realize=&quot;true&quot; is used)&#xD;&#xA;&#x9;&#x9;will the location be added to source.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="defineLocation"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defineMacro" upperBound="-2"
        eType="#//DefineMacroType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.  &#xD;&#xA;&#x9;&#x9;This element defines a macro consisting of a set of templates &#xD;&#xA;&#x9;&#x9;and inlines which may be variable-substituted.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;If a given defineMacro imports multiple arguments&#xD;&#xA;&#x9;&#x9;of the same name, then they must be explicitly redefined,&#xD;&#xA;&#x9;&#x9;to resolve any ambiguities about the default value.  &#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="defineMacro"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="designerImages" upperBound="-2"
        eType="#//DesignerImagesType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This element is specifies images for use by the UI designer. Only those images that apply need to be defined, e.g.&#xD;&#xA;&#x9;&#x9;if a component never appears in the UI design wizard or palette then it doesn't need those images.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="designerImages"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="documentation" upperBound="-2"
        eType="#//DocumentationType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The optional documentation element provides brief description information about the component and a link to more detailed documentation&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="documentation"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="enumProperty" upperBound="-2"
        eType="#//EnumPropertyType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="enumProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="abstractProperty"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="enumPropertyDeclaration"
        upperBound="-2" eType="#//EnumPropertyDeclarationType" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;Declares an enumerated type that may be referenced from one or more&#xD;&#xA;&#x9;&#x9;&#x9;enumerated property declarations in this or other component documents. All enum property declarations are in a global &#xD;&#xA;&#x9;&#x9;&#x9;namespace and must be declared as global elements.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="enumPropertyDeclaration"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="event" upperBound="-2"
        eType="#//EventType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The definition of a single event.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="event"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-2"
        eType="#//EventsType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The list of events defined for this component. Components also inherit the events of&#xD;&#xA;&#x9;&#x9;&#x9;their base components. Events are named notifications or hooks to which code can be attached. The data here is&#xD;&#xA;&#x9;&#x9;&#x9;used to drive the user interface. The details of source code generation are part of the source code generation templates.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;The set of available events, and default event, may be overriden via code or script. See the &#xD;&#xA;&#x9;&#x9;&#x9;com.nokia.sdt.datamodel.adapter.IComponentEventInfo interface for more information.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="events"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expandArgument" upperBound="-2"
        eType="#//ExpandArgumentType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.  &#xD;&#xA;&#x9;&#x9;Provides multiline text content for an argument.&#xD;&#xA;&#x9;&#x9;This is semantically identical to setting an attribute of the same&#xD;&#xA;&#x9;&#x9;name=&quot;...&quot; value in the expandMacro element, with any standalone &#xD;&#xA;&#x9;&#x9;leading whitespace and standalone trailing whitespace removed&#xD;&#xA;&#x9;&#x9;(as with &amp;lt;template&amp;gt;).&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="expandArgument"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expandMacro" upperBound="-2"
        eType="#//ExpandMacroType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;Expands a given macro into the sourceGen of the caller.  &#xD;&#xA;&#x9;&#x9;This has the same effect as inserting the same templates and inlines &#xD;&#xA;&#x9;&#x9;from the macro's definition at the point of call.  &#xD;&#xA;&#x9;&#x9;Variable references from those templates and inlines&#xD;&#xA;&#x9;&#x9;are substituted with the values provided in attributes &#xD;&#xA;&#x9;&#x9;(e.g. variableName=&quot;value&quot;) or expandArgument child elements.  &#xD;&#xA;&#x9;&#x9;The latter may be preferred for cases where code is substituted,&#xD;&#xA;&#x9;&#x9;so the formatting may be retained.&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;As a special case, variable references may have modifiers to&#xD;&#xA;&#x9;&#x9;modify the formatting of a variable when it is expanded.  &#xD;&#xA;&#x9;&#x9;Modifiers are appended&#xD;&#xA;&#x9;&#x9;to the variable name as in: $(varName::modifier).  &#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Currently supported modifiers are all for tweaking canonical&#xD;&#xA;&#x9;&#x9;function argument lists, which match the format of &#xD;&#xA;&#x9;&#x9;declaration, with spaces, argument names, default values, etc:&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;ul xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-declaration-args: identity&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-definition-args: removes default argument values&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-location-args: removes argument names, default arguments, and spaces&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&lt;/ul>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="expandMacro"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="extensionProperties" upperBound="-2"
        eType="#//ExtensionPropertiesType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Extension properties may be dynamically added, based on the state of an instance of this&#xD;&#xA;&#x9;&#x9;component, its container, or other objects. There may be more than one set of extension properties defined in a component.&#xD;&#xA;&#x9;&#x9;See the com.nokia.sdt.datamodel.adapter.IPropertyExtenders interface.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="extensionProperties"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="implementation" upperBound="-2"
        eType="#//ImplementationType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="implementation"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="implementations" upperBound="-2"
        eType="#//ImplementationsType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Implementation elements declare code or script implementations of interfaces by name.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="implementations"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="importArguments" upperBound="-2"
        eType="#//ImportArgumentsType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.  &#xD;&#xA;&#x9;&#x9;This element specifies that a list of arguments (name, type, defaults,&#xD;&#xA;&#x9;&#x9;optional flags) will be imported from another macro. &#xD;&#xA;&#x9;&#x9;If this element is omitted, then all the arguments from the macro&#xD;&#xA;&#x9;&#x9;are imported.  &#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="importArguments"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="inline" upperBound="-2"
        eType="#//InlineType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Provide Javascript in-line with templates and other sourceGen elements.&#xD;&#xA;&#x9;&#x9;Be sure to supply a &quot;forms&quot; attribute, otherwise the code may execute multiple times&#xD;&#xA;&#x9;&#x9;during the source generation contribution-gathering phase.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="inline"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="macroArgument" upperBound="-2"
        eType="#//MacroArgumentType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;Defines an argument for use with the macro.&#xD;&#xA;&#x9;&#x9;The default value may be specified in the 'default' attribute or in the text of the element.&#xD;&#xA;&#x9;&#x9;The text supercedes the attribute.  &#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="macroArgument"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapArrayMember" upperBound="-2"
        eType="#//MapArrayMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property or child list to an array in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapArrayMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="twoWayMapping" upperBound="-2"
        eType="#//TwoWayMappingType" changeable="false" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="twoWayMapping"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapArrayType" upperBound="-2"
        eType="#//MapArrayTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property or child list to an array in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapArrayType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapBitmaskElement" upperBound="-2"
        eType="#//MapBitmaskElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a set of boolean properties to an expression in an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapBitmaskElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapBitmaskMember" upperBound="-2"
        eType="#//MapBitmaskMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a set of boolean properties to a bitmask expression in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapBitmaskMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapBitmaskType" upperBound="-2"
        eType="#//MapBitmaskTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a set of boolean properties to a bitmask expression in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapBitmaskType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapBitmaskValue" upperBound="-2"
        eType="#//MapBitmaskValueType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a set of properties to a subexpression of the bitmask expression.  If all the given&#xD;&#xA;&#x9;&#x9;properties are &quot;true&quot;, the given value is OR'ed into the target expression.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapBitmaskValue"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapElementFromType" upperBound="-2"
        eType="#//MapElementFromTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map RSS from the type declaration attached to the current element.&#xD;&#xA;&#x9;&#x9;You may need to use &amp;lt;mapProperty&amp;gt; to descend into a child of the current&#xD;&#xA;&#x9;&#x9;element for this to work.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapElementFromType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapEnum" upperBound="-2"
        eType="#//MapEnumType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines the mapping of one particular property value to one&#xD;&#xA;&#x9;&#x9;particular RSS value.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapEnum"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapEnumElement" upperBound="-2"
        eType="#//MapEnumElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an enumerator to an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapEnumElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapEnumMember" upperBound="-2"
        eType="#//MapEnumMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an enumerator to RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapEnumMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapEnumType" upperBound="-2"
        eType="#//MapEnumTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an enumerator to RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapEnumType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapFixedElement" upperBound="-2"
        eType="#//MapFixedElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a fixed value to an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapFixedElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapFixedMember" upperBound="-2"
        eType="#//MapFixedMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a fixed value to an RSS member.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapFixedMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapFixedType" upperBound="-2"
        eType="#//MapFixedTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a fixed value.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapFixedType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapIdentifierElement" upperBound="-2"
        eType="#//MapIdentifierElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple value to a literal (identifier) in an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapIdentifierElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapIdentifierMember" upperBound="-2"
        eType="#//MapIdentifierMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple property to a literal (identifier) in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapIdentifierMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapIdentifierType" upperBound="-2"
        eType="#//MapIdentifierTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple property to a literal (identifier) in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapIdentifierType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapInstanceElement" upperBound="-2"
        eType="#//MapInstanceElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an instance's resources to an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapInstanceElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapInstanceMember" upperBound="-2"
        eType="#//MapInstanceMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map resources for an instance.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapInstanceMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapInstanceType" upperBound="-2"
        eType="#//MapInstanceTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map resources for an instance.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapInstanceType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapIntoProperty" upperBound="-2"
        eType="#//MapIntoPropertyType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Delve into a property path without generating any resources.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapIntoProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapMemberFromType" upperBound="-2"
        eType="#//MapMemberFromTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map RSS from the type declaration attached to the given property.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapMemberFromType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapReferenceElement" upperBound="-2"
        eType="#//MapReferenceElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a reference property to an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapReferenceElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapReferenceMember" upperBound="-2"
        eType="#//MapReferenceMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a reference property to resources the instance generates.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapReferenceMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapReferenceType" upperBound="-2"
        eType="#//MapReferenceTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a reference property to resources the instance generates.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapReferenceType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResource" upperBound="-2"
        eType="#//MapResourceType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an instance to a RESOURCE.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResource"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResourceElement" upperBound="-2"
        eType="#//MapResourceElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a compound property or instance to resources in an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResourceElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResourceMember" upperBound="-2"
        eType="#//MapResourceMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property to a RESOURCE expression or statement.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResourceMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResourceType" upperBound="-2"
        eType="#//MapResourceTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property to a RESOURCE expression or statement.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResourceType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapSimpleElement" upperBound="-2"
        eType="#//MapSimpleElementType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple value to an array element.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapSimpleElement"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapSimpleMember" upperBound="-2"
        eType="#//MapSimpleMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple value to a member.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapSimpleMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapSimpleType" upperBound="-2"
        eType="#//MapSimpleTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple value.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapSimpleType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="twoWayMapping"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-2"
        eType="#//PropertiesType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The list of properties defined for this component. Components also inherit the properties of their base&#xD;&#xA;&#x9;&#x9;components, and can have properties added dynamically, see extensionProperties.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="properties"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="property" upperBound="-2"
        eType="#//SimplePropertyType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="property"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="affiliation" value="abstractProperty"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="propertyOverrides" upperBound="-2"
        eType="#//PropertyOverridesType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A list of property overrides defined for this component. Components also&#xD;&#xA;&#x9;&#x9;inherit the property overrides of their base components, with changes applied by the most derived component taking&#xD;&#xA;&#x9;&#x9;precedence. &#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;Property overrides allow certain characteristics of a property to be modified, such as changing a modifiable property&#xD;&#xA;&#x9;&#x9;to read-only.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="propertyOverrides"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="script" upperBound="-2"
        eType="#//ScriptType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Define a reference to an interface implemented in Javascript.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="script"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="select" upperBound="-2"
        eType="#//SelectType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element encapsulates choice elements which allow conditional&#xD;&#xA;&#x9;&#x9;source mapping.  One choice must match or an error results (you can&#xD;&#xA;&#x9;&#x9;use an empty choice to match the default case if necessary).  Only&#xD;&#xA;&#x9;&#x9;the first matching choice is considered.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9; for the select statement.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="select"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceGen" upperBound="-2"
        eType="#//SourceGenType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This section controls C/C++ source generation (with the potential to support &#xD;&#xA;&#x9;&#x9;other one-way languages).  In a sourceGen element, all the elements in linear &#xD;&#xA;&#x9;&#x9;order comprise the component's contributions.  &#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;Conditional sourcegen is implemented by using the &quot;form&quot; attribute on &#xD;&#xA;&#x9;&#x9;templates or templateGroups, or explicitly checking the regex &quot;form&quot; in inline code.  &#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;Another form of conditional sourcegen is event handling code.  The &quot;ifEvents&quot; attribute completely filters out defineLocation/template elements if a given event is not bound to an instance.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="sourceGen"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMapping" upperBound="-2"
        eType="#//SourceMappingType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;The sourceMapping element defines a particular style of source generation&#xD;&#xA;which consists of automatic generation of source by structurally&#xD;&#xA;mapping a component instance to a source definition.  &#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="sourceMapping"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceTypeMapping" upperBound="-2"
        eType="#//SourceTypeMappingType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;The sourceTypeMapping element mirrors sourceMapping but provides stored source&#xD;&#xA;mapping data for use by compound or enum types.  &#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="sourceTypeMapping"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="symbian" upperBound="-2"
        eType="#//SymbianType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The optional Symbian element provides SDK compatibility information and information about the related &#xD;&#xA;&#x9;C++ classes and resource structures. When this element is omitted the component will be considered incompatible&#xD;&#xA;&#x9;with all Symbian SDKs.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="symbian"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="template" upperBound="-2"
        eType="#//TemplateType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines a contribution.  The text element is template-expanded &#xD;&#xA;&#x9;&#x9;with ${ ... } expression escapes and may contain Javascript in &amp;lt;% ... %&amp;gt; sections.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="template"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="templateGroup" upperBound="-2"
        eType="#//TemplateGroupType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;A logical grouping of templates and locations.  Attributes&#xD;&#xA;&#x9;&#x9;present on the group are automatically applied to children.&#xD;&#xA;&#x9;&#x9;Groups may not be nested.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="templateGroup"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="useTemplate" upperBound="-2"
        eType="#//UseTemplateType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;In a derived component, selects a template from the base by id.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="useTemplate"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="useTemplateGroup" upperBound="-2"
        eType="#//UseTemplateGroupType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;In a derived component, selects a template group from the base by id.&#xD;&#xA;&#x9;&#x9;If no subelements are specified, all the named templates (those with ids)&#xD;&#xA;&#x9;&#x9;are inherited.  No templates without ids are inherited.&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;If subelements are specified, these describe the specific templates&#xD;&#xA;&#x9;&#x9;to inherit from the group.  The id &quot;*&quot; may be used to bring in all&#xD;&#xA;&#x9;&#x9;named templates.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="useTemplateGroup"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EnumElementType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="enumElement_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayValue" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//AnySimpleType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The displayable value, which should be localized.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="displayValue"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//AnySimpleType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The internal value, which is not localizable.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="value"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EnumPropertyDeclarationType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="enumPropertyDeclaration_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="enumElement" lowerBound="1"
        upperBound="-1" eType="#//EnumElementType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This sequence is the list of values comprising the enumerated type. Each&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;value consists of an internal string value and a displayable string value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="enumElement"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceTypeMapping" eType="#//SourceTypeMappingType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;This element provides source mapping for the type, for use by&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;map*FromType elements.  Added post 1.2&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="sourceTypeMapping"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A default internal value for the enumeration. It can be overriden in property declarations.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="defaultValue"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The globally unique name for this type. By convention this is a dotted name, e.g. com.example.MyEnumType.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;This value is used in enumPropertyDeclaration.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="qualifiedName"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EnumPropertyType" eSuperTypes="#//AbstractPropertyType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Concrete type used for enumerated value properties.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="enumPropertyType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The default enumerated value, in case it needs to be different from &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;the default declared in the enumeratedPropertyDeclaration.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="default"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extendWithEnum" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Optional extension of the simple values with the enums provided by an enimPropertyDeclaration.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If the value of the property matches any in an enumProperty's 'value' attribute, the 'displayValue' will be shown&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;as the current value in the property sheet.  Additionally, the editor for the value (if not overridden with&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;a custom editorClass) will be a combo that allows typing in the literal value or selecting one of the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;union of base and extended enums.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;> &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The extending enum may provide 'value' elements which are different from the base enum (even integers, say),&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if appropriate.  These values are exposed to script, source mapping, and source gen, so ensure that all&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;those clients are prepared to deal with the extra values.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="extendWithEnum"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The fully qualifed name of the enumerated property type. See&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;enumPropertyDeclaration.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="type"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EventsType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="events_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="event" upperBound="-1"
        eType="#//EventType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The definition of a single event.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="event"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultEventName" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If defined, the default event will be identified in a component instance's context&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;menu. In the case of inheritance the most derived definition of the default event is used.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="defaultEventName"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EventType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="event_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Categories are used for grouping events in the Events view. As with property categories,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;this can be a key to a category localized by the component provider, or it can be a pre-localized or literal string.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="category"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionKey" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A key for descriptive information about the event.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="descriptionKey"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This displayable name for the event. This value should be localized.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="displayName"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This is a grouping, separate from categories, used in event filtering. Events&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;may only make sense for specific containers. The interface com.nokia.sdt.datamodel.adapter.IComponentEventInfo is&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;used to filter applicable events from the complete set of declared events. When deriving from an existing base&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;component it is not generally necessary to implement this interface. Instead, just use the groups defined by&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;the base component in your own events. For example to make events visible in a CCoeControl container, The CCoeControlBase&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;component uses the filter group &quot;Control&quot;. &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="group"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="handlerNameTemplate" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A template which is expanded to the proposed default name for the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;event handler function. An example of such a template is &quot;Handle{title(name)}StateChangedL&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The {} marks template variables. A variable may contain a simple property value, but generally only the 'name' property&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;should be used. The pseudo-functions &quot;lower&quot;, &quot;upper&quot;, and &quot;title&quot; may be used to transform the property value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="handlerNameTemplate"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="helpKey" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A help topic for online help for the event.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="helpKey"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The internal name for the event. This does not need to be a dotted name, but it must&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;be unique within the component and its base components.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExpandArgumentType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="expandArgument_._type"/>
      <details key="kind" value="simple"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="name" value=":0"/>
        <details key="kind" value="simple"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="help" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Help/usage text for a documentation generating tool.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="help"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The variable to define (matching the id from macroArgument).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExpandMacroType" eSuperTypes="#//ConditionalSourceGen">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="expandMacro_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expandArgument" upperBound="-1"
        eType="#//ExpandArgumentType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.  &#xD;&#xA;&#x9;&#x9;Provides multiline text content for an argument.&#xD;&#xA;&#x9;&#x9;This is semantically identical to setting an attribute of the same&#xD;&#xA;&#x9;&#x9;name=&quot;...&quot; value in the expandMacro element, with any standalone &#xD;&#xA;&#x9;&#x9;leading whitespace and standalone trailing whitespace removed&#xD;&#xA;&#x9;&#x9;(as with &amp;lt;template&amp;gt;).&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="expandArgument"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dontPassArguments" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;This is primarily used when passArguments is not specified.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;It specifies which arguments not to pass to the invoked macro,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;which become undefined in the expansion of that macro.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;This is useful when this macro takes over the work of one or more&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;arguments from the invoked macro. &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="dontPassArguments"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="help" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Help/usage text for a documentation generating tool.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="help"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The macro to invoke (matching the id from defineMacro).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="passArguments" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;A list of arguments defined in the current calling macro to&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;pass unchanged to the called macro, excluding any arguments&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;that are not defined in the current call.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;This attribute is only valid in expandMacro called from&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;a defineMacro.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Passing arguments is different from adding attributes&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;argName=&quot;$(argName)&quot; because it avoids defining otherwise &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;undefined arguments.  (A missing optional argument is null,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;not the empty string.  The '::is-defined' modifier can be&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;used to check this.)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Elements in the list of strings are names of arguments, or&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;renames of the form targetArgumentName=hostArgumentName which&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;passes hostArgumentName from the hosting macro with the name&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;targetArgumentName (again, only if the argument is actually&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;defined in the call).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;If this argument is not specified, all the arguments in the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;invoked macro are passed (zero or more may have defaults which&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;are overridden in this macro). &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="passArguments"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="anyAttribute" unique="false"
        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Any attribute matching the variables used in the given named macro may appear here.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attributeWildcard"/>
        <details key="wildcards" value="##any"/>
        <details key="name" value=":8"/>
        <details key="processing" value="lax"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExtensionPropertiesType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="extensionProperties_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractPropertyGroup"
        unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="abstractProperty:group"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="abstractProperty" upperBound="-1"
        eType="#//AbstractPropertyType" changeable="false" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="abstractProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="abstractProperty:group"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The unique name of this extension property set. Used to select properties&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;to add at runtime.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ImplementationsType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="implementations_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="implementation" lowerBound="1"
        upperBound="-1" eType="#//ImplementationType" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="implementation"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ImplementationType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="implementation_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" lowerBound="1"
        upperBound="-1" eType="#//InterfaceType" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="interface"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="code" eType="#//CodeType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Define a reference to an interface implemented in Java.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="code"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="script" eType="#//ScriptType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Define a reference to an interface implemented in Javascript.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="script"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ImportArgumentsType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="importArguments_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="arguments" unique="false"
        lowerBound="1" eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The list of argument names to import.  This is mutually exclusive with 'exceptArguments'.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="arguments"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="exceptArguments" unique="false"
        lowerBound="1" eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The list of argument names NOT to import.  All the arguments are imported&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;except these.  This is mutually exclusive with 'arguments'.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="exceptArguments"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="help" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Help/usage text for a documentation generating tool.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="help"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="macroName" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The macro whose arguments to import.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="macroName"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InlineType" eSuperTypes="#//ConditionalSourceGenString">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="inline_._type"/>
      <details key="kind" value="simple"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Added post 1.1: the identifier for the inline section,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;which makes it inheritable.  Inline sections are inherited as templates,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;accessible with &quot;useTemplate&quot; of the same id.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;If unspecified, a default id is assigned.  Use a blank id to avoid inheriting.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="scope" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"
        defaultValueLiteral="function" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Tells where the inline code appears.  By default, it appears&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;in the primary function into which templates are generated, thus is&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;executed in line with them.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Specifying &quot;file&quot; or &quot;prototype&quot; means the content is intended to modify the &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Javascript prototype, thus it is placed at the top level of the file.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;${jsObject}.prototype may be used to access the prototype.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Note: include() and includeFrom() calls should be placed in the prototype scope,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;or their contents will not be visible to derived components.&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Added post 1.1: &quot;file&quot; is a synonym for &quot;prototype&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="scope"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InterfaceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="interface_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="ListOfStrings" instanceClassName="java.util.List">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="listOfStrings"/>
      <details key="itemType" value="http://www.eclipse.org/emf/2003/XMLType#string"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MacroArgumentType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="macroArgument_._type"/>
      <details key="kind" value="simple"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="name" value=":0"/>
        <details key="kind" value="simple"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The default value of the argument if unspecified.  Alternately, the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;text of this element may be supplied as the default, if formatting&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;or newlines are used.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="default"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="help" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Help/usage text for a documentation generating tool.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="help"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The name of the argument.  This must be a legal Javascript identifier&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;and unique within the macro.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="optional" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Tells whether the argument may be omitted from an expandMacro use.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;If true, and no default is provided, the variable's value is null.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="optional"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapArrayMemberType" eSuperTypes="#//MappingArrayType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapArrayMember_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapArrayTypeType" eSuperTypes="#//MappingArrayType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapArrayType_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapBitmaskElementType" eSuperTypes="#//MappingBitmaskType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapBitmaskElement_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapBitmaskMemberType" eSuperTypes="#//MappingBitmaskType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapBitmaskMember_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapBitmaskTypeType" eSuperTypes="#//MappingBitmaskType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapBitmaskType_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapBitmaskValueType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapBitmaskValue_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="properties" unique="false"
        lowerBound="1" eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;List of properties to consider.  May be property paths.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="properties"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Value to OR into the target expression.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="value"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapElementFromTypeType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapElementFromType_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;This attribute tells which of a set of type mappings to use&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;from the given type (as named in the id=&quot;...&quot; attributes on&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;the mapXXXType children of sourceTypeMapping).   &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapEnumElementType" eSuperTypes="#//MappingEnumType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapEnumElement_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapEnumMemberType" eSuperTypes="#//MappingEnumType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapEnumMember_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapEnumType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapEnum_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enumerator" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The RSS enumerator.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="enumerator"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The property value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="value"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapEnumTypeType" eSuperTypes="#//MappingEnumType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapEnumType_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapFixedElementType" eSuperTypes="#//MappingFixedType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapFixedElement_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapFixedMemberType" eSuperTypes="#//MappingFixedType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapFixedMember_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapFixedTypeType" eSuperTypes="#//MappingFixedType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapFixedType_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapIdentifierElementType" eSuperTypes="#//MappingIdentifierType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapIdentifierElement_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapIdentifierMemberType" eSuperTypes="#//MappingIdentifierType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapIdentifierMember_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapIdentifierTypeType" eSuperTypes="#//MappingIdentifierType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapIdentifierType_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapInstanceElementType" eSuperTypes="#//MappingInstanceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapInstanceElement_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapInstanceMemberType" eSuperTypes="#//MappingInstanceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapInstanceMember_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapInstanceTypeType" eSuperTypes="#//MappingInstanceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapInstanceType_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapIntoPropertyType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapIntoProperty_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="twoWayMappingGroup" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="twoWayMapping:group"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="twoWayMapping" lowerBound="1"
        eType="#//TwoWayMappingType" changeable="false" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="twoWayMapping"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="twoWayMapping:group"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapMemberFromTypeType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapMemberFromType_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;This attribute tells which of a set of type mappings to use&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;from the given type (as named in the id=&quot;...&quot; attributes on&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;the mapXXXType children of sourceTypeMapping).   &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingArrayType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping arrays from sequence properties or component instance children.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingArrayType"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="twoWayMappingGroup" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;This is restricted to mapXXXElement, mapElementFromType, or mapIntoProperty, but we can't represent this in XSD.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="twoWayMapping:group"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="twoWayMapping" eType="#//TwoWayMappingType"
        changeable="false" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;This is restricted to mapXXXElement, mapElementFromType, or mapIntoProperty, but we can't represent this in XSD.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="twoWayMapping"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="twoWayMapping:group"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="select" eType="#//SelectType"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element encapsulates choice elements which allow conditional&#xD;&#xA;&#x9;&#x9;source mapping.  One choice must match or an error results (you can&#xD;&#xA;&#x9;&#x9;use an empty choice to match the default case if necessary).  Only&#xD;&#xA;&#x9;&#x9;the first matching choice is considered.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9; for the select statement.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="select"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingBitmaskType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping sets of boolean properties to a single bitmask expression in RSS.&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;When mapping this element, a working set of the includedProperties is created.&#xD;&#xA;&#x9;&#x9;Each mapBitmaskValue element is considered in turn, and if all the properties&#xD;&#xA;&#x9;&#x9;it references are present in the working set and have the value &quot;true&quot;, &#xD;&#xA;&#x9;&#x9;the matching value is OR'ed into the target expression, and those properties removed from the working set.&#xD;&#xA;&#x9;&#x9;Once the working set is empty, the mapping is complete.  If all mapBitmaskValues are&#xD;&#xA;&#x9;&#x9;exhausted but the working set is non-empty, this is a component error.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingBitmaskType"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapBitmaskValue" upperBound="-1"
        eType="#//MapBitmaskValueType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a set of properties to a subexpression of the bitmask expression.  If all the given&#xD;&#xA;&#x9;&#x9;properties are &quot;true&quot;, the given value is OR'ed into the target expression.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapBitmaskValue"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="includedProperties" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The list of properties included in the set.  If undefined, all the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;sibling properties (within a component or compound property) are included.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Every included property must be referenced in a mapBitmaskValue element,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;or else the mapping is considered invalid, and an error reported.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="includedProperties"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingEnumType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping enumerator properties.&#xD;&#xA;&#x9;&#x9;If any mapEnum elements specified, they completely define the list of mappings &#xD;&#xA;&#x9;&#x9;of internal enumerator values  to external RSS values.  Otherwise, internal &#xD;&#xA;&#x9;&#x9;values are directly emitted as RSS values.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingEnumType"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapEnum" upperBound="-1"
        eType="#//MapEnumType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines the mapping of one particular property value to one&#xD;&#xA;&#x9;&#x9;particular RSS value.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapEnum"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enumeration" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Unused.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="enumeration"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="headers" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;List of header files that must be included to provide the RSS enumerator symbols.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="headers"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nameAlgorithm" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If defined, mapped RSS values may be generated by an algorithm based on&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;the current instance and property.  See the com.nokia.sdt.sourceGen.nameAlgorithm&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;extension point for details.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="nameAlgorithm"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueValue" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;When nameAlgorithm is defined, specifies that some or all mapped values&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;are generated by the name algorithm.  If the value is &quot;*&quot;, every value goes&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;through the name algorithm and gets an enumerator in an *.hrh file.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Otherwise, only properties matching the value are generated.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="uniqueValue"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="validate" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If true, ensure that mapped enumerators are declared in the RSS context,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;emitting warnings if not.  Set this to false if mapping #defines or&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;expressions.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="validate"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingFixedType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping a fixed value to RSS.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingFixedType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The literal string to emit into RSS.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="value"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingIdentifierType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping property values to RSS identifiers (rather than&#xD;&#xA;&#x9;&#x9;strings, for instance, as mappingSimpleType would do).&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingIdentifierType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingInstanceType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping resources generated by component instances.&#xD;&#xA;&#x9;&#x9;Either a reference to the resource is emitted (for LLINK targets)&#xD;&#xA;&#x9;&#x9;or the resource expression is emitted (for STRUCT targets).&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingInstanceType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rsrcId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If specified, which particular resource to match.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="rsrcId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingReferenceType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping references to resources generated by component instances.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingReferenceType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rsrcId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If defined, tells which particular generated resource to reference.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="rsrcId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingResourceType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping resources in RSS.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingResourceType"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapSimpleMember" upperBound="-1"
        eType="#//MapSimpleMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple value to a member.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapSimpleMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapInstanceMember" upperBound="-1"
        eType="#//MapInstanceMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map resources for an instance.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapInstanceMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapReferenceMember" upperBound="-1"
        eType="#//MapReferenceMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a reference property to resources the instance generates.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapReferenceMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapFixedMember" upperBound="-1"
        eType="#//MapFixedMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a fixed value to an RSS member.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapFixedMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapEnumMember" upperBound="-1"
        eType="#//MapEnumMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an enumerator to RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapEnumMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapIdentifierMember" upperBound="-1"
        eType="#//MapIdentifierMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple property to a literal (identifier) in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapIdentifierMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapArrayMember" upperBound="-1"
        eType="#//MapArrayMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property or child list to an array in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapArrayMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResourceMember" upperBound="-1"
        eType="#//MapResourceMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property to a RESOURCE expression or statement.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResourceMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapBitmaskMember" upperBound="-1"
        eType="#//MapBitmaskMemberType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a set of boolean properties to a bitmask expression in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapBitmaskMember"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapMemberFromType" upperBound="-1"
        eType="#//MapMemberFromTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map RSS from the type declaration attached to the given property.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapMemberFromType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapIntoProperty" upperBound="-1"
        eType="#//MapIntoPropertyType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Delve into a property path without generating any resources.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapIntoProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="select" upperBound="-1"
        eType="#//SelectType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element encapsulates choice elements which allow conditional&#xD;&#xA;&#x9;&#x9;source mapping.  One choice must match or an error results (you can&#xD;&#xA;&#x9;&#x9;use an empty choice to match the default case if necessary).  Only&#xD;&#xA;&#x9;&#x9;the first matching choice is considered.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9; for the select statement.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="select"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="headers" unique="false"
        eType="#//ListOfStrings">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The list of headers required to declare the STRUCT.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="headers"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The unique identifier for this resource within a component.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Every mapResourceXXX must have an identifier, either implicitly&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;or explicitly defined.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If unspecified, an identifier is automatically generated for&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;mapResourceMember or mapResourceElement elements.  Otherwise,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;missing identifiers are reported at errors at source mapping time.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="struct" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The RSS STRUCT name to generate.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="struct"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MappingSimpleType" eSuperTypes="#//TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for mapping simple types (integers, floats, strings, booleans).&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mappingSimpleType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapReferenceElementType" eSuperTypes="#//MappingReferenceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapReferenceElement_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapReferenceMemberType" eSuperTypes="#//MappingReferenceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapReferenceMember_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapReferenceTypeType" eSuperTypes="#//MappingReferenceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapReferenceType_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapResourceElementType" eSuperTypes="#//MappingResourceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapResourceElement_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceIdentifyingMember"
        unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;This attribute provides a means to distinguish resource&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;elements that come from different instances.  &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;It tells which resource member to use as a key, so that the &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;array mapper can match up elements to instances when importing,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;to allow unknown items to be inserted (or for known items to &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;be reordered, ideally).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If not set, the array is assumed to contain entries whose&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;positions uniquely identify them (as is the case with&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;arrays of integers, references, etc.).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="instanceIdentifyingMember"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapResourceMemberType" eSuperTypes="#//MappingResourceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapResourceMember_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapResourceType" eSuperTypes="#//MappingResourceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapResource_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseName" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Force the base name of the resource.  If unspecified, resources are&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;named after the instance and member or element being mapped.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="baseName"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rssFile" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Force the RSS filename (but not directory).  This is used to redirect&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resources to a top-level RSS file.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="rssFile"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="standalone" unique="false"
        eType="#//StandaloneType" defaultValueLiteral="default" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;This tells whether the resource must be emitted as a standalone resource statement (always),&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;regardless of whether it is also generated as a resource expression, or whether it&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;will never be emitted unless referenced by another resource (never).  The default behavior&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;is to emit it if not generated as an expression.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="standalone"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unnamed" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;This tells whether to emit the resource without a name&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="unnamed"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapResourceTypeType" eSuperTypes="#//MappingResourceType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapResourceType_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapSimpleElementType" eSuperTypes="#//MappingSimpleType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapSimpleElement_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapSimpleMemberType" eSuperTypes="#//MappingSimpleType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapSimpleMember_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="member" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The struct member.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="member"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The property path providing the value.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="suppressDefault" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;If true, do not emit the member initializer if the property matches the default&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;specified in the STRUCT.  If may be useful to set this to false if the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;default changes between SDK releases (to avoid branching components).&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="suppressDefault"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MapSimpleTypeType" eSuperTypes="#//MappingSimpleType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="mapSimpleType_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeId" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Identifies the id for this particular kind of type mapping.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeId"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PropertiesType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="properties_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractPropertyGroup"
        unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="abstractProperty:group"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="abstractProperty" upperBound="-1"
        eType="#//AbstractPropertyType" changeable="false" volatile="true" transient="true"
        derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="abstractProperty"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="abstractProperty:group"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="PropertyDataType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Simple, predefined property types.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="propertyDataType"/>
    </eAnnotations>
    <eLiterals name="void">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The empty type. Do not use for real properties.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="boolean" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="integer" value="2">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Four byte integer properties. Ranges may be constrained on property declarations.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="float" value="3">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Floating point values. Ranges may be constrained on property declarations.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="string" value="4">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Non-localized string literals&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="localizedString" value="5">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Localized string literals. Users may enter different values for each language.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="uniqueName" value="6">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Unique, non-localized string. Values are forced to be unique across the data model.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="PropertyDataTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="propertyDataType:Object"/>
      <details key="baseType" value="propertyDataType"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PropertyOverridesType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="propertyOverrides_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="propertyOverride" upperBound="-1"
        eType="#//PropertyOverrideType" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="propertyOverride"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PropertyOverrideType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="propertyOverride_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Override of the property category. See the description&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;in &amp;lt;abstractPropertyType&amp;gt;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="category"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Override of the default value. Default values can only&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;be overriden on properties supporting default values, i.e simple properties, enums, and compound &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;properties. See the description in &amp;lt;abstractPropertyType&amp;gt; for more information.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="default"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The internal name for the property being overriden. It is legal for&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;this to reference a name that does not exist. This allows overrides of extension properties, which are&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;only conditionaly defined.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Override of the readOnly state. See the description&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;in &amp;lt;abstractPropertyType&amp;gt;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="readOnly"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ReferenceScopeType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Enumeration used for scoping references within the model&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="referenceScopeType"/>
    </eAnnotations>
    <eLiterals name="model">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Property can reference any valid instance in the model&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="children" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Property can reference any children of the referencing instance&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="siblings" value="2">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Property can reference any siblings or children of the referencing instance&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="ReferenceScopeTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="referenceScopeType:Object"/>
      <details key="baseType" value="referenceScopeType"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ScriptType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="script_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="file" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="file"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="prototype" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="prototype"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SelectType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="select_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="choice" upperBound="-1"
        eType="#//ChoiceType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines a decision in the select element.  If the &quot;value&quot; attribute&#xD;&#xA;&#x9;&#x9;matches the value obtained in the select element, the choice is matched&#xD;&#xA;&#x9;&#x9;and its mapping elements instantiated.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="choice"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="attribute" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Specifies the attribute value to test.  Results in blank (&quot;&quot;) or the value of the attribute to test.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="attribute"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComponentInstanceOf"
        unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Specifies the property path to test for existence, e.g., whether the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;property may be set or queried.  This is independent of whether the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;property is actually set.  The attribute takes a property path (e.g. &quot;flag&quot;, &quot;[parent].flag&quot;, ...)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Results in a 'true' or 'false' value to test. &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="isComponentInstanceOf"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Specifies the property path to test.  (E.g. &quot;flag&quot;, &quot;[parent].flag&quot;, ...)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Results in an error if the property does not exist, else the string version of the property to test.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="property"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyExists" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Specifies the property path to test for existence.  (E.g. &quot;flag&quot;, &quot;[parent].flag&quot;, ...)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Results in a 'true' or 'false' value to test. &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="propertyExists"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SimplePropertyType" eSuperTypes="#//AbstractPropertyType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Concrete type used for basic properties.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="simplePropertyType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A default value for the property. Must be a string convertible to the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;particular property type.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="default"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extendWithEnum" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Optional extension of the enum with the enums provided by an enimPropertyDeclaration.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;If the value of the property matches any in an extension enumProperty's 'value' attribute, the 'displayValue' will be shown&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;as the current value in the property sheet.  Additionally, the editor for the value (if not overridden with&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;a custom editorClass) will be a combo that allows typing in the literal value or selecting one of &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;the extended enums.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;The 'value' of each of the extending enums must match the type being extended, or else the attempt to set the value&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;to that enum will fail.  Note that this means that it is useless to extend booleans (since all extensions&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;must map to 'true' or 'false'). &#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="extendWithEnum"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Optional maximum value constraint. Applies only to integers and floats.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="maxValue"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minValue" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Optional minimum value constraint. Applies only to integers and floats.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="minValue"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" lowerBound="1"
        eType="#//PropertyDataType" defaultValueLiteral="void" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Selects the data type of the property.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="type"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SourceGenType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="sourceGen_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defineLocation" upperBound="-1"
        eType="#//DefineLocationType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element defines a location in source, such as a function in the main &#xD;&#xA;&#x9;&#x9;file or a region of text in a class declaration.  &#xD;&#xA;&#x9;&#x9;This is a slight misnomer as this element does not by its presence realize&#xD;&#xA;&#x9;&#x9;the location.  Only when a contribution references&#xD;&#xA;&#x9;&#x9;location id (or post 1.1: when realize=&quot;true&quot; is used)&#xD;&#xA;&#x9;&#x9;will the location be added to source.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="defineLocation"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="template" upperBound="-1"
        eType="#//TemplateType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines a contribution.  The text element is template-expanded &#xD;&#xA;&#x9;&#x9;with ${ ... } expression escapes and may contain Javascript in &amp;lt;% ... %&amp;gt; sections.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="template"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="templateGroup" upperBound="-1"
        eType="#//TemplateGroupType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;A logical grouping of templates and locations.  Attributes&#xD;&#xA;&#x9;&#x9;present on the group are automatically applied to children.&#xD;&#xA;&#x9;&#x9;Groups may not be nested.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="templateGroup"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="useTemplate" upperBound="-1"
        eType="#//UseTemplateType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;In a derived component, selects a template from the base by id.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="useTemplate"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="useTemplateGroup" upperBound="-1"
        eType="#//UseTemplateGroupType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;In a derived component, selects a template group from the base by id.&#xD;&#xA;&#x9;&#x9;If no subelements are specified, all the named templates (those with ids)&#xD;&#xA;&#x9;&#x9;are inherited.  No templates without ids are inherited.&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;If subelements are specified, these describe the specific templates&#xD;&#xA;&#x9;&#x9;to inherit from the group.  The id &quot;*&quot; may be used to bring in all&#xD;&#xA;&#x9;&#x9;named templates.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="useTemplateGroup"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="inline" upperBound="-1"
        eType="#//InlineType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Provide Javascript in-line with templates and other sourceGen elements.&#xD;&#xA;&#x9;&#x9;Be sure to supply a &quot;forms&quot; attribute, otherwise the code may execute multiple times&#xD;&#xA;&#x9;&#x9;during the source generation contribution-gathering phase.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="inline"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="script" upperBound="-1"
        eType="#//ScriptType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Define a reference to an interface implemented in Javascript.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="script"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defineMacro" upperBound="-1"
        eType="#//DefineMacroType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Added post 1.1.  &#xD;&#xA;&#x9;&#x9;This element defines a macro consisting of a set of templates &#xD;&#xA;&#x9;&#x9;and inlines which may be variable-substituted.&#xD;&#xA;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;If a given defineMacro imports multiple arguments&#xD;&#xA;&#x9;&#x9;of the same name, then they must be explicitly redefined,&#xD;&#xA;&#x9;&#x9;to resolve any ambiguities about the default value.  &#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="defineMacro"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expandMacro" upperBound="-1"
        eType="#//ExpandMacroType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;Expands a given macro into the sourceGen of the caller.  &#xD;&#xA;&#x9;&#x9;This has the same effect as inserting the same templates and inlines &#xD;&#xA;&#x9;&#x9;from the macro's definition at the point of call.  &#xD;&#xA;&#x9;&#x9;Variable references from those templates and inlines&#xD;&#xA;&#x9;&#x9;are substituted with the values provided in attributes &#xD;&#xA;&#x9;&#x9;(e.g. variableName=&quot;value&quot;) or expandArgument child elements.  &#xD;&#xA;&#x9;&#x9;The latter may be preferred for cases where code is substituted,&#xD;&#xA;&#x9;&#x9;so the formatting may be retained.&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;As a special case, variable references may have modifiers to&#xD;&#xA;&#x9;&#x9;modify the formatting of a variable when it is expanded.  &#xD;&#xA;&#x9;&#x9;Modifiers are appended&#xD;&#xA;&#x9;&#x9;to the variable name as in: $(varName::modifier).  &#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Currently supported modifiers are all for tweaking canonical&#xD;&#xA;&#x9;&#x9;function argument lists, which match the format of &#xD;&#xA;&#x9;&#x9;declaration, with spaces, argument names, default values, etc:&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;ul xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-declaration-args: identity&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-definition-args: removes default argument values&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-location-args: removes argument names, default arguments, and spaces&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&lt;/ul>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="expandMacro"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="debug" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="debug"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="forms" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="forms"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SourceMappingType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="sourceMapping_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResource" upperBound="-1"
        eType="#//MapResourceType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an instance to a RESOURCE.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResource"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="select" upperBound="-1"
        eType="#//SelectType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element encapsulates choice elements which allow conditional&#xD;&#xA;&#x9;&#x9;source mapping.  One choice must match or an error results (you can&#xD;&#xA;&#x9;&#x9;use an empty choice to match the default case if necessary).  Only&#xD;&#xA;&#x9;&#x9;the first matching choice is considered.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9; for the select statement.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="select"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SourceTypeMappingType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="sourceTypeMapping_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapResourceType" upperBound="-1"
        eType="#//MapResourceTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property to a RESOURCE expression or statement.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapResourceType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapEnumType" upperBound="-1"
        eType="#//MapEnumTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map an enumerator to RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapEnumType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapSimpleType" upperBound="-1"
        eType="#//MapSimpleTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple value.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapSimpleType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapFixedType" upperBound="-1"
        eType="#//MapFixedTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a fixed value.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapFixedType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapBitmaskType" upperBound="-1"
        eType="#//MapBitmaskTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a set of boolean properties to a bitmask expression in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapBitmaskType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapIdentifierType" upperBound="-1"
        eType="#//MapIdentifierTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a simple property to a literal (identifier) in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapIdentifierType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapReferenceType" upperBound="-1"
        eType="#//MapReferenceTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a reference property to resources the instance generates.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapReferenceType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mapArrayType" upperBound="-1"
        eType="#//MapArrayTypeType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Map a property or child list to an array in RSS.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="mapArrayType"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="select" upperBound="-1"
        eType="#//SelectType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element encapsulates choice elements which allow conditional&#xD;&#xA;&#x9;&#x9;source mapping.  One choice must match or an error results (you can&#xD;&#xA;&#x9;&#x9;use an empty choice to match the default case if necessary).  Only&#xD;&#xA;&#x9;&#x9;the first matching choice is considered.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Only use one attribute (property, attribute, propertyExists, isComponentInstanceOf)&#xD;&#xA;&#x9;&#x9;&#x9;&#x9; for the select statement.&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="select"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:0"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="StandaloneType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;The selector for controlling standalone resource mapping.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="standaloneType"/>
    </eAnnotations>
    <eLiterals name="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Deprecated value corresponding to &quot;default&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="true" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Depecated value corresponding to &quot;always&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="never" value="2">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Never emit the resource by itself.  Only emit it if another resource&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;references it.  By using this, a component may generate two forms of&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;resource (with different resource ids) and let a container or reference&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;select which resource it wants, without also generating the unused variant.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="default" value="3">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Emit the resource by itself if it is not generated as an expression or&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;by a LINK or LLINK.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="always" value="4">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Always emit the resource by itself, even if already generated as an expression.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eLiterals>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="StandaloneTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="standaloneType:Object"/>
      <details key="baseType" value="standaloneType"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SymbianType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="symbian_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="classHelpTopic" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A link to help information for this C++ class&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="classHelpTopic"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The C++ class name corresponding to this component, if any. Not used for source code generation,&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;but is displayed in the component palette.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="className"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxSDKVersion" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A version number indicating the maximum SDK version with which the component is&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;compatible. For example, if the value is 2.8 the component will be selected for use with a 2.8 SDK but not 3.0.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Uses OSGI style version strings, composed of up to 3 integers and a text qualifier, of the form &amp;lt;major version&amp;gt;.&amp;lt;minor version&amp;gt;.&amp;lt;micro version&amp;gt;.&amp;lt;qualifier&amp;gt;.&#xD;&#xA;&#x9;&#x9;&#x9;    See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.&#xD;&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="maxSDKVersion"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minSDKVersion" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A version number indicating the lowest SDK version with which the component is&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;compatible. For example, if the value is 2.8 the component will be selected for use with a 2.8 SDK but not 2.6.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Uses OSGI style version strings, composed of up to 3 integers and a text qualifier, of the form &amp;lt;major version&amp;gt;.&amp;lt;minor version&amp;gt;.&amp;lt;micro version&amp;gt;.&amp;lt;qualifier&amp;gt;.&#xD;&#xA;&#x9;&#x9;&#x9;    See http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/osgi/org/osgi/framework/Version.html for further information.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="minSDKVersion"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceHelpTopic" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A link to help information for the resource&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="resourceHelpTopic"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceType" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The Symbian RSS resource type for this component, if any&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="resourceType"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sdkName" unique="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//AnySimpleType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This value identifies the Symbian OS variant with which the component is compatible.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;Currently the only supported value is &quot;com.nokia.serie60&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="sdkName"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TemplateGroupType" eSuperTypes="#//ConditionalSourceGen">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="templateGroup_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:3"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="defineLocation" upperBound="-1"
        eType="#//DefineLocationType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This element defines a location in source, such as a function in the main &#xD;&#xA;&#x9;&#x9;file or a region of text in a class declaration.  &#xD;&#xA;&#x9;&#x9;This is a slight misnomer as this element does not by its presence realize&#xD;&#xA;&#x9;&#x9;the location.  Only when a contribution references&#xD;&#xA;&#x9;&#x9;location id (or post 1.1: when realize=&quot;true&quot; is used)&#xD;&#xA;&#x9;&#x9;will the location be added to source.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="defineLocation"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:3"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="template" upperBound="-1"
        eType="#//TemplateType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;This defines a contribution.  The text element is template-expanded &#xD;&#xA;&#x9;&#x9;with ${ ... } expression escapes and may contain Javascript in &amp;lt;% ... %&amp;gt; sections.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="template"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:3"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="inline" upperBound="-1"
        eType="#//InlineType" volatile="true" transient="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Provide Javascript in-line with templates and other sourceGen elements.&#xD;&#xA;&#x9;&#x9;Be sure to supply a &quot;forms&quot; attribute, otherwise the code may execute multiple times&#xD;&#xA;&#x9;&#x9;during the source generation contribution-gathering phase.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="inline"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:3"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="useTemplate" upperBound="-1"
        eType="#//UseTemplateType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;In a derived component, selects a template from the base by id.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="useTemplate"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:3"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="useTemplateGroup" upperBound="-1"
        eType="#//UseTemplateGroupType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;In a derived component, selects a template group from the base by id.&#xD;&#xA;&#x9;&#x9;If no subelements are specified, all the named templates (those with ids)&#xD;&#xA;&#x9;&#x9;are inherited.  No templates without ids are inherited.&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;If subelements are specified, these describe the specific templates&#xD;&#xA;&#x9;&#x9;to inherit from the group.  The id &quot;*&quot; may be used to bring in all&#xD;&#xA;&#x9;&#x9;named templates.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="useTemplateGroup"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:3"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="expandMacro" upperBound="-1"
        eType="#//ExpandMacroType" volatile="true" transient="true" derived="true"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Added post 1.1.&#xD;&#xA;&#x9;&#x9;Expands a given macro into the sourceGen of the caller.  &#xD;&#xA;&#x9;&#x9;This has the same effect as inserting the same templates and inlines &#xD;&#xA;&#x9;&#x9;from the macro's definition at the point of call.  &#xD;&#xA;&#x9;&#x9;Variable references from those templates and inlines&#xD;&#xA;&#x9;&#x9;are substituted with the values provided in attributes &#xD;&#xA;&#x9;&#x9;(e.g. variableName=&quot;value&quot;) or expandArgument child elements.  &#xD;&#xA;&#x9;&#x9;The latter may be preferred for cases where code is substituted,&#xD;&#xA;&#x9;&#x9;so the formatting may be retained.&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;As a special case, variable references may have modifiers to&#xD;&#xA;&#x9;&#x9;modify the formatting of a variable when it is expanded.  &#xD;&#xA;&#x9;&#x9;Modifiers are appended&#xD;&#xA;&#x9;&#x9;to the variable name as in: $(varName::modifier).  &#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;p xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;Currently supported modifiers are all for tweaking canonical&#xD;&#xA;&#x9;&#x9;function argument lists, which match the format of &#xD;&#xA;&#x9;&#x9;declaration, with spaces, argument names, default values, etc:&#xD;&#xA;&#x9;&#x9;&lt;/p>&#xD;&#xA;&#x9;&#x9;&lt;ul xmlns=&quot;http://www.nokia.com/sdt/emf/component&quot;>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-declaration-args: identity&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-definition-args: removes default argument values&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&#x9;&lt;li>as-function-location-args: removes argument names, default arguments, and spaces&#xD;&#xA;&#x9;&#x9;&#x9;&lt;/li>&#xD;&#xA;&#x9;&#x9;&lt;/ul>&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="expandMacro"/>
        <details key="namespace" value="##targetNamespace"/>
        <details key="group" value="#group:3"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="form" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="form"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="location"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="mode"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="phase" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="phase"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TemplateType" eSuperTypes="#//ConditionalSourceGenString">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="template_._type"/>
      <details key="kind" value="simple"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="form" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;A token used to select a particular kind of source for a parent.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The namespace is determined implicitly by what a parent requests.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;For instance, a parent may have special sourcegen, and pass&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;the form &quot;SpecialCase&quot; to its children.  Templates specifying&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;form=&quot;SpecialCase&quot; will be selected.  Other parents will not see&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;such templates if they do not specify that form.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;If the form does not match, the template is not instantiated.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="form"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Unique id for the template within a component or&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;within a templateGroup.  Ids may be shared for different&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;forms.  Derived components may redefine ids or inherit&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;templates by id.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Added post 1.1: if the id is unspecified in a templateGroup, &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;a default id is assigned.  To avoid inheriting, supply an empty id.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" unique="false"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The location id the contribution goes to.  May not be specified when &quot;phase&quot; is set.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="location"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Unused currently.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="mode"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="phase" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The phase the contribution goes to.  A parent component must realize the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;phase into an actual location id.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="phase"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TwoWayMappingType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;Base for two-way mappings.&#xD;&#xA;&#x9;&#x9;"/>
    </eAnnotations>
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="twoWayMappingType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="UseTemplateGroupType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="useTemplateGroup_._type"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="useTemplate" upperBound="-1"
        eType="#//UseTemplateType" containment="true" resolveProxies="false">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;In a derived component, selects a template from the base by id.&#xD;&#xA;&#x9;&#x9;"/>
      </eAnnotations>
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="useTemplate"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ids" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="ids"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="UseTemplateType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="useTemplate_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ids" unique="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="ids"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
</ecore:EPackage>
