Changed to have feature attributes be a map that can
be retrieved by key. Also put a place in the value for a
java object in addition to an EObject so that Joe can store
data there computed from the value proxy object.
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java
index 6570ac6..47a8650 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/BeaninfoPackage.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: BeaninfoPackage.java,v $
- *  $Revision: 1.2 $  $Date: 2004/01/13 16:17:00 $ 
+ *  $Revision: 1.3 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
 import org.eclipse.emf.ecore.EAttribute;
@@ -273,7 +273,7 @@
 	 */
 	int FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT = EcorePackage.EANNOTATION_FEATURE_COUNT + 7;
 	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Attributes</b></em>' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -290,21 +290,22 @@
 	int FEATURE_DECORATOR_FEATURE_COUNT = EcorePackage.EANNOTATION_FEATURE_COUNT + 9;
 
 	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FEATURE_ATTRIBUTE_VALUE__NAME = 0;
-	/**
 	 * The feature id for the '<em><b>Value</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int FEATURE_ATTRIBUTE_VALUE__VALUE = 1;
+	int FEATURE_ATTRIBUTE_VALUE__VALUE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Value Java</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA = 1;
 
 	/**
 	 * The feature id for the '<em><b>Value Proxy</b></em>' attribute.
@@ -445,7 +446,7 @@
 	 */
 	int BEAN_DECORATOR__ATTRIBUTES_EXPLICIT = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT;
 	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Attributes</b></em>' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -647,7 +648,7 @@
 	 */
 	int EVENT_SET_DECORATOR__ATTRIBUTES_EXPLICIT = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT;
 	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Attributes</b></em>' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -852,7 +853,7 @@
 	 */
 	int METHOD_DECORATOR__ATTRIBUTES_EXPLICIT = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT;
 	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Attributes</b></em>' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1006,7 +1007,7 @@
 	 */
 	int PARAMETER_DECORATOR__ATTRIBUTES_EXPLICIT = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT;
 	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Attributes</b></em>' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1160,7 +1161,7 @@
 	 */
 	int PROPERTY_DECORATOR__ATTRIBUTES_EXPLICIT = FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT;
 	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Attributes</b></em>' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1366,7 +1367,7 @@
 	 */
 	int INDEXED_PROPERTY_DECORATOR__ATTRIBUTES_EXPLICIT = PROPERTY_DECORATOR__ATTRIBUTES_EXPLICIT;
 	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Attributes</b></em>' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -1753,6 +1754,44 @@
 
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeMapEntryImpl <em>Feature Attribute Map Entry</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeMapEntryImpl
+	 * @see org.eclipse.jem.internal.beaninfo.impl.BeaninfoPackageImpl#getFeatureAttributeMapEntry()
+	 * @generated
+	 */
+	int FEATURE_ATTRIBUTE_MAP_ENTRY = 10;
+
+	/**
+	 * The feature id for the '<em><b>Key</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_ATTRIBUTE_MAP_ENTRY__KEY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE = 1;
+
+	/**
+	 * The number of structural features of the the '<em>Feature Attribute Map Entry</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FEATURE_ATTRIBUTE_MAP_ENTRY_FEATURE_COUNT = 2;
+
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator <em>Feature Decorator</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1840,10 +1879,10 @@
 	EAttribute getFeatureDecorator_MergeIntrospection();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getAttributes <em>Attributes</em>}'.
+	 * Returns the meta object for the map '{@link org.eclipse.jem.internal.beaninfo.FeatureDecorator#getAttributes <em>Attributes</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Attributes</em>'.
+	 * @return the meta object for the map '<em>Attributes</em>'.
 	 * @see org.eclipse.jem.internal.beaninfo.FeatureDecorator#getAttributes()
 	 * @see #getFeatureDecorator()
 	 * @generated
@@ -2228,17 +2267,6 @@
 	EClass getFeatureAttributeValue();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getName()
-	 * @see #getFeatureAttributeValue()
-	 * @generated
-	 */
-	EAttribute getFeatureAttributeValue_Name();
-
-	/**
 	 * Returns the meta object for the containment reference '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValue <em>Value</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2250,6 +2278,17 @@
 	EReference getFeatureAttributeValue_Value();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValueJava <em>Value Java</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value Java</em>'.
+	 * @see org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValueJava()
+	 * @see #getFeatureAttributeValue()
+	 * @generated
+	 */
+	EAttribute getFeatureAttributeValue_ValueJava();
+
+	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2313,6 +2352,39 @@
 	EClass getBeanEvent();
 
 	/**
+	 * Returns the meta object for class '{@link java.util.Map.Entry <em>Feature Attribute Map Entry</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Feature Attribute Map Entry</em>'.
+	 * @see java.util.Map.Entry
+	 * @model keyType="java.lang.String" valueType="org.eclipse.jem.internal.beaninfo.FeatureAttributeValue" valueContainment="true" 
+	 * @generated
+	 */
+	EClass getFeatureAttributeMapEntry();
+
+	/**
+	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Key</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getFeatureAttributeMapEntry()
+	 * @generated
+	 */
+	EAttribute getFeatureAttributeMapEntry_Key();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link java.util.Map.Entry <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Value</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getFeatureAttributeMapEntry()
+	 * @generated
+	 */
+	EReference getFeatureAttributeMapEntry_Value();
+
+	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.jem.internal.beaninfo.EventSetDecorator#isListenerMethodsExplicit <em>Listener Methods Explicit</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureAttributeValue.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureAttributeValue.java
index b854748..c8b4fff 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureAttributeValue.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureAttributeValue.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: FeatureAttributeValue.java,v $
- *  $Revision: 1.2 $  $Date: 2004/01/13 16:17:00 $ 
+ *  $Revision: 1.3 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
 
@@ -24,8 +24,8 @@
  * <p>
  * The following features are supported:
  * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValueJava <em>Value Java</em>}</li>
  *   <li>{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValueProxy <em>Value Proxy</em>}</li>
  * </ul>
  * </p>
@@ -39,32 +39,6 @@
 public interface FeatureAttributeValue extends EObject{
 
 	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureAttributeValue_Name()
-	 * @model 
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
 	 * Returns the value of the '<em><b>Value</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -72,10 +46,15 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * This is the value as an EObject. This is used to return typically the IJavaInstance representing the value.
+	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Value</em>' containment reference.
+	 * @see #isSetValue()
+	 * @see #unsetValue()
 	 * @see #setValue(EObject)
 	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureAttributeValue_Value()
-	 * @model containment="true"
+	 * @model containment="true" unsettable="true"
 	 * @generated
 	 */
 	EObject getValue();
@@ -85,12 +64,89 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Value</em>' containment reference.
+	 * @see #isSetValue()
+	 * @see #unsetValue()
 	 * @see #getValue()
 	 * @generated
 	 */
 	void setValue(EObject value);
 
 	/**
+	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValue <em>Value</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSetValue()
+	 * @see #getValue()
+	 * @see #setValue(EObject)
+	 * @generated
+	 */
+	void unsetValue();
+
+	/**
+	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValue <em>Value</em>}' containment reference is set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return whether the value of the '<em>Value</em>' containment reference is set.
+	 * @see #unsetValue()
+	 * @see #getValue()
+	 * @see #setValue(EObject)
+	 * @generated
+	 */
+	boolean isSetValue();
+
+	/**
+	 * Returns the value of the '<em><b>Value Java</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * This is where the value is just a java object. Not an EObject. Sometimes it is easier to have this instead. This attribute is transient and won't be serialized.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Value Java</em>' attribute.
+	 * @see #isSetValueJava()
+	 * @see #unsetValueJava()
+	 * @see #setValueJava(Object)
+	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureAttributeValue_ValueJava()
+	 * @model unsettable="true" transient="true"
+	 * @generated
+	 */
+	Object getValueJava();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValueJava <em>Value Java</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value Java</em>' attribute.
+	 * @see #isSetValueJava()
+	 * @see #unsetValueJava()
+	 * @see #getValueJava()
+	 * @generated
+	 */
+	void setValueJava(Object value);
+
+	/**
+	 * Unsets the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValueJava <em>Value Java</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSetValueJava()
+	 * @see #getValueJava()
+	 * @see #setValueJava(Object)
+	 * @generated
+	 */
+	void unsetValueJava();
+
+	/**
+	 * Returns whether the value of the '{@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue#getValueJava <em>Value Java</em>}' attribute is set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return whether the value of the '<em>Value Java</em>' attribute is set.
+	 * @see #unsetValueJava()
+	 * @see #getValueJava()
+	 * @see #setValueJava(Object)
+	 * @generated
+	 */
+	boolean isSetValueJava();
+
+	/**
 	 * Returns the value of the '<em><b>Value Proxy</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -98,6 +154,9 @@
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * This is the proxy of the value from a BeanInfo on the remote vm. It is typed to EJavaObject because we don't want to prereq the java instanctiation stuff. It is transient.
+	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Value Proxy</em>' attribute.
 	 * @see #isSetValueProxy()
 	 * @see #unsetValueProxy()
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java
index 9b5eac9..62de2ba 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/FeatureDecorator.java
@@ -11,11 +11,11 @@
  *******************************************************************************/
 /*
  *  $RCSfile: FeatureDecorator.java,v $
- *  $Revision: 1.2 $  $Date: 2004/01/13 16:17:00 $ 
+ *  $Revision: 1.3 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
 
-import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
 import org.eclipse.emf.ecore.EAnnotation;
 
 import org.eclipse.jem.internal.proxy.core.IBeanProxy;
@@ -435,20 +435,21 @@
 	void setMergeIntrospection(boolean value);
 
 	/**
-	 * Returns the value of the '<em><b>Attributes</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue}.
+	 * Returns the value of the '<em><b>Attributes</b></em>' map.
+	 * The key is of type {@link java.lang.String},
+	 * and the value is of type {@link org.eclipse.jem.internal.beaninfo.FeatureAttributeValue},
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Attributes</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Attributes</em>' containment reference list.
+	 * @return the value of the '<em>Attributes</em>' map.
 	 * @see org.eclipse.jem.internal.beaninfo.BeaninfoPackage#getFeatureDecorator_Attributes()
-	 * @model type="org.eclipse.jem.internal.beaninfo.FeatureAttributeValue" containment="true"
+	 * @model mapType="org.eclipse.jem.internal.beaninfo.FeatureAttributeMapEntry" keyType="java.lang.String" valueType="org.eclipse.jem.internal.beaninfo.FeatureAttributeValue"
 	 * @generated
 	 */
-	EList getAttributes();
+	EMap getAttributes();
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java
index 973af15..dc71163 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: BeanDecoratorImpl.java,v $
- *  $Revision: 1.5 $  $Date: 2004/03/07 14:33:09 $ 
+ *  $Revision: 1.6 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
 
@@ -19,7 +19,6 @@
 import java.net.URL;
 import java.util.*;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.logging.Level;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -40,11 +39,6 @@
 import org.eclipse.jem.internal.beaninfo.adapters.Utilities;
 import org.eclipse.jem.java.JavaClass;
 import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-import org.eclipse.jem.internal.proxy.core.IStringBeanProxy;
-import org.eclipse.jem.internal.proxy.core.ThrowableProxy;
-
-import com.ibm.wtp.logger.proxyrender.EclipseLogger;
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Bean Decorator</b></em>'.
@@ -967,19 +961,15 @@
 	private boolean hasQueriedIconURL;
 	public URL getIconURL(){
 		if (!hasQueriedIconURL){
-			Iterator featureAttributeValues = getAttributes().iterator();
-			while(featureAttributeValues.hasNext()){
-				FeatureAttributeValue value = (FeatureAttributeValue) featureAttributeValues.next();
-				if (value.getName().equals("ICON_COLOR_16x16_URL")){ //$NON-NLS-1$
-					// Get the value
-					String urlString = ((IStringBeanProxy)value.getValueProxy()).stringValue();
-					try {
-						hasQueriedIconURL = true;
-						iconURL = new URL(urlString);
-					} catch (MalformedURLException exc ) {
-						EclipseLogger.getLogger().log(exc, Level.WARNING);
-					}
-					break;					
+			FeatureAttributeValue value = (FeatureAttributeValue) getAttributes().get("ICON_COLOR_16x16_URL");	//$NON-NLS-1$
+			if (value != null && value.isSetValueProxy()){ 
+				// Get the value
+				String urlString = ((IStringBeanProxy)value.getValueProxy()).stringValue();
+				try {
+					hasQueriedIconURL = true;
+					iconURL = new URL(urlString);
+				} catch ( MalformedURLException exc ) {
+					BeaninfoPlugin.getPlugin().getLogger().log(exc, Level.INFO);
 				}
 			}			
 		}
@@ -990,35 +980,33 @@
 		if(styleDetails == null){
 			styleDetails = new HashMap();
 			try{
-				Iterator featureAttributeValues = getAttributes().iterator();
-				while(featureAttributeValues.hasNext()){
-					FeatureAttributeValue value = (FeatureAttributeValue) featureAttributeValues.next();
-					if(value.getName().equals("SWEET_STYLEBITS")) { // $NON-NLS-1$
-						IArrayBeanProxy outerArray  = (IArrayBeanProxy) value.getValueProxy();
-						for (int i = 0; i < outerArray.getLength(); i++) {
-							IArrayBeanProxy innerArray = (IArrayBeanProxy) outerArray.get(i);
-							// The first element is a String
-							String propertyName = ((IStringBeanProxy)innerArray.get(0)).stringValue();
-							// The next is a three element array of name, initString, and actual value * n for the number of allowble values
-							// Iterate over it to extract the names and strings and turn these into two separate String arrays
-							IArrayBeanProxy triplicateArray = (IArrayBeanProxy)innerArray.get(1);
-							int numberOfValues = triplicateArray.getLength()/3;
-							String[] names = new String[numberOfValues];
-							String[] initStrings = new String[numberOfValues];
-							Integer[] values = new Integer[numberOfValues]; 
-							for (int j = 0; j < triplicateArray.getLength(); j = j+3) {
-								int index = j/3;
-								names[index] = ((IStringBeanProxy)triplicateArray.get(j)).stringValue();
-								initStrings[index] = ((IStringBeanProxy)triplicateArray.get(j+1)).stringValue();
-								values[index] = new Integer(((IIntegerBeanProxy)triplicateArray.get(j+2)).intValue());
-							}							
-							styleDetails.put(propertyName, new Object[] { names, initStrings, values});
-						}
+				FeatureAttributeValue value = (FeatureAttributeValue) getAttributes().get("SWEET_STYLEBITS");
+				if(value != null && value.isSetValueProxy()) {
+					IArrayBeanProxy outerArray  = (IArrayBeanProxy) value.getValueProxy();
+					for (int i = 0; i < outerArray.getLength(); i++) {
+						IArrayBeanProxy innerArray = (IArrayBeanProxy) outerArray.get(i);
+						// The first element is a String
+						String propertyName = ((IStringBeanProxy)innerArray.get(0)).stringValue();
+						// The next is a three element array of name, initString, and actual value * n for the number of allowble values
+						// Iterate over it to extract the names and strings and turn these into two separate String arrays
+						IArrayBeanProxy triplicateArray = (IArrayBeanProxy)innerArray.get(1);
+						int numberOfValues = triplicateArray.getLength()/3;
+						String[] names = new String[numberOfValues];
+						String[] initStrings = new String[numberOfValues];
+						Integer[] values = new Integer[numberOfValues]; 
+						for (int j = 0; j < triplicateArray.getLength(); j = j+3) {
+							int index = j/3;
+							names[index] = ((IStringBeanProxy)triplicateArray.get(j)).stringValue();
+							initStrings[index] = ((IStringBeanProxy)triplicateArray.get(j+1)).stringValue();
+							values[index] = new Integer(((IIntegerBeanProxy)triplicateArray.get(j+2)).intValue());
+						}							
+						styleDetails.put(propertyName, new Object[] { names, initStrings, values});
 					}
 				}
 			} catch (ThrowableProxy exc) {
-				EclipseLogger.getLogger().log(exc, Level.WARNING);
+				BeaninfoPlugin.getPlugin().getLogger().log(exc, Level.WARNING);
 			}
+
 		}
 		return styleDetails;
 	}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoFactoryImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoFactoryImpl.java
index 3b9b4ed..15450e2 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoFactoryImpl.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoFactoryImpl.java
@@ -11,9 +11,11 @@
  *******************************************************************************/
 /*
  *  $RCSfile: BeaninfoFactoryImpl.java,v $
- *  $Revision: 1.2 $  $Date: 2004/01/13 16:17:00 $ 
+ *  $Revision: 1.3 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
+import java.util.Map;
+
 import org.eclipse.jem.internal.beaninfo.*;
 
 import org.eclipse.emf.ecore.EClass;
@@ -57,6 +59,7 @@
 			case BeaninfoPackage.INDEXED_PROPERTY_DECORATOR: return createIndexedPropertyDecorator();
 			case BeaninfoPackage.METHOD_PROXY: return createMethodProxy();
 			case BeaninfoPackage.BEAN_EVENT: return createBeanEvent();
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY: return (EObject)createFeatureAttributeMapEntry();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -180,4 +183,14 @@
 		return beanEvent;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Map.Entry createFeatureAttributeMapEntry() {
+		FeatureAttributeMapEntryImpl featureAttributeMapEntry = new FeatureAttributeMapEntryImpl();
+		return featureAttributeMapEntry;
+	}
+
 }
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoPackageImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoPackageImpl.java
index 6e46a1e..df99189 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoPackageImpl.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeaninfoPackageImpl.java
@@ -11,9 +11,11 @@
  *******************************************************************************/
 /*
  *  $RCSfile: BeaninfoPackageImpl.java,v $
- *  $Revision: 1.2 $  $Date: 2004/01/13 16:17:00 $ 
+ *  $Revision: 1.3 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
+import java.util.Map;
+
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EPackage;
@@ -115,6 +117,13 @@
 	private EClass beanEventEClass = null;
 
 	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass featureAttributeMapEntryEClass = null;
+
+	/**
 	 * Creates an instance of the model <b>Package</b>, registered with
 	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
@@ -171,8 +180,8 @@
 		isInited = true;
 
 		// Initialize simple dependencies
-		JavaRefPackageImpl.init();
 		EcorePackageImpl.init();
+		JavaRefPackageImpl.init();
 
 		// Obtain or create and register interdependencies
 
@@ -586,8 +595,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getFeatureAttributeValue_Name() {
-		return (EAttribute)featureAttributeValueEClass.getEStructuralFeatures().get(0);
+	public EReference getFeatureAttributeValue_Value() {
+		return (EReference)featureAttributeValueEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -595,8 +604,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getFeatureAttributeValue_Value() {
-		return (EReference)featureAttributeValueEClass.getEStructuralFeatures().get(1);
+	public EAttribute getFeatureAttributeValue_ValueJava() {
+		return (EAttribute)featureAttributeValueEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -639,8 +648,8 @@
 		createEReference(featureDecoratorEClass, FEATURE_DECORATOR__ATTRIBUTES);
 
 		featureAttributeValueEClass = createEClass(FEATURE_ATTRIBUTE_VALUE);
-		createEAttribute(featureAttributeValueEClass, FEATURE_ATTRIBUTE_VALUE__NAME);
 		createEReference(featureAttributeValueEClass, FEATURE_ATTRIBUTE_VALUE__VALUE);
+		createEAttribute(featureAttributeValueEClass, FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA);
 		createEAttribute(featureAttributeValueEClass, FEATURE_ATTRIBUTE_VALUE__VALUE_PROXY);
 
 		beanDecoratorEClass = createEClass(BEAN_DECORATOR);
@@ -688,6 +697,10 @@
 		createEReference(methodProxyEClass, METHOD_PROXY__METHOD);
 
 		beanEventEClass = createEClass(BEAN_EVENT);
+
+		featureAttributeMapEntryEClass = createEClass(FEATURE_ATTRIBUTE_MAP_ENTRY);
+		createEAttribute(featureAttributeMapEntryEClass, FEATURE_ATTRIBUTE_MAP_ENTRY__KEY);
+		createEReference(featureAttributeMapEntryEClass, FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE);
 	}
 
 	/**
@@ -738,13 +751,13 @@
 		initEAttribute(getFeatureDecorator_Preferred(), ecorePackage.getEBoolean(), "preferred", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED);
 		initEAttribute(getFeatureDecorator_MergeIntrospection(), ecorePackage.getEBoolean(), "mergeIntrospection", "true", 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED);
 		initEAttribute(getFeatureDecorator_AttributesExplicit(), ecorePackage.getEBoolean(), "attributesExplicit", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED);
-		initEReference(getFeatureDecorator_Attributes(), this.getFeatureAttributeValue(), null, "attributes", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED);
+		initEReference(getFeatureDecorator_Attributes(), this.getFeatureAttributeMapEntry(), null, "attributes", null, 0, -1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED);
 
 		addEOperation(featureDecoratorEClass, ecorePackage.getEString(), "getName");
 
 		initEClass(featureAttributeValueEClass, FeatureAttributeValue.class, "FeatureAttributeValue", !IS_ABSTRACT, !IS_INTERFACE);
-		initEAttribute(getFeatureAttributeValue_Name(), ecorePackage.getEString(), "name", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED);
-		initEReference(getFeatureAttributeValue_Value(), theEcorePackage.getEObject(), null, "value", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED);
+		initEReference(getFeatureAttributeValue_Value(), theEcorePackage.getEObject(), null, "value", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED);
+		initEAttribute(getFeatureAttributeValue_ValueJava(), theEcorePackage.getEJavaObject(), "valueJava", null, 0, 1, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED);
 		initEAttribute(getFeatureAttributeValue_ValueProxy(), theEcorePackage.getEJavaObject(), "valueProxy", null, 0, 1, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED);
 
 		initEClass(beanDecoratorEClass, BeanDecorator.class, "BeanDecorator", !IS_ABSTRACT, !IS_INTERFACE);
@@ -795,6 +808,10 @@
 
 		initEClass(beanEventEClass, BeanEvent.class, "BeanEvent", !IS_ABSTRACT, !IS_INTERFACE);
 
+		initEClass(featureAttributeMapEntryEClass, Map.Entry.class, "FeatureAttributeMapEntry", !IS_ABSTRACT, !IS_INTERFACE);
+		initEAttribute(getFeatureAttributeMapEntry_Key(), ecorePackage.getEString(), "key", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED);
+		initEReference(getFeatureAttributeMapEntry_Value(), this.getFeatureAttributeValue(), null, "value", null, 0, 1, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED);
+
 		// Create resource
 		createResource(eNS_URI);
 	}
@@ -848,6 +865,33 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getFeatureAttributeMapEntry() {
+		return featureAttributeMapEntryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFeatureAttributeMapEntry_Key() {
+		return (EAttribute)featureAttributeMapEntryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFeatureAttributeMapEntry_Value() {
+		return (EReference)featureAttributeMapEntryEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EAttribute getEventSetDecorator_ListenerMethodsExplicit() {
 		return (EAttribute)eventSetDecoratorEClass.getEStructuralFeatures().get(2);
 	}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java
index 9f5fb1e..ebe5d06 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/EventSetDecoratorImpl.java
@@ -11,22 +11,36 @@
  *******************************************************************************/
 /*
  *  $RCSfile: EventSetDecoratorImpl.java,v $
- *  $Revision: 1.3 $  $Date: 2004/01/13 21:11:59 $ 
+ *  $Revision: 1.4 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
 
+import java.util.Collection;
+
 import java.util.*;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.*;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
+import org.eclipse.jem.internal.beaninfo.BeaninfoPackage;
+import org.eclipse.jem.internal.beaninfo.EventSetDecorator;
+import org.eclipse.jem.internal.beaninfo.MethodProxy;
+
+import org.eclipse.jem.java.JavaClass;
+import org.eclipse.jem.java.Method;
+
 import org.eclipse.jem.internal.beaninfo.*;
 import org.eclipse.jem.internal.beaninfo.adapters.BeaninfoProxyConstants;
 import org.eclipse.jem.internal.beaninfo.adapters.Utilities;
@@ -948,14 +962,10 @@
 	 * defined in a static final constants EVENTADAPTERCLASS = "eventAdapterClass";
 	 */	
 	public JavaClass getEventAdapterClass(){
-		
-		Iterator iter = getAttributes().iterator();
-		while(iter.hasNext()){
-			FeatureAttributeValue featureAttribute = (FeatureAttributeValue)iter.next();
-			if ( EventSetDecorator.EVENTADAPTERCLASS.equals(featureAttribute.getName()) ){
-				String adapterClassName = ((IStringBeanProxy)featureAttribute.getValueProxy()).stringValue();
-				return (JavaClass) Utilities.getJavaClass(adapterClassName,eResource().getResourceSet());
-			} 
+		FeatureAttributeValue featureAttribute = (FeatureAttributeValue)getAttributes().get(EventSetDecorator.EVENTADAPTERCLASS);
+		if (featureAttribute != null && featureAttribute.isSetValueProxy()) {
+			String adapterClassName = ((IStringBeanProxy)featureAttribute.getValueProxy()).stringValue();
+			return (JavaClass) Utilities.getJavaClass(adapterClassName,eResource().getResourceSet()); 
 		}
 		return null;	
 	}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeMapEntryImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeMapEntryImpl.java
new file mode 100644
index 0000000..bf4419b
--- /dev/null
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeMapEntryImpl.java
@@ -0,0 +1,334 @@
+/*******************************************************************************
+ * Copyright (c)  2001, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: FeatureAttributeMapEntryImpl.java,v $
+ *  $Revision: 1.1 $  $Date: 2004/03/08 21:25:33 $ 
+ */
+
+package org.eclipse.jem.internal.beaninfo.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.BasicEMap;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jem.internal.beaninfo.BeaninfoPackage;
+import org.eclipse.jem.internal.beaninfo.FeatureAttributeValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Feature Attribute Map Entry</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeMapEntryImpl#getTypedKey <em>Key</em>}</li>
+ *   <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeMapEntryImpl#getTypedValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FeatureAttributeMapEntryImpl extends EObjectImpl implements BasicEMap.Entry {
+	/**
+	 * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String KEY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected String key = KEY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getTypedValue() <em>Value</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected FeatureAttributeValue value = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FeatureAttributeMapEntryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return BeaninfoPackage.eINSTANCE.getFeatureAttributeMapEntry();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTypedKey() {
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypedKey(String newKey) {
+		String oldKey = key;
+		key = newKey;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__KEY, oldKey, key));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FeatureAttributeValue getTypedValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTypedValue(FeatureAttributeValue newValue, NotificationChain msgs) {
+		FeatureAttributeValue oldValue = value;
+		value = newValue;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE, oldValue, newValue);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypedValue(FeatureAttributeValue newValue) {
+		if (newValue != value) {
+			NotificationChain msgs = null;
+			if (value != null)
+				msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE, null, msgs);
+			if (newValue != null)
+				msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE, null, msgs);
+			msgs = basicSetTypedValue(newValue, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE, newValue, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
+		if (featureID >= 0) {
+			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+				case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE:
+					return basicSetTypedValue(null, msgs);
+				default:
+					return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+			}
+		}
+		return eBasicSetContainer(null, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__KEY:
+				return getTypedKey();
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE:
+				return getTypedValue();
+		}
+		return eDynamicGet(eFeature, resolve);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(EStructuralFeature eFeature, Object newValue) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__KEY:
+				setTypedKey((String)newValue);
+				return;
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE:
+				setTypedValue((FeatureAttributeValue)newValue);
+				return;
+		}
+		eDynamicSet(eFeature, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__KEY:
+				setTypedKey(KEY_EDEFAULT);
+				return;
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE:
+				setTypedValue((FeatureAttributeValue)null);
+				return;
+		}
+		eDynamicUnset(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__KEY:
+				return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_MAP_ENTRY__VALUE:
+				return value != null;
+		}
+		return eDynamicIsSet(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (key: ");
+		result.append(key);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected int hash = -1;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getHash() {
+		if (hash == -1) {
+			Object theKey = getKey();
+			hash = (theKey == null ? 0 : theKey.hashCode());
+		}
+		return hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHash(int hash) {
+		this.hash = hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getKey() {
+		return getTypedKey();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setKey(Object key) {
+		setTypedKey((String)key);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getValue() {
+		return getTypedValue();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object setValue(Object value) {
+		Object oldValue = getValue();
+		setTypedValue((FeatureAttributeValue)value);
+		return oldValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap getEMap() {
+		EObject container = eContainer();
+		return container == null ? null : (EMap)container.eGet(eContainmentFeature());
+	}
+} //FeatureAttributeMapEntryImpl
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeValueImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeValueImpl.java
index a18f4d0..a05a5c1 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeValueImpl.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureAttributeValueImpl.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: FeatureAttributeValueImpl.java,v $
- *  $Revision: 1.2 $  $Date: 2004/01/13 16:17:00 $ 
+ *  $Revision: 1.3 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
 
@@ -33,8 +33,8 @@
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeValueImpl#getName <em>Name</em>}</li>
  *   <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeValueImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeValueImpl#getValueJava <em>Value Java</em>}</li>
  *   <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureAttributeValueImpl#getValueProxy <em>Value Proxy</em>}</li>
  * </ul>
  * </p>
@@ -45,25 +45,6 @@
 
 public class FeatureAttributeValueImpl extends EObjectImpl implements FeatureAttributeValue{
 	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-	/**
 	 * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -74,6 +55,44 @@
 	protected EObject value = null;
 	
 	/**
+	 * This is true if the Value containment reference has been set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean valueESet = false;
+
+	/**
+	 * The default value of the '{@link #getValueJava() <em>Value Java</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueJava()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object VALUE_JAVA_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValueJava() <em>Value Java</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueJava()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object valueJava = VALUE_JAVA_EDEFAULT;
+
+	/**
+	 * This is true if the Value Java attribute has been set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean valueJavaESet = false;
+
+	/**
 	 * The default value of the '{@link #getValueProxy() <em>Value Proxy</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124,27 +143,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EObject getValue() {
 		return value;
 	}
@@ -157,8 +155,10 @@
 	public NotificationChain basicSetValue(EObject newValue, NotificationChain msgs) {
 		EObject oldValue = value;
 		value = newValue;
+		boolean oldValueESet = valueESet;
+		valueESet = true;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE, oldValue, newValue);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE, oldValue, newValue, !oldValueESet);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -179,8 +179,104 @@
 			msgs = basicSetValue(newValue, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE, newValue, newValue));
+		else {
+			boolean oldValueESet = valueESet;
+			valueESet = true;
+			if (eNotificationRequired())
+				eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE, newValue, newValue, !oldValueESet));
+    	}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicUnsetValue(NotificationChain msgs) {
+		EObject oldValue = value;
+		value = null;
+		boolean oldValueESet = valueESet;
+		valueESet = false;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE, oldValue, null, oldValueESet);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void unsetValue() {
+		if (value != null) {
+			NotificationChain msgs = null;
+			msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE, null, msgs);
+			msgs = basicUnsetValue(msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else {
+			boolean oldValueESet = valueESet;
+			valueESet = false;
+			if (eNotificationRequired())
+				eNotify(new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE, null, null, oldValueESet));
+    	}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSetValue() {
+		return valueESet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getValueJava() {
+		return valueJava;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValueJava(Object newValueJava) {
+		Object oldValueJava = valueJava;
+		valueJava = newValueJava;
+		boolean oldValueJavaESet = valueJavaESet;
+		valueJavaESet = true;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA, oldValueJava, valueJava, !oldValueJavaESet));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void unsetValueJava() {
+		Object oldValueJava = valueJava;
+		boolean oldValueJavaESet = valueJavaESet;
+		valueJava = VALUE_JAVA_EDEFAULT;
+		valueJavaESet = false;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA, oldValueJava, VALUE_JAVA_EDEFAULT, oldValueJavaESet));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSetValueJava() {
+		return valueJavaESet;
 	}
 
 	/**
@@ -192,7 +288,7 @@
 		if (featureID >= 0) {
 			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
 				case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE:
-					return basicSetValue(null, msgs);
+					return basicUnsetValue(msgs);
 				default:
 					return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
 			}
@@ -207,10 +303,10 @@
 	 */
 	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
 		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__NAME:
-				return getName();
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE:
 				return getValue();
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA:
+				return getValueJava();
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_PROXY:
 				return getValueProxy();
 		}
@@ -224,12 +320,12 @@
 	 */
 	public void eSet(EStructuralFeature eFeature, Object newValue) {
 		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__NAME:
-				setName((String)newValue);
-				return;
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE:
 				setValue((EObject)newValue);
 				return;
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA:
+				setValueJava((Object)newValue);
+				return;
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_PROXY:
 				setValueProxy((Object)newValue);
 				return;
@@ -244,11 +340,11 @@
 	 */
 	public void eUnset(EStructuralFeature eFeature) {
 		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE:
-				setValue((EObject)null);
+				unsetValue();
+				return;
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA:
+				unsetValueJava();
 				return;
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_PROXY:
 				unsetValueProxy();
@@ -264,10 +360,10 @@
 	 */
 	public boolean eIsSet(EStructuralFeature eFeature) {
 		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE:
-				return value != null;
+				return isSetValue();
+			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_JAVA:
+				return isSetValueJava();
 			case BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_PROXY:
 				return isSetValueProxy();
 		}
@@ -283,8 +379,8 @@
 		if (eIsProxy()) return super.toString();
 
 		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
+		result.append(" (valueJava: ");
+		if (valueJavaESet) result.append(valueJava); else result.append("<unset>");
 		result.append(", valueProxy: ");
 		if (valueProxyESet) result.append(valueProxy); else result.append("<unset>");
 		result.append(')');
@@ -300,12 +396,18 @@
 		return valueProxy;
 	}
 
+	public void setValueProxy(Object newValueProxy) {
+		unsetValue();
+		unsetValueJava();
+		setValueProxyGen(newValueProxy);
+	}
+	
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setValueProxy(Object newValueProxy) {
+	public void setValueProxyGen(Object newValueProxy) {
 		Object oldValueProxy = valueProxy;
 		valueProxy = newValueProxy;
 		boolean oldValueProxyESet = valueProxyESet;
@@ -314,12 +416,20 @@
 			eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_ATTRIBUTE_VALUE__VALUE_PROXY, oldValueProxy, valueProxy, !oldValueProxyESet));
 	}
 
+	public void unsetValueProxy() {
+		if (isSetValueProxy()) {
+			unsetValue();
+			unsetValueJava();
+		}
+		unsetValueProxyGen();
+	}
+	
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void unsetValueProxy() {
+	public void unsetValueProxyGen() {
 		Object oldValueProxy = valueProxy;
 		boolean oldValueProxyESet = valueProxyESet;
 		valueProxy = VALUE_PROXY_EDEFAULT;
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureDecoratorImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureDecoratorImpl.java
index 93a74ff..8a5d83f 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureDecoratorImpl.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/FeatureDecoratorImpl.java
@@ -11,16 +11,16 @@
  *******************************************************************************/
 /*
  *  $RCSfile: FeatureDecoratorImpl.java,v $
- *  $Revision: 1.1 $  $Date: 2003/10/27 17:17:59 $ 
+ *  $Revision: 1.2 $  $Date: 2004/03/08 21:25:33 $ 
  */
 
 
 import java.util.Collection;
-import java.util.List;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EModelElement;
 import org.eclipse.emf.ecore.ENamedElement;
@@ -29,7 +29,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.EAnnotationImpl;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import org.eclipse.jem.internal.beaninfo.BeaninfoFactory;
@@ -284,14 +284,14 @@
 
 
 	/**
-	 * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' containment reference list.
+	 * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' map.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #getAttributes()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList attributes = null;
+	protected EMap attributes = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -317,11 +317,11 @@
 		return proxy != null ? proxy.isValid() : false;
 	}
 			
-	public EList getAttributes() {
+	public EMap getAttributes() {
 		if (!isAttributesExplicit()) {
 			if (validProxy(fFeatureProxy) && !retrievedAttributes) {
 				retrievedAttributes = true;
-				List attribs = this.getAttributesGen();				
+				EMap attribs = this.getAttributesGen();				
 				
 				IMethodProxy getValue = BeaninfoProxyConstants.getConstants(fFeatureProxy.getProxyFactoryRegistry()).getValueProxy();
 				try {				
@@ -360,12 +360,17 @@
 								} 
 
 							} else {
-								// Create the entry, which is FeatureAttribute with the key
-								// being the attribute name and the value being the (as a proxy) being the value.
-								FeatureAttributeValue fv = BeaninfoFactory.eINSTANCE.createFeatureAttributeValue();
-								fv.setName(attrName.stringValue());
+								// See if entry already exists, if not create. If it does, and there wasn't a value proxy
+								// previously set, then ignore it (because came from an override). If previously set, then
+								// set with new one.
+								String key = attrName.stringValue();
+								FeatureAttributeValue fv = (FeatureAttributeValue) attribs.get(key);
+								if (fv == null)
+									fv = BeaninfoFactory.eINSTANCE.createFeatureAttributeValue();
+								else if (!fv.isSetValueProxy())
+									continue;
 								fv.setValueProxy(attrValue);
-								attribs.add(fv);
+								attribs.put(key, fv);
 							}
 						} catch (ThrowableProxy e) {
 						}
@@ -827,9 +832,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList getAttributesGen() {
+	public EMap getAttributesGen() {
 		if (attributes == null) {
-			attributes = new EObjectContainmentEList(FeatureAttributeValue.class, this, BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES);
+			attributes = new EcoreEMap(BeaninfoPackage.eINSTANCE.getFeatureAttributeMapEntry(), FeatureAttributeMapEntryImpl.class, this, BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES);
 		}
 		return attributes;
 	}
diff --git a/plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore b/plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore
index 6720cda..d37daec 100644
--- a/plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore
+++ b/plugins/org.eclipse.jem.beaninfo/model/beaninfo.ecore
@@ -31,14 +31,27 @@
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
-        eType="#//FeatureAttributeValue" containment="true"/>
+        eType="#//FeatureAttributeMapEntry" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FeatureAttributeValue">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="ecore:EClass ../../org.eclipse.emf.ecore/src/model/Ecore.ecore#//EObject"
-        containment="true"/>
+        unsettable="true" containment="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This is the value as an EObject. This is used to return typically the IJavaInstance representing the value."/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueJava" eType="ecore:EDataType ../../org.eclipse.emf.ecore/src/model/Ecore.ecore#//EJavaObject"
+        transient="true" unsettable="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This is where the value is just a java object. Not an EObject. Sometimes it is easier to have this instead. This attribute is transient and won't be serialized."/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueProxy" eType="ecore:EDataType ../../org.eclipse.emf.ecore/src/model/Ecore.ecore#//EJavaObject"
-        transient="true" unsettable="true"/>
+        transient="true" unsettable="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="This is the proxy of the value from a BeanInfo on the remote vm. It is typed to EJavaObject because we don't want to prereq the java instanctiation stuff. It is transient."/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BeanDecorator" eSuperTypes="#//FeatureDecorator">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="mergeSuperProperties" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
@@ -166,4 +179,9 @@
       <details key="documentation" value="Event from Introspection/Reflection."/>
     </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:EReference" name="value" eType="#//FeatureAttributeValue"
+        containment="true"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/plugins/org.eclipse.jem.beaninfo/model/introspect.genmodel b/plugins/org.eclipse.jem.beaninfo/model/introspect.genmodel
index a724b14..9d22a89 100644
--- a/plugins/org.eclipse.jem.beaninfo/model/introspect.genmodel
+++ b/plugins/org.eclipse.jem.beaninfo/model/introspect.genmodel
@@ -5,7 +5,7 @@
     editDirectory="/org.eclipse.jem.beaninfo.edit/src" editorDirectory="/org.eclipse.jem.beaninfo.editor/src"
     modelPluginID="" modelName="Beaninfo" editPluginClass="org.eclipse.jem.internal.beaninfo.provider.BeaninfoEditPlugin"
     editorPluginClass="org.eclipse.jem.internal.beaninfo.presentation.BeaninfoEditorPlugin"
-    updateClasspath="false" usedGenPackages="../../org.eclipse.jem/model/javaModel.genmodel#//java ../../org.eclipse.emf.ecore/src/model/Ecore.genmodel#//ecore">
+    updateClasspath="false" usedGenPackages="../../org.eclipse.emf.ecore/src/model/Ecore.genmodel#//ecore ../../org.eclipse.jem/model/javaModel.genmodel#//java">
   <foreignModel>..\rose\introspect.mdl</foreignModel>
   <foreignModel>WorkspaceRoot</foreignModel>
   <foreignModel>../..</foreignModel>
@@ -24,8 +24,8 @@
       <genOperations ecoreOperation="beaninfo.ecore#//FeatureDecorator/getName"/>
     </genClasses>
     <genClasses ecoreClass="beaninfo.ecore#//FeatureAttributeValue">
-      <genFeatures ecoreFeature="ecore:EAttribute beaninfo.ecore#//FeatureAttributeValue/name"/>
       <genFeatures property="None" children="true" ecoreFeature="ecore:EReference beaninfo.ecore#//FeatureAttributeValue/value"/>
+      <genFeatures ecoreFeature="ecore:EAttribute beaninfo.ecore#//FeatureAttributeValue/valueJava"/>
       <genFeatures ecoreFeature="ecore:EAttribute beaninfo.ecore#//FeatureAttributeValue/valueProxy"/>
     </genClasses>
     <genClasses ecoreClass="beaninfo.ecore#//BeanDecorator">
@@ -74,5 +74,9 @@
       <genFeatures ecoreFeature="ecore:EReference beaninfo.ecore#//MethodProxy/method"/>
     </genClasses>
     <genClasses ecoreClass="beaninfo.ecore#//BeanEvent"/>
+    <genClasses ecoreClass="beaninfo.ecore#//FeatureAttributeMapEntry">
+      <genFeatures ecoreFeature="ecore:EAttribute beaninfo.ecore#//FeatureAttributeMapEntry/key"/>
+      <genFeatures property="None" children="true" ecoreFeature="ecore:EReference beaninfo.ecore#//FeatureAttributeMapEntry/value"/>
+    </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/org.eclipse.jem.beaninfo/rose/beaninfo.cat b/plugins/org.eclipse.jem.beaninfo/rose/beaninfo.cat
index c8b4e7d..a08f515 100644
--- a/plugins/org.eclipse.jem.beaninfo/rose/beaninfo.cat
+++ b/plugins/org.eclipse.jem.beaninfo/rose/beaninfo.cat
@@ -1,7 +1,7 @@
 
 (object Petal
-    version    	45
-    _written   	"Rose 7.6.0109.2314"
+    version    	47
+    _written   	"Rose 8.0.0303.1400"
     charSet    	0)
 
 (object Class_Category "beaninfo"
@@ -93,13 +93,32 @@
 	(object Class "FeatureAttributeValue"
 	    quid       	"3A799B700295"
 	    class_attributes 	(list class_attribute_list
-		(object ClassAttribute "name"
-		    quid       	"3A79CE9402A5"
-		    type       	"String")
 		(object ClassAttribute "value"
+		    attributes 	(list Attribute_Set
+			(object Attribute
+			    tool       	"Ecore"
+			    name       	"isUnsettable"
+			    value      	TRUE))
 		    quid       	"3A79CE9D038E"
+		    documentation 	"This is the value as an EObject. This is used to return typically the IJavaInstance representing the value."
 		    type       	"EObject"
-		    quidu      	"3C4F1C860123")
+		    quidu      	"3C4F1C860123"
+		    exportControl 	"Public")
+		(object ClassAttribute "valueJava"
+		    attributes 	(list Attribute_Set
+			(object Attribute
+			    tool       	"Ecore"
+			    name       	"isTransient"
+			    value      	TRUE)
+			(object Attribute
+			    tool       	"Ecore"
+			    name       	"isUnsettable"
+			    value      	TRUE))
+		    quid       	"404CC90D031C"
+		    documentation 	"This is where the value is just a java object. Not an EObject. Sometimes it is easier to have this instead. This attribute is transient and won't be serialized."
+		    type       	"EJavaObject"
+		    quidu      	"3ACDF8200182"
+		    exportControl 	"Public")
 		(object ClassAttribute "valueProxy"
 		    attributes 	(list Attribute_Set
 			(object Attribute
@@ -108,15 +127,13 @@
 			    value      	TRUE)
 			(object Attribute
 			    tool       	"Ecore"
-			    name       	"isVolatile"
-			    value      	FALSE)
-			(object Attribute
-			    tool       	"Ecore"
 			    name       	"isUnsettable"
 			    value      	TRUE))
 		    quid       	"3C9A488D019C"
+		    documentation 	"This is the proxy of the value from a BeanInfo on the remote vm. It is typed to EJavaObject because we don't want to prereq the java instanctiation stuff. It is transient."
 		    type       	"EJavaObject"
-		    quidu      	"3ACDF8200182")))
+		    quidu      	"3ACDF8200182"
+		    exportControl 	"Public")))
 	(object Class "BeanDecorator"
 	    quid       	"3A79D0DF02D1"
 	    superclasses 	(list inheritance_relationship_list
@@ -313,6 +330,14 @@
 		    quid       	"3CB09CB6038D"
 		    supplier   	"Logical View::java::JavaEvent"
 		    quidu      	"3C62FAF103C8")))
+	(object Class "FeatureAttributeMapEntry"
+	    quid       	"404CC85501F5"
+	    stereotype 	"MapEntry"
+	    class_attributes 	(list class_attribute_list
+		(object ClassAttribute "key"
+		    quid       	"404CC8B70304"
+		    type       	"String"
+		    exportControl 	"Public")))
 	(object Association "$UNNAMED$0"
 	    quid       	"3A79CF6C0378"
 	    roles      	(list role_list
@@ -320,8 +345,8 @@
 		    attributes 	(list Attribute_Set)
 		    quid       	"3A79CF6E00BE"
 		    label      	"attributes"
-		    supplier   	"Logical View::beaninfo::FeatureAttributeValue"
-		    quidu      	"3A799B700295"
+		    supplier   	"Logical View::beaninfo::FeatureAttributeMapEntry"
+		    quidu      	"404CC85501F5"
 		    client_cardinality 	(value cardinality "0..n")
 		    Containment 	"By Value"
 		    is_navigable 	TRUE)
@@ -532,7 +557,23 @@
 		(object Role "$UNNAMED$27"
 		    quid       	"3C9A6EDE0205"
 		    supplier   	"Logical View::beaninfo::ParameterDecorator"
-		    quidu      	"3A79D9C20304"))))
+		    quidu      	"3A79D9C20304")))
+	(object Association "$UNNAMED$28"
+	    quid       	"404CCA810280"
+	    roles      	(list role_list
+		(object Role "value"
+		    quid       	"404CCA830175"
+		    label      	"value"
+		    supplier   	"Logical View::beaninfo::FeatureAttributeValue"
+		    quidu      	"3A799B700295"
+		    client_cardinality 	(value cardinality "0..1")
+		    Containment 	"By Value"
+		    is_navigable 	TRUE)
+		(object Role "$UNNAMED$29"
+		    quid       	"404CCA83017F"
+		    supplier   	"Logical View::beaninfo::FeatureAttributeMapEntry"
+		    quidu      	"404CC85501F5"
+		    is_aggregate 	TRUE))))
     logical_presentations 	(list unit_reference_list
 	(object ClassDiagram "Main"
 	    quid       	"3A799AC8038E"
@@ -540,57 +581,10 @@
 	    zoom       	100
 	    max_height 	28350
 	    max_width  	21600
-	    origin_x   	0
-	    origin_y   	425
+	    origin_x   	4140
+	    origin_y   	0
 	    items      	(list diagram_item_list
-		(object ClassView "Class" "Logical View::beaninfo::FeatureAttributeValue" @1
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(2032, 400)
-		    font       	(object Font
-			size       	10
-			face       	"Arial"
-			bold       	FALSE
-			italics    	FALSE
-			underline  	FALSE
-			strike     	FALSE
-			color      	0
-			default_color 	TRUE)
-		    label      	(object ItemLabel
-			Parent_View 	@1
-			location   	(1787, 282)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	490
-			justify    	0
-			label      	"FeatureAttributeValue")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13434879
-		    quidu      	"3A799B700295"
-		    compartment 	(object Compartment
-			Parent_View 	@1
-			location   	(1787, 338)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	4
-			max_width  	488)
-		    width      	508
-		    height     	258
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::beaninfo::FeatureDecorator" @2
+		(object ClassView "Class" "Logical View::beaninfo::FeatureDecorator" @1
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -606,7 +600,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@2
+			Parent_View 	@1
 			location   	(740, 387)
 			fill_color 	13434879
 			nlines     	1
@@ -618,7 +612,7 @@
 		    fill_color 	13434879
 		    quidu      	"3A799B3E01E9"
 		    compartment 	(object Compartment
-			Parent_View 	@2
+			Parent_View 	@1
 			location   	(740, 443)
 			font       	(object Font
 			    size       	10
@@ -638,95 +632,7 @@
 		    height     	528
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$0" @3
-		    location   	(1683, 636)
-		    font       	(object Font
-			size       	10
-			face       	"Arial"
-			bold       	FALSE
-			italics    	FALSE
-			underline  	FALSE
-			strike     	FALSE
-			color      	0
-			default_color 	TRUE)
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    quidu      	"3A79CF6C0378"
-		    roleview_list 	(list RoleViews
-			(object RoleView "attributes" @4
-			    Parent_View 	@3
-			    location   	(627, 172)
-			    font       	(object Font
-				size       	10
-				face       	"Arial"
-				bold       	FALSE
-				italics    	FALSE
-				underline  	FALSE
-				strike     	FALSE
-				color      	0
-				default_color 	TRUE)
-			    label      	(object SegLabel @5
-				Parent_View 	@4
-				location   	(1737, 549)
-				font       	(object Font
-				    size       	10
-				    face       	"Arial"
-				    bold       	FALSE
-				    italics    	FALSE
-				    underline  	FALSE
-				    strike     	FALSE
-				    color      	0
-				    default_color 	TRUE)
-				anchor     	1
-				anchor_loc 	1
-				nlines     	1
-				max_width  	187
-				justify    	0
-				label      	"+attributes"
-				pctDist    	0.490119
-				height     	42
-				orientation 	0)
-			    stereotype 	TRUE
-			    line_color 	3342489
-			    quidu      	"3A79CF6E00BE"
-			    client     	@3
-			    supplier   	@1
-			    line_style 	0
-			    label      	(object SegLabel @6
-				Parent_View 	@4
-				location   	(1820, 606)
-				font       	(object Font
-				    size       	10
-				    face       	"Arial"
-				    bold       	FALSE
-				    italics    	FALSE
-				    underline  	FALSE
-				    strike     	FALSE
-				    color      	0
-				    default_color 	TRUE)
-				anchor     	2
-				anchor_loc 	1
-				nlines     	1
-				max_width  	15
-				justify    	0
-				label      	"0..n"
-				pctDist    	0.695652
-				height     	53
-				orientation 	1))
-			(object RoleView "$UNNAMED$1" @7
-			    Parent_View 	@3
-			    location   	(627, 172)
-			    stereotype 	TRUE
-			    line_color 	3342489
-			    quidu      	"3A79CF6E00C8"
-			    client     	@3
-			    supplier   	@2
-			    vertices   	(list Points
-				(1683, 636)
-				(1633, 670)
-				(1413, 657))
-			    line_style 	0)))
-		(object NoteView @8
+		(object NoteView @2
 		    location   	(2208, 1648)
 		    font       	(object Font
 			size       	10
@@ -738,7 +644,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@8
+			Parent_View 	@2
 			location   	(2013, 1559)
 			fill_color 	13434879
 			nlines     	4
@@ -748,15 +654,15 @@
 		    fill_color 	13434879
 		    width      	415
 		    height     	190)
-		(object InheritTreeView "" @9
+		(object InheritTreeView "" @3
 		    location   	(1072, 998)
 		    line_color 	3342489
 		    fill_color 	13434879
-		    supplier   	@2
+		    supplier   	@1
 		    vertices   	(list Points
 			(1072, 998)
 			(1072, 904)))
-		(object NoteView @10
+		(object NoteView @4
 		    location   	(2912, 2352)
 		    font       	(object Font
 			size       	10
@@ -768,7 +674,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@10
+			Parent_View 	@4
 			location   	(2624, 2166)
 			fill_color 	13434879
 			nlines     	8
@@ -782,7 +688,7 @@
 		    fill_color 	13434879
 		    width      	600
 		    height     	385)
-		(object ClassView "Class" "Logical View::beaninfo::BeanDecorator" @11
+		(object ClassView "Class" "Logical View::beaninfo::BeanDecorator" @5
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -797,7 +703,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@11
+			Parent_View 	@5
 			location   	(34, 1226)
 			fill_color 	13434879
 			nlines     	2
@@ -809,7 +715,7 @@
 		    fill_color 	13434879
 		    quidu      	"3A79D0DF02D1"
 		    compartment 	(object Compartment
-			Parent_View 	@11
+			Parent_View 	@5
 			location   	(34, 1282)
 			font       	(object Font
 			    size       	10
@@ -829,17 +735,17 @@
 		    height     	482
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @12
+		(object InheritView "" @6
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3A79DE8E007F"
-		    client     	@11
-		    supplier   	@2
+		    client     	@5
+		    supplier   	@1
 		    line_style 	3
 		    origin_attachment 	(375, 1214)
 		    terminal_attachment 	(375, 998)
-		    drawSupplier 	@9)
-		(object ClassView "Class" "Logical View::beaninfo::PropertyDecorator" @13
+		    drawSupplier 	@3)
+		(object ClassView "Class" "Logical View::beaninfo::PropertyDecorator" @7
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -855,7 +761,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@13
+			Parent_View 	@7
 			location   	(794, 1175)
 			fill_color 	13434879
 			nlines     	1
@@ -867,7 +773,7 @@
 		    fill_color 	13434879
 		    quidu      	"3A79DA68010E"
 		    compartment 	(object Compartment
-			Parent_View 	@13
+			Parent_View 	@7
 			location   	(794, 1231)
 			font       	(object Font
 			    size       	10
@@ -887,17 +793,17 @@
 		    height     	392
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @14
+		(object InheritView "" @8
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3A79DE9702BD"
-		    client     	@13
-		    supplier   	@2
+		    client     	@7
+		    supplier   	@1
 		    line_style 	3
 		    origin_attachment 	(1076, 1163)
 		    terminal_attachment 	(1076, 998)
-		    drawSupplier 	@9)
-		(object ClassView "Class" "Logical View::beaninfo::IndexedPropertyDecorator" @15
+		    drawSupplier 	@3)
+		(object ClassView "Class" "Logical View::beaninfo::IndexedPropertyDecorator" @9
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -912,7 +818,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@15
+			Parent_View 	@9
 			location   	(626, 2219)
 			fill_color 	13434879
 			nlines     	2
@@ -927,14 +833,14 @@
 		    height     	160
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @16
+		(object InheritView "" @10
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3A79DE840388"
-		    client     	@15
-		    supplier   	@13
+		    client     	@9
+		    supplier   	@7
 		    line_style 	0)
-		(object ClassView "Class" "Logical View::java::JavaClass" @17
+		(object ClassView "Class" "Logical View::java::JavaClass" @11
 		    ShowCompartmentStereotypes 	TRUE
 		    SuppressAttribute 	TRUE
 		    location   	(304, 1936)
@@ -948,7 +854,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@17
+			Parent_View 	@11
 			location   	(193, 1867)
 			fill_color 	13434879
 			nlines     	1
@@ -963,7 +869,7 @@
 		    height     	160
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$2" @18
+		(object AssociationViewNew "$UNNAMED$2" @12
 		    location   	(335, 1776)
 		    font       	(object Font
 			size       	10
@@ -978,8 +884,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79D1350248"
 		    roleview_list 	(list RoleViews
-			(object RoleView "customizerClass" @19
-			    Parent_View 	@18
+			(object RoleView "customizerClass" @13
+			    Parent_View 	@12
 			    location   	(95, 880)
 			    font       	(object Font
 				size       	10
@@ -990,8 +896,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @20
-				Parent_View 	@19
+			    label      	(object SegLabel @14
+				Parent_View 	@13
 				location   	(329, 1826)
 				font       	(object Font
 				    size       	10
@@ -1014,11 +920,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D13601D2"
-			    client     	@18
-			    supplier   	@17
+			    client     	@12
+			    supplier   	@11
 			    line_style 	0
-			    label      	(object SegLabel @21
-				Parent_View 	@19
+			    label      	(object SegLabel @15
+				Parent_View 	@13
 				location   	(342, 1801)
 				font       	(object Font
 				    size       	10
@@ -1038,16 +944,16 @@
 				pctDist    	0.284188
 				height     	12
 				orientation 	0))
-			(object RoleView "$UNNAMED$3" @22
-			    Parent_View 	@18
+			(object RoleView "$UNNAMED$3" @16
+			    Parent_View 	@12
 			    location   	(95, 880)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D13601E6"
-			    client     	@18
-			    supplier   	@11
+			    client     	@12
+			    supplier   	@5
 			    line_style 	0)))
-		(object AssociationViewNew "$UNNAMED$14" @23
+		(object AssociationViewNew "$UNNAMED$14" @17
 		    location   	(616, 1705)
 		    font       	(object Font
 			size       	10
@@ -1062,8 +968,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79DB0B0339"
 		    roleview_list 	(list RoleViews
-			(object RoleView "propertyEditorClass" @24
-			    Parent_View 	@23
+			(object RoleView "propertyEditorClass" @18
+			    Parent_View 	@17
 			    location   	(-152, 809)
 			    font       	(object Font
 				size       	10
@@ -1074,8 +980,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @25
-				Parent_View 	@24
+			    label      	(object SegLabel @19
+				Parent_View 	@18
 				location   	(597, 1751)
 				font       	(object Font
 				    size       	10
@@ -1098,11 +1004,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DB0E013F"
-			    client     	@23
-			    supplier   	@17
+			    client     	@17
+			    supplier   	@11
 			    line_style 	0
-			    label      	(object SegLabel @26
-				Parent_View 	@24
+			    label      	(object SegLabel @20
+				Parent_View 	@18
 				location   	(789, 1733)
 				font       	(object Font
 				    size       	10
@@ -1122,16 +1028,16 @@
 				pctDist    	-0.490182
 				height     	126
 				orientation 	0))
-			(object RoleView "$UNNAMED$15" @27
-			    Parent_View 	@23
+			(object RoleView "$UNNAMED$15" @21
+			    Parent_View 	@17
 			    location   	(-152, 809)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DB0E0171"
-			    client     	@23
-			    supplier   	@13
+			    client     	@17
+			    supplier   	@7
 			    line_style 	0)))
-		(object ClassView "Class" "Logical View::java::Method" @28
+		(object ClassView "Class" "Logical View::java::Method" @22
 		    ShowCompartmentStereotypes 	TRUE
 		    SuppressAttribute 	TRUE
 		    location   	(1664, 2096)
@@ -1145,7 +1051,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@28
+			Parent_View 	@22
 			location   	(1581, 2027)
 			fill_color 	13434879
 			nlines     	1
@@ -1160,7 +1066,7 @@
 		    height     	160
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$16" @29
+		(object AssociationViewNew "$UNNAMED$16" @23
 		    location   	(1040, 1975)
 		    font       	(object Font
 			size       	10
@@ -1175,8 +1081,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79DBBD0000"
 		    roleview_list 	(list RoleViews
-			(object RoleView "readMethod" @30
-			    Parent_View 	@29
+			(object RoleView "readMethod" @24
+			    Parent_View 	@23
 			    location   	(272, 1079)
 			    font       	(object Font
 				size       	10
@@ -1187,8 +1093,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @31
-				Parent_View 	@30
+			    label      	(object SegLabel @25
+				Parent_View 	@24
 				location   	(1335, 2039)
 				font       	(object Font
 				    size       	10
@@ -1211,11 +1117,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DBBF0071"
-			    client     	@29
-			    supplier   	@28
+			    client     	@23
+			    supplier   	@22
 			    line_style 	0
-			    label      	(object SegLabel @32
-				Parent_View 	@30
+			    label      	(object SegLabel @26
+				Parent_View 	@24
 				location   	(1490, 2135)
 				font       	(object Font
 				    size       	10
@@ -1235,20 +1141,20 @@
 				pctDist    	0.873365
 				height     	72
 				orientation 	1))
-			(object RoleView "$UNNAMED$17" @33
-			    Parent_View 	@29
+			(object RoleView "$UNNAMED$17" @27
+			    Parent_View 	@23
 			    location   	(272, 1079)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DBBF0085"
-			    client     	@29
-			    supplier   	@13
+			    client     	@23
+			    supplier   	@7
 			    vertices   	(list Points
 				(1040, 1975)
 				(911, 1950)
 				(1027, 1556))
 			    line_style 	0)))
-		(object AssociationViewNew "$UNNAMED$18" @34
+		(object AssociationViewNew "$UNNAMED$18" @28
 		    location   	(1036, 2107)
 		    font       	(object Font
 			size       	10
@@ -1263,8 +1169,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79DBDF02D0"
 		    roleview_list 	(list RoleViews
-			(object RoleView "writeMethod" @35
-			    Parent_View 	@34
+			(object RoleView "writeMethod" @29
+			    Parent_View 	@28
 			    location   	(268, 1211)
 			    font       	(object Font
 				size       	10
@@ -1275,8 +1181,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @36
-				Parent_View 	@35
+			    label      	(object SegLabel @30
+				Parent_View 	@29
 				location   	(1336, 2090)
 				font       	(object Font
 				    size       	10
@@ -1299,11 +1205,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DBE101F7"
-			    client     	@34
-			    supplier   	@28
+			    client     	@28
+			    supplier   	@22
 			    line_style 	0
-			    label      	(object SegLabel @37
-				Parent_View 	@35
+			    label      	(object SegLabel @31
+				Parent_View 	@29
 				location   	(1517, 2056)
 				font       	(object Font
 				    size       	10
@@ -1323,20 +1229,20 @@
 				pctDist    	0.901632
 				height     	43
 				orientation 	0))
-			(object RoleView "$UNNAMED$19" @38
-			    Parent_View 	@34
+			(object RoleView "$UNNAMED$19" @32
+			    Parent_View 	@28
 			    location   	(268, 1211)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DBE1020B"
-			    client     	@34
-			    supplier   	@13
+			    client     	@28
+			    supplier   	@7
 			    vertices   	(list Points
 				(1036, 2107)
 				(976, 2108)
 				(1058, 1556))
 			    line_style 	0)))
-		(object AssociationViewNew "$UNNAMED$20" @39
+		(object AssociationViewNew "$UNNAMED$20" @33
 		    location   	(1316, 2288)
 		    font       	(object Font
 			size       	10
@@ -1351,8 +1257,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79DE34036F"
 		    roleview_list 	(list RoleViews
-			(object RoleView "indexedReadMethod" @40
-			    Parent_View 	@39
+			(object RoleView "indexedReadMethod" @34
+			    Parent_View 	@33
 			    location   	(564, 400)
 			    font       	(object Font
 				size       	10
@@ -1363,8 +1269,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @41
-				Parent_View 	@40
+			    label      	(object SegLabel @35
+				Parent_View 	@34
 				location   	(1428, 2270)
 				font       	(object Font
 				    size       	10
@@ -1387,15 +1293,15 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DE3503CA"
-			    client     	@39
-			    supplier   	@28
+			    client     	@33
+			    supplier   	@22
 			    vertices   	(list Points
 				(1316, 2288)
 				(1376, 2288)
 				(1571, 2157))
 			    line_style 	0
-			    label      	(object SegLabel @42
-				Parent_View 	@40
+			    label      	(object SegLabel @36
+				Parent_View 	@34
 				location   	(1246, 2237)
 				font       	(object Font
 				    size       	10
@@ -1415,16 +1321,16 @@
 				pctDist    	-0.240775
 				height     	52
 				orientation 	0))
-			(object RoleView "$UNNAMED$21" @43
-			    Parent_View 	@39
+			(object RoleView "$UNNAMED$21" @37
+			    Parent_View 	@33
 			    location   	(564, 400)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DE3503DE"
-			    client     	@39
-			    supplier   	@15
+			    client     	@33
+			    supplier   	@9
 			    line_style 	0)))
-		(object AssociationViewNew "$UNNAMED$22" @44
+		(object AssociationViewNew "$UNNAMED$22" @38
 		    location   	(1474, 2363)
 		    font       	(object Font
 			size       	10
@@ -1439,8 +1345,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79DE540180"
 		    roleview_list 	(list RoleViews
-			(object RoleView "indexedWriteMethod" @45
-			    Parent_View 	@44
+			(object RoleView "indexedWriteMethod" @39
+			    Parent_View 	@38
 			    location   	(722, 475)
 			    font       	(object Font
 				size       	10
@@ -1451,8 +1357,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @46
-				Parent_View 	@45
+			    label      	(object SegLabel @40
+				Parent_View 	@39
 				location   	(1598, 2356)
 				font       	(object Font
 				    size       	10
@@ -1475,15 +1381,15 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DE5503D0"
-			    client     	@44
-			    supplier   	@28
+			    client     	@38
+			    supplier   	@22
 			    vertices   	(list Points
 				(1474, 2363)
 				(1631, 2383)
 				(1654, 2176))
 			    line_style 	0
-			    label      	(object SegLabel @47
-				Parent_View 	@45
+			    label      	(object SegLabel @41
+				Parent_View 	@39
 				location   	(1640, 2293)
 				font       	(object Font
 				    size       	10
@@ -1503,16 +1409,16 @@
 				pctDist    	0.681972
 				height     	2
 				orientation 	0))
-			(object RoleView "$UNNAMED$23" @48
-			    Parent_View 	@44
+			(object RoleView "$UNNAMED$23" @42
+			    Parent_View 	@38
 			    location   	(722, 475)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DE5503E4"
-			    client     	@44
-			    supplier   	@15
+			    client     	@38
+			    supplier   	@9
 			    line_style 	0)))
-		(object ClassView "Class" "Logical View::beaninfo::EventSetDecorator" @49
+		(object ClassView "Class" "Logical View::beaninfo::EventSetDecorator" @43
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1527,7 +1433,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@49
+			Parent_View 	@43
 			location   	(1449, 1204)
 			fill_color 	13434879
 			nlines     	2
@@ -1539,7 +1445,7 @@
 		    fill_color 	13434879
 		    quidu      	"3A79D1D2004F"
 		    compartment 	(object Compartment
-			Parent_View 	@49
+			Parent_View 	@43
 			location   	(1449, 1260)
 			font       	(object Font
 			    size       	10
@@ -1559,7 +1465,7 @@
 		    height     	302
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$8" @50
+		(object AssociationViewNew "$UNNAMED$8" @44
 		    location   	(1011, 1767)
 		    font       	(object Font
 			size       	10
@@ -1574,8 +1480,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79D4A80158"
 		    roleview_list 	(list RoleViews
-			(object RoleView "listenerType" @51
-			    Parent_View 	@50
+			(object RoleView "listenerType" @45
+			    Parent_View 	@44
 			    location   	(147, 871)
 			    font       	(object Font
 				size       	10
@@ -1586,8 +1492,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @52
-				Parent_View 	@51
+			    label      	(object SegLabel @46
+				Parent_View 	@45
 				location   	(618, 1892)
 				font       	(object Font
 				    size       	10
@@ -1610,11 +1516,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D4AA038B"
-			    client     	@50
-			    supplier   	@17
+			    client     	@44
+			    supplier   	@11
 			    line_style 	0
-			    label      	(object SegLabel @53
-				Parent_View 	@51
+			    label      	(object SegLabel @47
+				Parent_View 	@45
 				location   	(583, 1938)
 				font       	(object Font
 				    size       	10
@@ -1634,20 +1540,20 @@
 				pctDist    	0.756398
 				height     	68
 				orientation 	0))
-			(object RoleView "$UNNAMED$9" @54
-			    Parent_View 	@50
+			(object RoleView "$UNNAMED$9" @48
+			    Parent_View 	@44
 			    location   	(147, 871)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D4AA03B4"
-			    client     	@50
-			    supplier   	@49
+			    client     	@44
+			    supplier   	@43
 			    vertices   	(list Points
 				(1011, 1767)
 				(1215, 1718)
 				(1538, 1495))
 			    line_style 	0)))
-		(object AssociationViewNew "$UNNAMED$4" @55
+		(object AssociationViewNew "$UNNAMED$4" @49
 		    location   	(1434, 1727)
 		    font       	(object Font
 			size       	10
@@ -1662,8 +1568,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79D3080128"
 		    roleview_list 	(list RoleViews
-			(object RoleView "addListenerMethod" @56
-			    Parent_View 	@55
+			(object RoleView "addListenerMethod" @50
+			    Parent_View 	@49
 			    location   	(570, 831)
 			    font       	(object Font
 				size       	10
@@ -1674,8 +1580,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @57
-				Parent_View 	@56
+			    label      	(object SegLabel @51
+				Parent_View 	@50
 				location   	(1386, 1903)
 				font       	(object Font
 				    size       	10
@@ -1698,11 +1604,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D3090346"
-			    client     	@55
-			    supplier   	@28
+			    client     	@49
+			    supplier   	@22
 			    line_style 	0
-			    label      	(object SegLabel @58
-				Parent_View 	@56
+			    label      	(object SegLabel @52
+				Parent_View 	@50
 				location   	(1599, 1902)
 				font       	(object Font
 				    size       	10
@@ -1722,20 +1628,20 @@
 				pctDist    	0.694068
 				height     	48
 				orientation 	0))
-			(object RoleView "$UNNAMED$5" @59
-			    Parent_View 	@55
+			(object RoleView "$UNNAMED$5" @53
+			    Parent_View 	@49
 			    location   	(570, 831)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D309035A"
-			    client     	@55
-			    supplier   	@49
+			    client     	@49
+			    supplier   	@43
 			    vertices   	(list Points
 				(1434, 1727)
 				(1375, 1631)
 				(1555, 1495))
 			    line_style 	0)))
-		(object AssociationViewNew "$UNNAMED$10" @60
+		(object AssociationViewNew "$UNNAMED$10" @54
 		    location   	(1706, 1755)
 		    font       	(object Font
 			size       	10
@@ -1750,8 +1656,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79D4DF020B"
 		    roleview_list 	(list RoleViews
-			(object RoleView "removeListenerMethod" @61
-			    Parent_View 	@60
+			(object RoleView "removeListenerMethod" @55
+			    Parent_View 	@54
 			    location   	(842, 859)
 			    font       	(object Font
 				size       	10
@@ -1762,8 +1668,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @62
-				Parent_View 	@61
+			    label      	(object SegLabel @56
+				Parent_View 	@55
 				location   	(1690, 1762)
 				font       	(object Font
 				    size       	10
@@ -1786,11 +1692,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D4E10395"
-			    client     	@60
-			    supplier   	@28
+			    client     	@54
+			    supplier   	@22
 			    line_style 	0
-			    label      	(object SegLabel @63
-				Parent_View 	@61
+			    label      	(object SegLabel @57
+				Parent_View 	@55
 				location   	(1730, 1995)
 				font       	(object Font
 				    size       	10
@@ -1810,26 +1716,26 @@
 				pctDist    	0.900000
 				height     	54
 				orientation 	0))
-			(object RoleView "$UNNAMED$11" @64
-			    Parent_View 	@60
+			(object RoleView "$UNNAMED$11" @58
+			    Parent_View 	@54
 			    location   	(842, 859)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D4E103A9"
-			    client     	@60
-			    supplier   	@49
+			    client     	@54
+			    supplier   	@43
 			    line_style 	0)))
-		(object InheritView "" @65
+		(object InheritView "" @59
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3A79DEA200EC"
-		    client     	@49
-		    supplier   	@2
+		    client     	@43
+		    supplier   	@1
 		    line_style 	3
 		    origin_attachment 	(1763, 1192)
 		    terminal_attachment 	(1763, 998)
-		    drawSupplier 	@9)
-		(object ClassView "Class" "Logical View::java::Method" @66
+		    drawSupplier 	@3)
+		(object ClassView "Class" "Logical View::java::Method" @60
 		    ShowCompartmentStereotypes 	TRUE
 		    SuppressAttribute 	TRUE
 		    IncludeAttribute 	TRUE
@@ -1844,7 +1750,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@66
+			Parent_View 	@60
 			location   	(2237, 2635)
 			fill_color 	13434879
 			nlines     	1
@@ -1859,7 +1765,7 @@
 		    height     	160
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::beaninfo::MethodProxy" @67
+		(object ClassView "Class" "Logical View::beaninfo::MethodProxy" @61
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1874,7 +1780,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@67
+			Parent_View 	@61
 			location   	(2230, 2244)
 			fill_color 	13434879
 			nlines     	2
@@ -1889,7 +1795,7 @@
 		    height     	175
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$6" @68
+		(object AssociationViewNew "$UNNAMED$6" @62
 		    location   	(2083, 1863)
 		    font       	(object Font
 			size       	10
@@ -1904,8 +1810,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79D3E10364"
 		    roleview_list 	(list RoleViews
-			(object RoleView "listenerMethods" @69
-			    Parent_View 	@68
+			(object RoleView "listenerMethods" @63
+			    Parent_View 	@62
 			    location   	(1219, 967)
 			    font       	(object Font
 				size       	10
@@ -1916,8 +1822,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @70
-				Parent_View 	@69
+			    label      	(object SegLabel @64
+				Parent_View 	@63
 				location   	(2172, 2189)
 				font       	(object Font
 				    size       	10
@@ -1940,11 +1846,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D3E6007D"
-			    client     	@68
-			    supplier   	@67
+			    client     	@62
+			    supplier   	@61
 			    line_style 	0
-			    label      	(object SegLabel @71
-				Parent_View 	@69
+			    label      	(object SegLabel @65
+				Parent_View 	@63
 				location   	(2254, 2134)
 				font       	(object Font
 				    size       	10
@@ -1964,28 +1870,28 @@
 				pctDist    	0.732313
 				height     	2
 				orientation 	0))
-			(object RoleView "$UNNAMED$7" @72
-			    Parent_View 	@68
+			(object RoleView "$UNNAMED$7" @66
+			    Parent_View 	@62
 			    location   	(1219, 967)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79D3E60091"
-			    client     	@68
-			    supplier   	@49
+			    client     	@62
+			    supplier   	@43
 			    line_style 	0)))
-		(object AttachView "" @73
+		(object AttachView "" @67
 		    stereotype 	TRUE
 		    line_color 	3342489
-		    client     	@8
-		    supplier   	@68
+		    client     	@2
+		    supplier   	@62
 		    line_style 	0)
-		(object AttachView "" @74
+		(object AttachView "" @68
 		    stereotype 	TRUE
 		    line_color 	3342489
-		    client     	@10
-		    supplier   	@67
+		    client     	@4
+		    supplier   	@61
 		    line_style 	0)
-		(object AssociationViewNew "$UNNAMED$24" @75
+		(object AssociationViewNew "$UNNAMED$24" @69
 		    location   	(2342, 2515)
 		    font       	(object Font
 			size       	10
@@ -2000,8 +1906,8 @@
 		    line_color 	3342489
 		    quidu      	"3A89865B01D5"
 		    roleview_list 	(list RoleViews
-			(object RoleView "method" @76
-			    Parent_View 	@75
+			(object RoleView "method" @70
+			    Parent_View 	@69
 			    location   	(38, 595)
 			    font       	(object Font
 				size       	10
@@ -2012,8 +1918,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @77
-				Parent_View 	@76
+			    label      	(object SegLabel @71
+				Parent_View 	@70
 				location   	(2297, 2552)
 				font       	(object Font
 				    size       	10
@@ -2036,11 +1942,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A89865C01AE"
-			    client     	@75
-			    supplier   	@66
+			    client     	@69
+			    supplier   	@60
 			    line_style 	0
-			    label      	(object SegLabel @78
-				Parent_View 	@76
+			    label      	(object SegLabel @72
+				Parent_View 	@70
 				location   	(2384, 2618)
 				font       	(object Font
 				    size       	10
@@ -2060,16 +1966,16 @@
 				pctDist    	0.900000
 				height     	54
 				orientation 	0))
-			(object RoleView "$UNNAMED$25" @79
-			    Parent_View 	@75
+			(object RoleView "$UNNAMED$25" @73
+			    Parent_View 	@69
 			    location   	(38, 595)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A89865C01CC"
-			    client     	@75
-			    supplier   	@67
+			    client     	@69
+			    supplier   	@61
 			    line_style 	0)))
-		(object NoteView @80
+		(object NoteView @74
 		    location   	(3152, 832)
 		    font       	(object Font
 			size       	10
@@ -2081,7 +1987,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@80
+			Parent_View 	@74
 			location   	(2277, 708)
 			fill_color 	13434879
 			nlines     	5
@@ -2091,13 +1997,7 @@
 		    fill_color 	13434879
 		    width      	1775
 		    height     	260)
-		(object AttachView "" @81
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@80
-		    supplier   	@1
-		    line_style 	0)
-		(object ClassView "Class" "Logical View::beaninfo::MethodDecorator" @82
+		(object ClassView "Class" "Logical View::beaninfo::MethodDecorator" @75
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -2112,7 +2012,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@82
+			Parent_View 	@75
 			location   	(2125, 1217)
 			fill_color 	13434879
 			nlines     	2
@@ -2124,7 +2024,7 @@
 		    fill_color 	13434879
 		    quidu      	"3A79D35E0027"
 		    compartment 	(object Compartment
-			Parent_View 	@82
+			Parent_View 	@75
 			location   	(2125, 1273)
 			font       	(object Font
 			    size       	10
@@ -2144,17 +2044,17 @@
 		    height     	212
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @83
+		(object InheritView "" @76
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3A79DEA603E1"
-		    client     	@82
-		    supplier   	@2
+		    client     	@75
+		    supplier   	@1
 		    line_style 	3
 		    origin_attachment 	(2295, 1206)
 		    terminal_attachment 	(2295, 998)
-		    drawSupplier 	@9)
-		(object ClassView "Class" "Logical View::java::JavaParameter" @84
+		    drawSupplier 	@3)
+		(object ClassView "Class" "Logical View::java::JavaParameter" @77
 		    ShowCompartmentStereotypes 	TRUE
 		    location   	(3664, 1600)
 		    font       	(object Font
@@ -2167,7 +2067,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@84
+			Parent_View 	@77
 			location   	(3511, 1531)
 			fill_color 	13434879
 			nlines     	1
@@ -2182,7 +2082,7 @@
 		    height     	160
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::beaninfo::ParameterDecorator" @85
+		(object ClassView "Class" "Logical View::beaninfo::ParameterDecorator" @78
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -2197,7 +2097,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@85
+			Parent_View 	@78
 			location   	(2774, 1505)
 			fill_color 	13434879
 			nlines     	2
@@ -2209,7 +2109,7 @@
 		    fill_color 	13434879
 		    quidu      	"3A79D9C20304"
 		    compartment 	(object Compartment
-			Parent_View 	@85
+			Parent_View 	@78
 			location   	(2774, 1606)
 			font       	(object Font
 			    size       	10
@@ -2229,7 +2129,7 @@
 		    height     	212
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$12" @86
+		(object AssociationViewNew "$UNNAMED$12" @79
 		    location   	(2636, 1525)
 		    font       	(object Font
 			size       	10
@@ -2244,8 +2144,8 @@
 		    line_color 	3342489
 		    quidu      	"3A79DA1A02F7"
 		    roleview_list 	(list RoleViews
-			(object RoleView "parameterDescriptors" @87
-			    Parent_View 	@86
+			(object RoleView "parameterDescriptors" @80
+			    Parent_View 	@79
 			    location   	(1164, 629)
 			    font       	(object Font
 				size       	10
@@ -2256,8 +2156,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @88
-				Parent_View 	@87
+			    label      	(object SegLabel @81
+				Parent_View 	@80
 				location   	(2683, 1495)
 				font       	(object Font
 				    size       	10
@@ -2280,11 +2180,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DA1C0231"
-			    client     	@86
-			    supplier   	@85
+			    client     	@79
+			    supplier   	@78
 			    line_style 	0
-			    label      	(object SegLabel @89
-				Parent_View 	@87
+			    label      	(object SegLabel @82
+				Parent_View 	@80
 				location   	(2631, 1573)
 				font       	(object Font
 				    size       	10
@@ -2304,30 +2204,30 @@
 				pctDist    	0.043631
 				height     	48
 				orientation 	1))
-			(object RoleView "$UNNAMED$13" @90
-			    Parent_View 	@86
+			(object RoleView "$UNNAMED$13" @83
+			    Parent_View 	@79
 			    location   	(1164, 629)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3A79DA1C0232"
-			    client     	@86
-			    supplier   	@82
+			    client     	@79
+			    supplier   	@75
 			    vertices   	(list Points
 				(2636, 1525)
 				(2578, 1510)
 				(2473, 1418))
 			    line_style 	0)))
-		(object InheritView "" @91
+		(object InheritView "" @84
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3A79DEBB01C4"
-		    client     	@85
-		    supplier   	@2
+		    client     	@78
+		    supplier   	@1
 		    line_style 	3
 		    origin_attachment 	(2876, 1493)
 		    terminal_attachment 	(2876, 998)
-		    drawSupplier 	@9)
-		(object AssociationViewNew "$UNNAMED$26" @92
+		    drawSupplier 	@3)
+		(object AssociationViewNew "$UNNAMED$26" @85
 		    location   	(3280, 1600)
 		    font       	(object Font
 			size       	10
@@ -2342,8 +2242,8 @@
 		    line_color 	3342489
 		    quidu      	"3C9A6EDD02C2"
 		    roleview_list 	(list RoleViews
-			(object RoleView "parameter" @93
-			    Parent_View 	@92
+			(object RoleView "parameter" @86
+			    Parent_View 	@85
 			    location   	(368, 0)
 			    font       	(object Font
 				size       	10
@@ -2354,8 +2254,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @94
-				Parent_View 	@93
+			    label      	(object SegLabel @87
+				Parent_View 	@86
 				location   	(3365, 1560)
 				font       	(object Font
 				    size       	10
@@ -2378,11 +2278,11 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3C9A6EDE01FB"
-			    client     	@92
-			    supplier   	@84
+			    client     	@85
+			    supplier   	@77
 			    line_style 	0
-			    label      	(object SegLabel @95
-				Parent_View 	@93
+			    label      	(object SegLabel @88
+				Parent_View 	@86
 				location   	(3371, 1654)
 				font       	(object Font
 				    size       	10
@@ -2402,16 +2302,16 @@
 				pctDist    	0.412371
 				height     	54
 				orientation 	1))
-			(object RoleView "$UNNAMED$27" @96
-			    Parent_View 	@92
+			(object RoleView "$UNNAMED$27" @89
+			    Parent_View 	@85
 			    location   	(368, 0)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3C9A6EDE0205"
-			    client     	@92
-			    supplier   	@85
+			    client     	@85
+			    supplier   	@78
 			    line_style 	0)))
-		(object ClassView "Class" "Logical View::java::JavaEvent" @97
+		(object ClassView "Class" "Logical View::java::JavaEvent" @90
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -2426,7 +2326,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@97
+			Parent_View 	@90
 			location   	(1140, 2616)
 			fill_color 	13434879
 			nlines     	1
@@ -2441,7 +2341,7 @@
 		    height     	168
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::beaninfo::BeanEvent" @98
+		(object ClassView "Class" "Logical View::beaninfo::BeanEvent" @91
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -2456,29 +2356,29 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@98
-			location   	(1131, 2946)
+			Parent_View 	@91
+			location   	(1110, 2946)
 			fill_color 	13434879
 			nlines     	1
-			max_width  	234
+			max_width  	276
 			justify    	0
 			label      	"BeanEvent")
 		    icon_style 	"Icon"
 		    line_color 	3342489
 		    fill_color 	13434879
 		    quidu      	"3CB09CA90212"
-		    width      	252
+		    width      	294
 		    height     	114
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @99
+		(object InheritView "" @92
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3CB09CB6038D"
-		    client     	@98
-		    supplier   	@97
+		    client     	@91
+		    supplier   	@90
 		    line_style 	0)
-		(object NoteView @100
+		(object NoteView @93
 		    location   	(1872, 2944)
 		    font       	(object Font
 			size       	10
@@ -2490,7 +2390,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@100
+			Parent_View 	@93
 			location   	(1577, 2815)
 			fill_color 	13434879
 			nlines     	5
@@ -2500,23 +2400,23 @@
 		    fill_color 	13434879
 		    width      	615
 		    height     	270)
-		(object AttachView "" @101
+		(object AttachView "" @94
 		    stereotype 	TRUE
 		    line_color 	3342489
-		    client     	@100
-		    supplier   	@98
+		    client     	@93
+		    supplier   	@91
 		    line_style 	0)
-		(object AttachView "" @102
+		(object AttachView "" @95
 		    stereotype 	TRUE
 		    line_color 	3342489
-		    client     	@100
-		    supplier   	@49
+		    client     	@93
+		    supplier   	@43
 		    vertices   	(list Points
 			(1890, 2808)
 			(1983, 2176)
 			(1799, 1495))
 		    line_style 	0)
-		(object ClassView "Class" "Logical View::ecore::EAnnotation" @103
+		(object ClassView "Class" "Logical View::ecore::EAnnotation" @96
 		    ShowCompartmentStereotypes 	TRUE
 		    location   	(1056, 128)
 		    font       	(object Font
@@ -2529,29 +2429,29 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@103
-			location   	(929, 59)
+			Parent_View 	@96
+			location   	(907, 59)
 			fill_color 	13434879
 			nlines     	1
-			max_width  	254
+			max_width  	298
 			justify    	0
 			label      	"EAnnotation")
 		    icon_style 	"Icon"
 		    line_color 	3342489
 		    fill_color 	13434879
 		    quidu      	"3D98A1C701AB"
-		    width      	272
+		    width      	316
 		    height     	160
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @104
+		(object InheritView "" @97
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3DFA185900DC"
-		    client     	@2
-		    supplier   	@103
+		    client     	@1
+		    supplier   	@96
 		    line_style 	0)
-		(object ClassView "Class" "Logical View::ecore::EOperation" @105
+		(object ClassView "Class" "Logical View::ecore::EOperation" @98
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -2566,7 +2466,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@105
+			Parent_View 	@98
 			location   	(2325, 1899)
 			fill_color 	13434879
 			nlines     	1
@@ -2581,10 +2481,318 @@
 		    height     	160
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @106
+		(object InheritView "" @99
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"3DFA19B600DE"
-		    client     	@67
-		    supplier   	@105
-		    line_style 	0)))))
+		    client     	@61
+		    supplier   	@98
+		    line_style 	0)
+		(object ClassView "Class" "Logical View::beaninfo::FeatureAttributeMapEntry" @100
+		    ShowCompartmentStereotypes 	TRUE
+		    IncludeAttribute 	TRUE
+		    IncludeOperation 	TRUE
+		    location   	(2224, 320)
+		    font       	(object Font
+			size       	10
+			face       	"Arial"
+			bold       	FALSE
+			italics    	FALSE
+			underline  	FALSE
+			strike     	FALSE
+			color      	0
+			default_color 	TRUE)
+		    label      	(object ItemLabel
+			Parent_View 	@100
+			location   	(1937, 267)
+			fill_color 	13434879
+			nlines     	1
+			max_width  	574
+			justify    	0
+			label      	"FeatureAttributeMapEntry")
+		    stereotype 	(object ItemLabel
+			Parent_View 	@100
+			location   	(1937, 222)
+			fill_color 	13434879
+			anchor     	10
+			nlines     	1
+			max_width  	574
+			justify    	0
+			label      	"<<MapEntry>>")
+		    icon_style 	"Icon"
+		    line_color 	3342489
+		    fill_color 	13434879
+		    quidu      	"404CC85501F5"
+		    compartment 	(object Compartment
+			Parent_View 	@100
+			location   	(1937, 323)
+			font       	(object Font
+			    size       	10
+			    face       	"Arial"
+			    bold       	FALSE
+			    italics    	FALSE
+			    underline  	FALSE
+			    strike     	FALSE
+			    color      	0
+			    default_color 	TRUE)
+			icon_style 	"Icon"
+			fill_color 	13434879
+			anchor     	2
+			nlines     	2
+			max_width  	240)
+		    width      	592
+		    height     	218
+		    annotation 	8
+		    autoResize 	TRUE)
+		(object AssociationViewNew "$UNNAMED$0" @101
+		    location   	(1670, 473)
+		    font       	(object Font
+			size       	10
+			face       	"Arial"
+			bold       	FALSE
+			italics    	FALSE
+			underline  	FALSE
+			strike     	FALSE
+			color      	0
+			default_color 	TRUE)
+		    stereotype 	TRUE
+		    line_color 	3342489
+		    quidu      	"3A79CF6C0378"
+		    roleview_list 	(list RoleViews
+			(object RoleView "attributes" @102
+			    Parent_View 	@101
+			    location   	(614, 9)
+			    font       	(object Font
+				size       	10
+				face       	"Arial"
+				bold       	FALSE
+				italics    	FALSE
+				underline  	FALSE
+				strike     	FALSE
+				color      	0
+				default_color 	TRUE)
+			    label      	(object SegLabel @103
+				Parent_View 	@102
+				location   	(1771, 381)
+				font       	(object Font
+				    size       	10
+				    face       	"Arial"
+				    bold       	FALSE
+				    italics    	FALSE
+				    underline  	FALSE
+				    strike     	FALSE
+				    color      	0
+				    default_color 	TRUE)
+				anchor     	1
+				anchor_loc 	1
+				nlines     	1
+				max_width  	187
+				justify    	0
+				label      	"+attributes"
+				pctDist    	0.457012
+				height     	62
+				orientation 	0)
+			    stereotype 	TRUE
+			    line_color 	3342489
+			    quidu      	"3A79CF6E00BE"
+			    client     	@101
+			    supplier   	@100
+			    line_style 	0
+			    label      	(object SegLabel @104
+				Parent_View 	@102
+				location   	(1832, 474)
+				font       	(object Font
+				    size       	10
+				    face       	"Arial"
+				    bold       	FALSE
+				    italics    	FALSE
+				    underline  	FALSE
+				    strike     	FALSE
+				    color      	0
+				    default_color 	TRUE)
+				anchor     	2
+				anchor_loc 	1
+				nlines     	1
+				max_width  	15
+				justify    	0
+				label      	"0..n"
+				pctDist    	0.584653
+				height     	45
+				orientation 	1))
+			(object RoleView "$UNNAMED$1" @105
+			    Parent_View 	@101
+			    location   	(614, 9)
+			    stereotype 	TRUE
+			    line_color 	3342489
+			    quidu      	"3A79CF6E00C8"
+			    client     	@101
+			    supplier   	@1
+			    line_style 	0)))
+		(object ClassView "Class" "Logical View::beaninfo::FeatureAttributeValue" @106
+		    ShowCompartmentStereotypes 	TRUE
+		    IncludeAttribute 	TRUE
+		    IncludeOperation 	TRUE
+		    location   	(3152, 320)
+		    font       	(object Font
+			size       	10
+			face       	"Arial"
+			bold       	FALSE
+			italics    	FALSE
+			underline  	FALSE
+			strike     	FALSE
+			color      	0
+			default_color 	TRUE)
+		    label      	(object ItemLabel
+			Parent_View 	@106
+			location   	(2868, 202)
+			fill_color 	13434879
+			nlines     	1
+			max_width  	568
+			justify    	0
+			label      	"FeatureAttributeValue")
+		    icon_style 	"Icon"
+		    line_color 	3342489
+		    fill_color 	13434879
+		    quidu      	"3A799B700295"
+		    compartment 	(object Compartment
+			Parent_View 	@106
+			location   	(2868, 258)
+			font       	(object Font
+			    size       	10
+			    face       	"Arial"
+			    bold       	FALSE
+			    italics    	FALSE
+			    underline  	FALSE
+			    strike     	FALSE
+			    color      	0
+			    default_color 	TRUE)
+			icon_style 	"Icon"
+			fill_color 	16777215
+			anchor     	2
+			nlines     	4
+			max_width  	487)
+		    width      	586
+		    height     	258
+		    annotation 	8
+		    autoResize 	TRUE)
+		(object AttachView "" @107
+		    stereotype 	TRUE
+		    line_color 	3342489
+		    client     	@74
+		    supplier   	@106
+		    line_style 	0)
+		(object AssociationViewNew "$UNNAMED$28" @108
+		    location   	(2689, 320)
+		    font       	(object Font
+			size       	10
+			face       	"Arial"
+			bold       	FALSE
+			italics    	FALSE
+			underline  	FALSE
+			strike     	FALSE
+			color      	0
+			default_color 	TRUE)
+		    stereotype 	TRUE
+		    line_color 	3342489
+		    quidu      	"404CCA810280"
+		    roleview_list 	(list RoleViews
+			(object RoleView "value" @109
+			    Parent_View 	@108
+			    location   	(465, 0)
+			    font       	(object Font
+				size       	10
+				face       	"Arial"
+				bold       	FALSE
+				italics    	FALSE
+				underline  	FALSE
+				strike     	FALSE
+				color      	0
+				default_color 	TRUE)
+			    label      	(object SegLabel @110
+				Parent_View 	@109
+				location   	(2774, 280)
+				font       	(object Font
+				    size       	10
+				    face       	"Arial"
+				    bold       	FALSE
+				    italics    	FALSE
+				    underline  	FALSE
+				    strike     	FALSE
+				    color      	0
+				    default_color 	TRUE)
+				anchor     	1
+				anchor_loc 	1
+				nlines     	1
+				max_width  	118
+				justify    	0
+				label      	"+value"
+				pctDist    	0.508876
+				height     	41
+				orientation 	0)
+			    stereotype 	TRUE
+			    line_color 	3342489
+			    quidu      	"404CCA830175"
+			    client     	@108
+			    supplier   	@106
+			    line_style 	0
+			    label      	(object SegLabel @111
+				Parent_View 	@109
+				location   	(2791, 374)
+				font       	(object Font
+				    size       	10
+				    face       	"Arial"
+				    bold       	FALSE
+				    italics    	FALSE
+				    underline  	FALSE
+				    strike     	FALSE
+				    color      	0
+				    default_color 	TRUE)
+				anchor     	2
+				anchor_loc 	1
+				nlines     	1
+				max_width  	15
+				justify    	0
+				label      	"0..1"
+				pctDist    	0.609467
+				height     	54
+				orientation 	1))
+			(object RoleView "$UNNAMED$29" @112
+			    Parent_View 	@108
+			    location   	(465, 0)
+			    font       	(object Font
+				size       	10
+				face       	"Arial"
+				bold       	FALSE
+				italics    	FALSE
+				underline  	FALSE
+				strike     	FALSE
+				color      	0
+				default_color 	TRUE)
+			    label      	(object SegLabel @113
+				Parent_View 	@112
+				location   	(2776, 280)
+				font       	(object Font
+				    size       	10
+				    face       	"Arial"
+				    bold       	FALSE
+				    italics    	FALSE
+				    underline  	FALSE
+				    strike     	FALSE
+				    color      	0
+				    default_color 	TRUE)
+				hidden     	TRUE
+				anchor     	1
+				anchor_loc 	1
+				nlines     	1
+				max_width  	118
+				justify    	0
+				label      	""
+				pctDist    	-0.520710
+				height     	41
+				orientation 	1)
+			    stereotype 	TRUE
+			    line_color 	3342489
+			    quidu      	"404CCA83017F"
+			    client     	@108
+			    supplier   	@100
+			    line_style 	0)))))))