<?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="beaninfo"
    nsURI="http:///org/eclipse/jem/internal/beaninfo/beaninfo.ecore" nsPrefix="org.eclipse.jem.internal.beaninfo.beaninfo">
  <eClassifiers xsi:type="ecore:EClass" name="FeatureDecorator" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Equivalent to FeatureDescriptor in java.&#xD;&#xA;&lt;p>&#xD;&#xA;Note: If any attribute is explicitly set then the BeanInfo/Reflection will not be merged into the decorator. This provides a way of overriding the BeanInfos. Also for any many-valued attribute, if it is desired to have it explicitly empty and not have BeanInfo fill it in, there will be another attribute named of the form &quot;attibutueExplicitEmpty&quot; If this is true then the BeanInfo will not merge in and will leave it empty.&#xD;&#xA;&lt;p>&#xD;&#xA;These comments about merging apply to all subclasses of this decorator too. "/>
    </eAnnotations>
    <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortDescription" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="expert" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="hidden" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferred" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeIntrospection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Should the introspection results be merged into this decorator. If this is set to false, then the introspection results are ignored for this particular decorator. This is an internal feature simply to allow desired override capabilities. Customers would use it to prevent ANY introspection/reflection from occurring."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributesExplicitEmpty"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The attributes are explicitly set as empty and not retrieved from the beaninfo/reflection. Customers should set this if they want the list of attributes to be empty and not merged with the BeanInfo results. "/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="implicitlySetBits" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A bitflag for which attributes have been set by BeanInfo/Reflection.&#xD;&#xA;&lt;p>&#xD;&#xA;This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="implicitDecoratorFlag"
        eType="#//ImplicitItem">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Is this decorator/feature implicit. This means created by Introspection/Reflection and not by customer.&#xD;&#xA;&lt;p>&#xD;&#xA;This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
        eType="#//FeatureAttributeMapEntry" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Feature attributes. Key/value pairs. If it is desired that the feature attributes is explicitly empty and not have BeanInfo/reflection set it, set attributesExplicitEmpty to true."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BeanDecorator" eSuperTypes="#//FeatureDecorator">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Equivalent to BeanDecorator in java."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeSuperProperties" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Should the properties of super types be merged when asking for eAllAttributes/eAllReferences."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeSuperMethods" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Should the methods of super types be merged when asking for eAllBehaviors."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeSuperEvents" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true" unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Should the events of super types be merged when asking for eAllEvents."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="introspectProperties" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Should the properties from the introspection be added to the class. This allows properties to not be introspected and to use only what is defined explicitly in the JavaClass xmi file."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="introspectMethods" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Should the methods from the introspection be added to the class. This allows methods to not be introspected and to use only what is defined explicitly in the JavaClass xmi file."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="introspectEvents" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Should the events from the introspection be added to the class. This allows events to not be introspected and to use only what is defined explicitly in the JavaClass xmi file."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="doBeaninfo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This means do we go and get the beaninfo from the remote vm. If false, then it will not try to get the beaninfo. This doesn't prevent introspection through reflection. That is controled by the separate introspect... attributes."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notInheritedPropertyNames"
        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This is the list of inherited property names to not use in getAllProperties(). These names are properties that should not be inherited and should not show through. If the inherited property is not on the list then it will show in getAllProperties().&#xD;&#xA;&lt;p>&#xD;&#xA;This list will be empty if all properties are inherited or if the mergeSuperProperties flag is false.&#xD;&#xA;&lt;p>&#xD;&#xA;Note: This attribute is not meant to be changed by clients. It is an internal attribute."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notInheritedMethodNames"
        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This is the list of inherited method names to not use in eAllOperations(). These names are operations that should not be inherited and should not show through. If the inherited operation is not on the list then it will show in getAllOperations().&#xD;&#xA;&lt;p>&#xD;&#xA;This list will be empty if all operations are inherited or if the mergeSuperBehaviors flag is false."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notInheritedEventNames"
        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This is the list of inherited event names to not use in getAllEvents(). These names are events that should not be inherited and should not show through. If the inherited event is not on the list then it will show in getAllEvents().&#xD;&#xA;&lt;p>&#xD;&#xA;This list will be empty if all events are inherited or if the mergeSuperEvents flag is false."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="customizerClass" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//JavaClass"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EventSetDecorator" eSuperTypes="#//FeatureDecorator">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Equivalent to EventSetDecorator in java."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inDefaultEventSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unicast" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="listenerMethodsExplicitEmpty"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Set true if the listenerMethods feature is explicitly set as empty and is not to have listener methods merged in from BeanInfo or reflection."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="addListenerMethod" lowerBound="1"
        eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Method"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="listenerMethods" lowerBound="1"
        upperBound="-1" eType="#//MethodProxy" volatile="true" transient="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="listener methods. If it is desired that the list be explicitly empty and not have BeanInfo set it, then set listenerMethodsExplicitEmpty to true.&#xD;&#xA;&lt;p>&#xD;&#xA;ListenerMethods will be decorated with MethodDecorators.&#xD;&#xA;&lt;p>&#xD;&#xA;Note: This is a derived setting, which means it will not notify out changes to it. To here changes to it, listen on &quot;serListMthd&quot; notifications instead."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="listenerType" lowerBound="1"
        eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//JavaClass"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="removeListenerMethod" lowerBound="1"
        eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Method"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eventAdapterClass" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//JavaClass">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="For some listener interfaces an adapter class is provided that implements default no-op methods, e.g. java.awt.event.FocusEvent which has java.awt.event.FocusAdapter. The Adapter class is provided in a key/value pair on the java.beans.EventSetDescriptor with a key defined in a static final constants EVENTADAPTERCLASS = &quot;eventAdapterClass&quot;."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serListMthd" lowerBound="1"
        upperBound="-1" eType="#//MethodProxy" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This is a private feature. It is used internally only. "/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MethodDecorator" eSuperTypes="#//FeatureDecorator">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Equivalent to MethodDecorator in java."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parmsExplicitEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Set true if the parms feature is explicitly set as empty and is not to have parameters merged in from BeanInfo or reflection."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterDescriptors" upperBound="-1"
        eType="#//ParameterDecorator" volatile="true" transient="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This is the parameter descriptors list.&#xD;&#xA;&lt;p>&#xD;&#xA;Note: This is a derived setting, which means it will not notify out changes to it. To here changes to it, listen on &quot;serParmDesc&quot; notifications instead."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serParmDesc" upperBound="-1"
        eType="#//ParameterDecorator" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This is a private feature. It is used internally only. "/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ParameterDecorator" eSuperTypes="#//FeatureDecorator">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The name is explicit here because unlike the other feature decorators, the name does not come from the object being decorated."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//JavaParameter"
        transient="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The JavaParameter that this ParameterDecorator is decorating. Can't use eDecorates in this."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PropertyDecorator" eSuperTypes="#//FeatureDecorator">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Equivalent to PropertyDecorator in java."/>
    </eAnnotations>
    <eOperations name="getPropertyType" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Get the property type."/>
      </eAnnotations>
    </eOperations>
    <eOperations name="setPropertyType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Set the property type."/>
      </eAnnotations>
      <eParameters name="propertyType" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="constrained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="designTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If not set, then normal default processing.&#xD;&#xA;&#xD;&#xA;If set true, then this property is a design time property. This means it will show up in the property sheet, but it won't be able to be connected to at runtime. It may not even be a true bean property but instead the builder will know how to handle it.&#xD;&#xA;&#xD;&#xA;If set false, then this property will not show up on the property sheet, but will be able to be connected to for runtime."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alwaysIncompatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If set true, then when multiple objects are selected, this property is always incompatible with each other. So in this case the property will not show up on the property sheet if more than one object has been selected."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="filterFlags" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fieldReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Is this field read-only (i.e. is a &quot;final&quot; field). This is only referenced if the field reference is set."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="propertyEditorClass" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//JavaClass"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="readMethod" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Method"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="writeMethod" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Method"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="field" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Field"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If this is set, then this property is a field and not a getter/setter property. This is an extension that the Visual Editor uses to the BeanInfo model."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="IndexedPropertyDecorator" eSuperTypes="#//PropertyDecorator">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Equivalent to IndexedPropertyDecorator"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="indexedReadMethod" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Method"
        unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="indexedWriteMethod" eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Method"
        unsettable="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MethodProxy" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="This is just a wrapper of a java Method. It allows access to the method but doesn't duplicate the interface for it.&#xD;&#xA;&lt;p>&#xD;&#xA;MethodProxies will be in the eBehaviors setting for any methods that are in the JavaClass methods setting so that they are not duplicated.&#xD;&#xA;&lt;p>&#xD;&#xA;MethodProxies would also have MethodDecorators."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="method" lowerBound="1"
        eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//Method"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BeanEvent" eSuperTypes="../../org.eclipse.jem/model/java.ecore#//JavaEvent">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Event from Introspection/Reflection.&#xD;&#xA;&lt;p>&#xD;&#xA;The BeanEvent will be under the JavaClass' events and allEvents feature. Each BeanEvent will be decorated by an EventSetDecorator."/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FeatureAttributeMapEntry" instanceClassName="java.util.Map$Entry">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//FeatureAttributeValue"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="FeatureAttributeValue" instanceClassName="org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="This is the attribute value for feature attribute. It can only represent the following:&#xD;&#xA;&#xD;&#xA;- String&#xD;&#xA;- primitives&#xD;&#xA;- array (type Object) containing mixture of Strings and primitives (as the object types)&#xD;&#xA;- array (type String)&#xD;&#xA;- array (type primitive)&#xD;&#xA;&#xD;&#xA;Anything else cannot be represented."/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ImplicitItem">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="This enum is an internal enum. It is used by BeanInfo for cache maintenance.&#xD;&#xA;&lt;p>&#xD;&#xA;This enum is not meant to be used by clients."/>
    </eAnnotations>
    <eLiterals name="NOT_IMPLICIT">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Means this decorator is not implicit. That is it was created by customer."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="IMPLICIT_DECORATOR" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This means that the decorator is implicit. That is it was not created by the customer."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="IMPLICIT_DECORATOR_AND_FEATURE" value="2">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This means the decorator and the feature where implicit. That is they were not created by the customer."/>
      </eAnnotations>
    </eLiterals>
  </eClassifiers>
</ecore:EPackage>
