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)))))))