
(object Petal
    version    	47
    _written   	"Rose 8.0.0303.1400"
    charSet    	0)

(object Class_Category "beaninfo"
    is_unit    	TRUE
    is_loaded  	TRUE
    attributes 	(list Attribute_Set
	(object Attribute
	    tool       	"Ecore"
	    name       	"basePackage"
	    value      	(value Text "org.eclipse.jem.internal.beaninfo")))
    quid       	"3A799ABB0353"
    exportControl 	"Public"
    logical_models 	(list unit_reference_list
	(object Class "FeatureDecorator"
	    quid       	"3A799B3E01E9"
	    documentation 	
|Equivalent to FeatureDescriptor in java.
|<p>
|Note: If any attribute is explicitly set then the BeanInfo/Reflection will not be merged into the decorator. This provides a way of overriding the BeanInfos. Also for any many-valued attribute, if it is desired to have it explicitly empty and not have BeanInfo fill it in, there will be another attribute named of the form "attibutueExplicitEmpty" If this is true then the BeanInfo will not merge in and will leave it empty.
|<p>
|These comments about merging apply to all subclasses of this decorator too. 
	    
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3DFA185900DC"
		    supplier   	"Logical View::ecore::EAnnotation"
		    quidu      	"3D98A1C701AB"))
	    operations 	(list Operations
		(object Operation "getName"
		    quid       	"3B867D0D0184"
		    result     	"String"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "displayName"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79CFCC0131"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "shortDescription"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79CFD501E8"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "category"
		    attributes 	(list Attribute_Set)
		    quid       	"3BA2797102DC"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "expert"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79CFE700FE"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "hidden"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79D0050328"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "preferred"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79D0240318"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "mergeIntrospection"
		    quid       	"3A82C0A60389"
		    documentation 	"Should the introspection results be merged into this decorator. If this is set to false, then the introspection results are ignored for this particular decorator. This is an internal feature simply to allow desired override capabilities. Customers would use it to prevent ANY introspection/reflection from occurring."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "attributesExplicitEmpty"
		    quid       	"3C9B49320265"
		    documentation 	"The attributes are explicitly set as empty and not retrieved from the beaninfo/reflection. Customers should set this if they want the list of attributes to be empty and not merged with the BeanInfo results. "
		    type       	"boolean"
		    exportControl 	"Implementation")
		(object ClassAttribute "implicitlySetBits"
		    quid       	"41E5815D02B9"
		    documentation 	
|A bitflag for which attributes have been set by BeanInfo/Reflection.
|<p>
|This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers.
		    
		    type       	"long")
		(object ClassAttribute "implicitDecoratorFlag"
		    quid       	"41E5A05D021A"
		    documentation 	
|Is this decorator/feature implicit. This means created by Introspection/Reflection and not by customer.
|<p>
|This is an internal attribute that is used by the BeanInfo maintanance. It is not meant to be used by customers.
		    
		    type       	"ImplicitItem"
		    quidu      	"41E59E5D0296")))
	(object Class "BeanDecorator"
	    quid       	"3A79D0DF02D1"
	    documentation 	"Equivalent to BeanDecorator in java."
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3A79DE8E007F"
		    supplier   	"Logical View::beaninfo::FeatureDecorator"
		    quidu      	"3A799B3E01E9"))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "mergeSuperProperties"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A82B73E0200"
		    documentation 	"Should the properties of super types be merged when asking for eAllAttributes/eAllReferences."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "mergeSuperMethods"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A82B9940015"
		    documentation 	"Should the methods of super types be merged when asking for eAllBehaviors."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "mergeSuperEvents"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A82B99F0165"
		    documentation 	"Should the events of super types be merged when asking for eAllEvents."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "introspectProperties"
		    quid       	"3A8427EC00A6"
		    documentation 	"Should the properties from the introspection be added to the class. This allows properties to not be introspected and to use only what is defined explicitly in the JavaClass xmi file."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "introspectMethods"
		    quid       	"3A84287501B1"
		    documentation 	"Should the methods from the introspection be added to the class. This allows methods to not be introspected and to use only what is defined explicitly in the JavaClass xmi file."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "introspectEvents"
		    quid       	"3A842877000F"
		    documentation 	"Should the events from the introspection be added to the class. This allows events to not be introspected and to use only what is defined explicitly in the JavaClass xmi file."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "doBeaninfo"
		    quid       	"3C9A46FC027C"
		    documentation 	"This means do we go and get the beaninfo from the remote vm. If false, then it will not try to get the beaninfo. This doesn't prevent introspection through reflection. That is controled by the separate introspect... attributes."
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Implementation")
		(object ClassAttribute "notInheritedPropertyNames"
		    quid       	"41EED50B0185"
		    documentation 	
|This is the list of inherited property names to not use in getAllProperties(). These names are properties that should not be inherited and should not show through. If the inherited property is not on the list then it will show in getAllProperties().
|<p>
|This list will be empty if all properties are inherited or if the mergeSuperProperties flag is false.
|<p>
|Note: This attribute is not meant to be changed by clients. It is an internal attribute.
		    
		    stereotype 	"0..*"
		    type       	"String")
		(object ClassAttribute "notInheritedMethodNames"
		    quid       	"41F02C5F0399"
		    documentation 	
|This is the list of inherited method names to not use in eAllOperations(). These names are operations that should not be inherited and should not show through. If the inherited operation is not on the list then it will show in getAllOperations().
|<p>
|This list will be empty if all operations are inherited or if the mergeSuperBehaviors flag is false.
		    
		    stereotype 	"0..*"
		    type       	"String")
		(object ClassAttribute "notInheritedEventNames"
		    quid       	"41F02D0A0312"
		    documentation 	
|This is the list of inherited event names to not use in getAllEvents(). These names are events that should not be inherited and should not show through. If the inherited event is not on the list then it will show in getAllEvents().
|<p>
|This list will be empty if all events are inherited or if the mergeSuperEvents flag is false.
		    
		    stereotype 	"0..*"
		    type       	"String")))
	(object Class "EventSetDecorator"
	    quid       	"3A79D1D2004F"
	    documentation 	"Equivalent to EventSetDecorator in java."
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3A79DEA200EC"
		    supplier   	"Logical View::beaninfo::FeatureDecorator"
		    quidu      	"3A799B3E01E9"))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "inDefaultEventSet"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79D94F004C"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "unicast"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79D9580167"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "listenerMethodsExplicitEmpty"
		    quid       	"3CB1AF7D0286"
		    documentation 	"Set true if the listenerMethods feature is explicitly set as empty and is not to have listener methods merged in from BeanInfo or reflection."
		    type       	"boolean"
		    exportControl 	"Implementation")))
	(object Class "MethodDecorator"
	    quid       	"3A79D35E0027"
	    documentation 	"Equivalent to MethodDecorator in java."
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3A79DEA603E1"
		    supplier   	"Logical View::beaninfo::FeatureDecorator"
		    quidu      	"3A799B3E01E9"))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "parmsExplicitEmpty"
		    quid       	"3B86ABE80092"
		    documentation 	"Set true if the parms feature is explicitly set as empty and is not to have parameters merged in from BeanInfo or reflection."
		    type       	"boolean"
		    exportControl 	"Implementation")))
	(object Class "ParameterDecorator"
	    quid       	"3A79D9C20304"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3A79DEBB01C4"
		    supplier   	"Logical View::beaninfo::FeatureDecorator"
		    quidu      	"3A799B3E01E9"))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "name"
		    quid       	"3B86A6700099"
		    documentation 	"The name is explicit here because unlike the other feature decorators, the name does not come from the object being decorated."
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "PropertyDecorator"
	    quid       	"3A79DA68010E"
	    documentation 	"Equivalent to PropertyDecorator in java."
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3A79DE9702BD"
		    supplier   	"Logical View::beaninfo::FeatureDecorator"
		    quidu      	"3A799B3E01E9"))
	    operations 	(list Operations
		(object Operation "getPropertyType"
		    quid       	"3B8CF526039D"
		    result     	"EClassifier"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3ACE4FEE0371"))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "bound"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79DC250303"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "constrained"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79DC2C00A0"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "designTime"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3BA27455019B"
		    documentation 	
|If not set, then normal default processing.
|
|If set true, then this property is a design time property. This means it will show up in the property sheet, but it won't be able to be connected to at runtime. It may not even be a true bean property but instead the builder will know how to handle it.
|
|If set false, then this property will not show up on the property sheet, but will be able to be connected to for runtime.
		    
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "alwaysIncompatible"
		    quid       	"3BA27A1700BE"
		    documentation 	"If set true, then when multiple objects are selected, this property is always incompatible with each other. So in this case the property will not show up on the property sheet if more than one object has been selected."
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "filterFlags"
		    quid       	"3BA3B18F0036"
		    stereotype 	"0..*"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "fieldReadOnly"
		    quid       	"4207E101018E"
		    documentation 	
|Is this field read-only (i.e. is a "final" field). This is only referenced if the field reference is set.
		    
		    type       	"boolean"
		    exportControl 	"Public")))
	(object Class "IndexedPropertyDecorator"
	    quid       	"3A79DC450309"
	    documentation 	"Equivalent to IndexedPropertyDecorator"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3A79DE840388"
		    supplier   	"Logical View::beaninfo::PropertyDecorator"
		    quidu      	"3A79DA68010E")))
	(object Class "MethodProxy"
	    quid       	"3A8984C901C3"
	    documentation 	
|This is just a wrapper of a java Method. It allows access to the method but doesn't duplicate the interface for it.
|<p>
|MethodProxies will be in the eBehaviors setting for any methods that are in the JavaClass methods setting so that they are not duplicated.
|<p>
|MethodProxies would also have MethodDecorators.
	    
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3DFA19B600DE"
		    supplier   	"Logical View::ecore::EOperation"
		    quidu      	"3904DAA200A0")))
	(object Class "BeanEvent"
	    quid       	"3CB09CA90212"
	    documentation 	
|Event from Introspection/Reflection.
|<p>
|The BeanEvent will be under the JavaClass' events and allEvents feature. Each BeanEvent will be decorated by an EventSetDecorator.
	    
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    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 ClassAttribute "value"
		    attributes 	(list Attribute_Set)
		    quid       	"41E58414010A"
		    type       	"FeatureAttributeValue"
		    quidu      	"41E582F800BB"
		    exportControl 	"Public")))
	(object Class "FeatureAttributeValue"
	    quid       	"41E582F800BB"
	    documentation 	
|This is the attribute value for feature attribute. It can only represent the following:
|
|- String
|- primitives
|- array (type Object) containing mixture of Strings and primitives (as the object types)
|- array (type String)
|- array (type primitive)
|
|Anything else cannot be represented.
	    
	    stereotype 	"datatype"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "org.eclipse.jem.internal.beaninfo.common.FeatureAttributeValue"
		    quid       	"41E583B503CA"
		    stereotype 	"javaclass")))
	(object Class "ImplicitItem"
	    quid       	"41E59E5D0296"
	    documentation 	
|This enum is an internal enum. It is used by BeanInfo for cache maintenance.
|<p>
|This enum is not meant to be used by clients.
	    
	    stereotype 	"enumeration"
	    exportControl 	"Protected"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "NOT_IMPLICIT"
		    quid       	"41E59F2A00EC"
		    documentation 	"Means this decorator is not implicit. That is it was created by customer.")
		(object ClassAttribute "IMPLICIT_DECORATOR"
		    quid       	"41E59F7200B4"
		    documentation 	"This means that the decorator is implicit. That is it was not created by the customer.")
		(object ClassAttribute "IMPLICIT_DECORATOR_AND_FEATURE"
		    quid       	"41E59FA303B7"
		    documentation 	"This means the decorator and the feature where implicit. That is they were not created by the customer.")))
	(object Association "$UNNAMED$0"
	    quid       	"3A79CF6C0378"
	    roles      	(list role_list
		(object Role "attributes"
		    attributes 	(list Attribute_Set)
		    quid       	"3A79CF6E00BE"
		    documentation 	"Feature attributes. Key/value pairs. If it is desired that the feature attributes is explicitly empty and not have BeanInfo/reflection set it, set attributesExplicitEmpty to true."
		    label      	"attributes"
		    supplier   	"Logical View::beaninfo::FeatureAttributeMapEntry"
		    quidu      	"404CC85501F5"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$1"
		    quid       	"3A79CF6E00C8"
		    supplier   	"Logical View::beaninfo::FeatureDecorator"
		    quidu      	"3A799B3E01E9"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$2"
	    quid       	"3A79D1350248"
	    roles      	(list role_list
		(object Role "customizerClass"
		    attributes 	(list Attribute_Set)
		    quid       	"3A79D13601D2"
		    label      	"customizerClass"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$3"
		    quid       	"3A79D13601E6"
		    supplier   	"Logical View::beaninfo::BeanDecorator"
		    quidu      	"3A79D0DF02D1")))
	(object Association "$UNNAMED$4"
	    quid       	"3A79D3080128"
	    roles      	(list role_list
		(object Role "addListenerMethod"
		    quid       	"3A79D3090346"
		    label      	"addListenerMethod"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$5"
		    quid       	"3A79D309035A"
		    supplier   	"Logical View::beaninfo::EventSetDecorator"
		    quidu      	"3A79D1D2004F")))
	(object Association "$UNNAMED$6"
	    quid       	"3A79D3E10364"
	    roles      	(list role_list
		(object Role "listenerMethods"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isTransient"
			    value      	TRUE)
			(object Attribute
			    tool       	"Ecore"
			    name       	"isVolatile"
			    value      	TRUE))
		    quid       	"3A79D3E6007D"
		    documentation 	
|listener methods. If it is desired that the list be explicitly empty and not have BeanInfo set it, then set listenerMethodsExplicitEmpty to true.
|<p>
|ListenerMethods will be decorated with MethodDecorators.
|<p>
|Note: This is a derived setting, which means it will not notify out changes to it. To here changes to it, listen on "serListMthd" notifications instead.
		    
		    label      	"listenerMethods"
		    supplier   	"Logical View::beaninfo::MethodProxy"
		    quidu      	"3A8984C901C3"
		    client_cardinality 	(value cardinality "1..n")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$7"
		    quid       	"3A79D3E60091"
		    supplier   	"Logical View::beaninfo::EventSetDecorator"
		    quidu      	"3A79D1D2004F"))
	    derived    	TRUE)
	(object Association "$UNNAMED$8"
	    quid       	"3A79D4A80158"
	    roles      	(list role_list
		(object Role "listenerType"
		    quid       	"3A79D4AA038B"
		    label      	"listenerType"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$9"
		    quid       	"3A79D4AA03B4"
		    supplier   	"Logical View::beaninfo::EventSetDecorator"
		    quidu      	"3A79D1D2004F")))
	(object Association "$UNNAMED$10"
	    quid       	"3A79D4DF020B"
	    roles      	(list role_list
		(object Role "removeListenerMethod"
		    quid       	"3A79D4E10395"
		    label      	"removeListenerMethod"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$11"
		    quid       	"3A79D4E103A9"
		    supplier   	"Logical View::beaninfo::EventSetDecorator"
		    quidu      	"3A79D1D2004F")))
	(object Association "$UNNAMED$12"
	    quid       	"3A79DA1A02F7"
	    roles      	(list role_list
		(object Role "parameterDescriptors"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isTransient"
			    value      	TRUE)
			(object Attribute
			    tool       	"Ecore"
			    name       	"isVolatile"
			    value      	TRUE))
		    quid       	"3A79DA1C0231"
		    documentation 	
|This is the parameter descriptors list.
|<p>
|Note: This is a derived setting, which means it will not notify out changes to it. To here changes to it, listen on "serParmDesc" notifications instead.
		    
		    label      	"parameterDescriptors"
		    supplier   	"Logical View::beaninfo::ParameterDecorator"
		    quidu      	"3A79D9C20304"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$13"
		    quid       	"3A79DA1C0232"
		    supplier   	"Logical View::beaninfo::MethodDecorator"
		    quidu      	"3A79D35E0027"))
	    derived    	TRUE)
	(object Association "$UNNAMED$14"
	    quid       	"3A79DB0B0339"
	    roles      	(list role_list
		(object Role "propertyEditorClass"
		    quid       	"3A79DB0E013F"
		    label      	"propertyEditorClass"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$15"
		    quid       	"3A79DB0E0171"
		    supplier   	"Logical View::beaninfo::PropertyDecorator"
		    quidu      	"3A79DA68010E")))
	(object Association "$UNNAMED$16"
	    quid       	"3A79DBBD0000"
	    roles      	(list role_list
		(object Role "readMethod"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79DBBF0071"
		    label      	"readMethod"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$17"
		    quid       	"3A79DBBF0085"
		    supplier   	"Logical View::beaninfo::PropertyDecorator"
		    quidu      	"3A79DA68010E")))
	(object Association "$UNNAMED$18"
	    quid       	"3A79DBDF02D0"
	    roles      	(list role_list
		(object Role "writeMethod"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79DBE101F7"
		    label      	"writeMethod"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$19"
		    quid       	"3A79DBE1020B"
		    supplier   	"Logical View::beaninfo::PropertyDecorator"
		    quidu      	"3A79DA68010E")))
	(object Association "$UNNAMED$20"
	    quid       	"3A79DE34036F"
	    roles      	(list role_list
		(object Role "indexedReadMethod"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79DE3503CA"
		    label      	"indexedReadMethod"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$21"
		    quid       	"3A79DE3503DE"
		    supplier   	"Logical View::beaninfo::IndexedPropertyDecorator"
		    quidu      	"3A79DC450309")))
	(object Association "$UNNAMED$22"
	    quid       	"3A79DE540180"
	    roles      	(list role_list
		(object Role "indexedWriteMethod"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3A79DE5503D0"
		    label      	"indexedWriteMethod"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$23"
		    quid       	"3A79DE5503E4"
		    supplier   	"Logical View::beaninfo::IndexedPropertyDecorator"
		    quidu      	"3A79DC450309")))
	(object Association "$UNNAMED$24"
	    quid       	"3A89865B01D5"
	    roles      	(list role_list
		(object Role "method"
		    quid       	"3A89865C01AE"
		    label      	"method"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$25"
		    quid       	"3A89865C01CC"
		    supplier   	"Logical View::beaninfo::MethodProxy"
		    quidu      	"3A8984C901C3")))
	(object Association "$UNNAMED$26"
	    quid       	"3C9A6EDD02C2"
	    roles      	(list role_list
		(object Role "parameter"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isTransient"
			    value      	TRUE))
		    quid       	"3C9A6EDE01FB"
		    documentation 	"The JavaParameter that this ParameterDecorator is decorating. Can't use eDecorates in this."
		    label      	"parameter"
		    supplier   	"Logical View::java::JavaParameter"
		    quidu      	"3654AD780280"
		    client_cardinality 	(value cardinality "0..1")
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$27"
		    quid       	"3C9A6EDE0205"
		    supplier   	"Logical View::beaninfo::ParameterDecorator"
		    quidu      	"3A79D9C20304")))
	(object Association "$UNNAMED$28"
	    quid       	"41F016E7002E"
	    roles      	(list role_list
		(object Role "serParmDesc"
		    quid       	"41F016E802A7"
		    documentation 	"This is a private feature. It is used internally only. "
		    label      	"serParmDesc"
		    supplier   	"Logical View::beaninfo::ParameterDecorator"
		    quidu      	"3A79D9C20304"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    exportControl 	"Private"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$29"
		    quid       	"41F016E802B1"
		    supplier   	"Logical View::beaninfo::MethodDecorator"
		    quidu      	"3A79D35E0027"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$30"
	    quid       	"41F11E710387"
	    roles      	(list role_list
		(object Role "eventAdapterClass"
		    quid       	"41F11E730249"
		    documentation 	
|For some listener interfaces an adapter class is provided that implements default no-op methods, e.g. java.awt.event.FocusEvent which has java.awt.event.FocusAdapter. The Adapter class is provided in a key/value pair on the java.beans.EventSetDescriptor with a key defined in a static final constants EVENTADAPTERCLASS = "eventAdapterClass".
		    
		    label      	"eventAdapterClass"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$31"
		    quid       	"41F11E73025D"
		    supplier   	"Logical View::beaninfo::EventSetDecorator"
		    quidu      	"3A79D1D2004F")))
	(object Association "$UNNAMED$32"
	    quid       	"41F1278A01A5"
	    roles      	(list role_list
		(object Role "serListMthd"
		    quid       	"41F1278B021F"
		    documentation 	"This is a private feature. It is used internally only. "
		    label      	"serListMthd"
		    supplier   	"Logical View::beaninfo::MethodProxy"
		    quidu      	"3A8984C901C3"
		    client_cardinality 	(value cardinality "1..n")
		    Containment 	"By Value"
		    exportControl 	"Private"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$33"
		    quid       	"41F1278B0229"
		    supplier   	"Logical View::beaninfo::EventSetDecorator"
		    quidu      	"3A79D1D2004F"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$34"
	    quid       	"4207D83F01DA"
	    roles      	(list role_list
		(object Role "field"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"4207D8400290"
		    documentation 	"If this is set, then this property is a field and not a getter/setter property. This is an extension that the Visual Editor uses to the BeanInfo model."
		    label      	"field"
		    supplier   	"Logical View::java::Field"
		    quidu      	"3654AF8F0280"
		    client_cardinality 	(value cardinality "0..1")
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$35"
		    quid       	"4207D8400292"
		    supplier   	"Logical View::beaninfo::PropertyDecorator"
		    quidu      	"3A79DA68010E"))))
    logical_presentations 	(list unit_reference_list
	(object ClassDiagram "Main"
	    quid       	"3A799AC8038E"
	    title      	"Main"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	1144
	    items      	(list diagram_item_list
		(object NoteView @1
		    location   	(2640, 1696)
		    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   	(2358, 1608)
			fill_color 	13434879
			nlines     	3
			max_width  	528
			label      	"ListenerMethods will be decorated with MethodDecorators.")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	588
		    height     	188)
		(object NoteView @2
		    location   	(3392, 2784)
		    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 	@2
			location   	(3076, 2568)
			fill_color 	13434879
			nlines     	8
			max_width  	596
			label      	
|MethodProxies will be in the eBehaviors setting for any methods that are in the JavaClass methods setting so that they are not duplicated.
|
|MethodProxies would also have MethodDecorators.
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	656
		    height     	444)
		(object ClassView "Class" "Logical View::java::JavaEvent" @3
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1248, 2688)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	TRUE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@3
			location   	(1114, 2614)
			fill_color 	13434879
			nlines     	1
			max_width  	268
			justify    	0
			label      	"JavaEvent")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777088
		    quidu      	"3C62FAF103C8"
		    width      	286
		    height     	172
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::beaninfo::BeanEvent" @4
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1232, 2992)
		    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 	@4
			location   	(1096, 2941)
			fill_color 	13434879
			nlines     	1
			max_width  	272
			justify    	0
			label      	"BeanEvent")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3CB09CA90212"
		    width      	290
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @5
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3CB09CB6038D"
		    client     	@4
		    supplier   	@3
		    line_style 	0)
		(object NoteView @6
		    location   	(1856, 2944)
		    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 	@6
			location   	(1561, 2815)
			fill_color 	13434879
			nlines     	5
			max_width  	555
			label      	"The BeanEvent will be under the JavaClass' events and allEvents feature. Each BeanEvent will be decorated by an EventSetDecorator.")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	615
		    height     	270)
		(object ClassView "Class" "Logical View::ecore::EAnnotation" @7
		    ShowCompartmentStereotypes 	TRUE
		    location   	(1056, 128)
		    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 	@7
			location   	(906, 54)
			fill_color 	13434879
			nlines     	1
			max_width  	300
			justify    	0
			label      	"EAnnotation")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16776960
		    quidu      	"3D98A1C701AB"
		    width      	318
		    height     	172
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EOperation" @8
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2848, 2272)
		    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 	@8
			location   	(2702, 2198)
			fill_color 	13434879
			nlines     	1
			max_width  	292
			justify    	0
			label      	"EOperation")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16776960
		    quidu      	"3904DAA200A0"
		    width      	310
		    height     	172
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::beaninfo::FeatureAttributeMapEntry" @9
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2224, 176)
		    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 	@9
			location   	(1887, 92)
			fill_color 	13434879
			nlines     	1
			max_width  	674
			justify    	0
			label      	"FeatureAttributeMapEntry")
		    stereotype 	(object ItemLabel
			Parent_View 	@9
			location   	(1887, 42)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	674
			justify    	0
			label      	"<<MapEntry>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"404CC85501F5"
		    compartment 	(object Compartment
			Parent_View 	@9
			location   	(1887, 153)
			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     	3
			max_width  	581)
		    width      	692
		    height     	292
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::beaninfo::FeatureDecorator" @10
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1072, 656)
		    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 	@10
			location   	(665, 325)
			fill_color 	13434879
			nlines     	1
			max_width  	814
			justify    	0
			label      	"FeatureDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A799B3E01E9"
		    compartment 	(object Compartment
			Parent_View 	@10
			location   	(665, 386)
			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     	12
			max_width  	700)
		    width      	832
		    height     	686
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritTreeView "" @11
		    location   	(1072, 1089)
		    line_color 	3342489
		    fill_color 	13434879
		    supplier   	@10
		    vertices   	(list Points
			(1072, 1089)
			(1072, 999)))
		(object InheritView "" @12
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3DFA185900DC"
		    client     	@10
		    supplier   	@7
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$0" @13
		    location   	(1682, 401)
		    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" @14
			    Parent_View 	@13
			    location   	(626, -63)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @15
				Parent_View 	@14
				location   	(1747, 309)
				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  	207
				justify    	0
				label      	"+attributes"
				pctDist    	0.457012
				height     	62
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79CF6E00BE"
			    client     	@13
			    supplier   	@9
			    line_style 	0
			    label      	(object SegLabel @16
				Parent_View 	@14
				location   	(1812, 396)
				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" @17
			    Parent_View 	@13
			    location   	(626, -63)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79CF6E00C8"
			    client     	@13
			    supplier   	@10
			    line_style 	0)))
		(object ClassView "Class" "Logical View::beaninfo::FeatureAttributeValue" @18
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(3456, 176)
		    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 	@18
			location   	(2683, 117)
			fill_color 	13434879
			nlines     	1
			max_width  	1546
			justify    	0
			label      	"FeatureAttributeValue")
		    stereotype 	(object ItemLabel
			Parent_View 	@18
			location   	(2683, 67)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	1546
			justify    	0
			label      	"<<datatype>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41E582F800BB"
		    compartment 	(object Compartment
			Parent_View 	@18
			location   	(2683, 178)
			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  	1493)
		    width      	1564
		    height     	242
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::beaninfo::ImplicitItem" @19
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2288, 656)
		    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 	@19
			location   	(1815, 547)
			fill_color 	13434879
			nlines     	1
			max_width  	946
			justify    	0
			label      	"ImplicitItem")
		    stereotype 	(object ItemLabel
			Parent_View 	@19
			location   	(1815, 497)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	946
			justify    	0
			label      	"<<enumeration>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	12615935
		    quidu      	"41E59E5D0296"
		    compartment 	(object Compartment
			Parent_View 	@19
			location   	(1815, 608)
			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  	812)
		    width      	964
		    height     	342
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaParameter" @20
		    ShowCompartmentStereotypes 	TRUE
		    location   	(3712, 1776)
		    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 	@20
			location   	(3533, 1702)
			fill_color 	13434879
			nlines     	1
			max_width  	358
			justify    	0
			label      	"JavaParameter")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777088
		    quidu      	"3654AD780280"
		    width      	376
		    height     	172
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::beaninfo::ParameterDecorator" @21
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(4272, 1344)
		    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 	@21
			location   	(4039, 1263)
			fill_color 	13434879
			nlines     	1
			max_width  	466
			justify    	0
			label      	"ParameterDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A79D9C20304"
		    compartment 	(object Compartment
			Parent_View 	@21
			location   	(4039, 1324)
			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     	2
			max_width  	303)
		    width      	484
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$26" @22
		    location   	(3986, 1563)
		    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      	"3C9A6EDD02C2"
		    roleview_list 	(list RoleViews
			(object RoleView "parameter" @23
			    Parent_View 	@22
			    location   	(1074, -37)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @24
				Parent_View 	@23
				location   	(3948, 1643)
				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  	215
				justify    	0
				label      	"+parameter"
				pctDist    	0.386598
				height     	41
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C9A6EDE01FB"
			    client     	@22
			    supplier   	@20
			    line_style 	0
			    label      	(object SegLabel @25
				Parent_View 	@23
				location   	(3888, 1572)
				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.412371
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$27" @26
			    Parent_View 	@22
			    location   	(1074, -37)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C9A6EDE0205"
			    client     	@22
			    supplier   	@21
			    line_style 	0)))
		(object InheritView "" @27
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DEBB01C4"
		    client     	@21
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(4065, 1251)
		    terminal_attachment 	(4065, 1089)
		    drawSupplier 	@11)
		(object ClassView "Class" "Logical View::beaninfo::MethodDecorator" @28
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(3120, 1344)
		    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 	@28
			location   	(2770, 1263)
			fill_color 	13434879
			nlines     	1
			max_width  	700
			justify    	0
			label      	"MethodDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A79D35E0027"
		    compartment 	(object Compartment
			Parent_View 	@28
			location   	(2770, 1324)
			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     	2
			max_width  	603)
		    width      	718
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @29
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DEA603E1"
		    client     	@28
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(3101, 1250)
		    terminal_attachment 	(3101, 1089)
		    drawSupplier 	@11)
		(object AssociationViewNew "$UNNAMED$12" @30
		    location   	(3722, 1474)
		    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      	"3A79DA1A02F7"
		    roleview_list 	(list RoleViews
			(object RoleView "parameterDescriptors" @31
			    Parent_View 	@30
			    location   	(2250, 578)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @32
				Parent_View 	@31
				location   	(3798, 1410)
				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  	427
				justify    	0
				label      	"+parameterDescriptors"
				pctDist    	0.308262
				height     	69
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DA1C0231"
			    client     	@30
			    supplier   	@21
			    vertices   	(list Points
				(3722, 1474)
				(3781, 1487)
				(4029, 1413))
			    line_style 	0
			    label      	(object SegLabel @33
				Parent_View 	@31
				location   	(3963, 1475)
				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.745977
				height     	41
				orientation 	1))
			(object RoleView "$UNNAMED$13" @34
			    Parent_View 	@30
			    location   	(2250, 578)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DA1C0232"
			    client     	@30
			    supplier   	@28
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$28" @35
		    location   	(3793, 1257)
		    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      	"41F016E7002E"
		    roleview_list 	(list RoleViews
			(object RoleView "serParmDesc" @36
			    Parent_View 	@35
			    location   	(673, -87)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @37
				Parent_View 	@36
				location   	(3942, 1235)
				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  	285
				justify    	0
				label      	"-serParmDesc"
				pctDist    	0.595893
				height     	48
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F016E802A7"
			    client     	@35
			    supplier   	@21
			    line_style 	0
			    label      	(object SegLabel @38
				Parent_View 	@36
				location   	(3997, 1348)
				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.904386
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$29" @39
			    Parent_View 	@35
			    location   	(673, -87)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F016E802B1"
			    client     	@35
			    supplier   	@28
			    vertices   	(list Points
				(3793, 1257)
				(3734, 1247)
				(3479, 1286))
			    line_style 	0)))
		(object ClassView "Class" "Logical View::beaninfo::IndexedPropertyDecorator" @40
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(752, 2288)
		    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 	@40
			location   	(460, 2237)
			fill_color 	13434879
			nlines     	1
			max_width  	584
			justify    	0
			label      	"IndexedPropertyDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A79DC450309"
		    width      	602
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::beaninfo::BeanDecorator" @41
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(512, 1456)
		    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 	@41
			location   	(7, 1150)
			fill_color 	13434879
			nlines     	1
			max_width  	1010
			justify    	0
			label      	"BeanDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A79D0DF02D1"
		    compartment 	(object Compartment
			Parent_View 	@41
			location   	(7, 1211)
			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     	11
			max_width  	868)
		    width      	1028
		    height     	636
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @42
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DE8E007F"
		    client     	@41
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(381, 1137)
		    terminal_attachment 	(381, 1089)
		    drawSupplier 	@11)
		(object ClassView "Class" "Logical View::java::Method" @43
		    ShowCompartmentStereotypes 	TRUE
		    SuppressAttribute 	TRUE
		    IncludeAttribute 	TRUE
		    location   	(2592, 3264)
		    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 	@43
			location   	(2492, 3190)
			fill_color 	13434879
			nlines     	1
			max_width  	200
			justify    	0
			label      	"Method")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16776960
		    quidu      	"3654AE910271"
		    width      	218
		    height     	172
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Method" @44
		    ShowCompartmentStereotypes 	TRUE
		    SuppressAttribute 	TRUE
		    location   	(1664, 2096)
		    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 	@44
			location   	(1564, 2022)
			fill_color 	13434879
			nlines     	1
			max_width  	200
			justify    	0
			label      	"Method")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16776960
		    quidu      	"3654AE910271"
		    width      	218
		    height     	172
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$20" @45
		    location   	(1315, 2289)
		    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      	"3A79DE34036F"
		    roleview_list 	(list RoleViews
			(object RoleView "indexedReadMethod" @46
			    Parent_View 	@45
			    location   	(563, 401)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @47
				Parent_View 	@46
				location   	(1421, 2275)
				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  	404
				justify    	0
				label      	"+indexedReadMethod"
				pctDist    	0.385248
				height     	14
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DE3503CA"
			    client     	@45
			    supplier   	@44
			    vertices   	(list Points
				(1315, 2289)
				(1375, 2289)
				(1554, 2168))
			    line_style 	0
			    label      	(object SegLabel @48
				Parent_View 	@46
				location   	(1249, 2238)
				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.240775
				height     	52
				orientation 	0))
			(object RoleView "$UNNAMED$21" @49
			    Parent_View 	@45
			    location   	(563, 401)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DE3503DE"
			    client     	@45
			    supplier   	@40
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$22" @50
		    location   	(1443, 2361)
		    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      	"3A79DE540180"
		    roleview_list 	(list RoleViews
			(object RoleView "indexedWriteMethod" @51
			    Parent_View 	@50
			    location   	(691, 473)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @52
				Parent_View 	@51
				location   	(1597, 2374)
				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  	409
				justify    	0
				label      	"+indexedWriteMethod"
				pctDist    	0.501177
				height     	37
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DE5503D0"
			    client     	@50
			    supplier   	@44
			    vertices   	(list Points
				(1443, 2361)
				(1632, 2382)
				(1654, 2182))
			    line_style 	0
			    label      	(object SegLabel @53
				Parent_View 	@51
				location   	(1639, 2306)
				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.681972
				height     	2
				orientation 	0))
			(object RoleView "$UNNAMED$23" @54
			    Parent_View 	@50
			    location   	(691, 473)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DE5503E4"
			    client     	@50
			    supplier   	@40
			    line_style 	0)))
		(object ClassView "Class" "Logical View::java::JavaClass" @55
		    ShowCompartmentStereotypes 	TRUE
		    SuppressAttribute 	TRUE
		    location   	(240, 2192)
		    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 	@55
			location   	(106, 2118)
			fill_color 	13434879
			nlines     	1
			max_width  	268
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16776960
		    quidu      	"36549FCC00FA"
		    width      	286
		    height     	172
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$2" @56
		    location   	(332, 1939)
		    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      	"3A79D1350248"
		    roleview_list 	(list RoleViews
			(object RoleView "customizerClass" @57
			    Parent_View 	@56
			    location   	(92, 1043)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @58
				Parent_View 	@57
				location   	(298, 2044)
				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  	328
				justify    	0
				label      	"+customizerClass"
				pctDist    	0.631674
				height     	4
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D13601D2"
			    client     	@56
			    supplier   	@55
			    line_style 	0
			    label      	(object SegLabel @59
				Parent_View 	@57
				location   	(326, 1989)
				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.284188
				height     	12
				orientation 	0))
			(object RoleView "$UNNAMED$3" @60
			    Parent_View 	@56
			    location   	(92, 1043)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D13601E6"
			    client     	@56
			    supplier   	@41
			    line_style 	0)))
		(object ClassView "Class" "Logical View::beaninfo::MethodProxy" @61
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2560, 2768)
		    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 	@61
			location   	(2398, 2717)
			fill_color 	13434879
			nlines     	1
			max_width  	324
			justify    	0
			label      	"MethodProxy")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A8984C901C3"
		    width      	342
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @62
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@2
		    supplier   	@61
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$24" @63
		    location   	(2575, 3004)
		    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      	"3A89865B01D5"
		    roleview_list 	(list RoleViews
			(object RoleView "method" @64
			    Parent_View 	@63
			    location   	(271, 1084)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @65
				Parent_View 	@64
				location   	(2539, 3072)
				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  	162
				justify    	0
				label      	"+method"
				pctDist    	0.376068
				height     	41
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A89865C01AE"
			    client     	@63
			    supplier   	@43
			    line_style 	0
			    label      	(object SegLabel @66
				Parent_View 	@64
				location   	(2639, 3158)
				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      	"1"
				pctDist    	0.900000
				height     	54
				orientation 	0))
			(object RoleView "$UNNAMED$25" @67
			    Parent_View 	@63
			    location   	(271, 1084)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A89865C01CC"
			    client     	@63
			    supplier   	@61
			    line_style 	0)))
		(object ClassView "Class" "Logical View::beaninfo::EventSetDecorator" @68
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2256, 1408)
		    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 	@68
			location   	(1803, 1252)
			fill_color 	13434879
			nlines     	2
			max_width  	906
			justify    	0
			label      	"EventSetDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A79D1D2004F"
		    compartment 	(object Compartment
			Parent_View 	@68
			location   	(1803, 1313)
			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  	778)
		    width      	924
		    height     	336
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$8" @69
		    location   	(1102, 1855)
		    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      	"3A79D4A80158"
		    roleview_list 	(list RoleViews
			(object RoleView "listenerType" @70
			    Parent_View 	@69
			    location   	(238, 959)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @71
				Parent_View 	@70
				location   	(676, 2057)
				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  	259
				justify    	0
				label      	"+listenerType"
				pctDist    	0.610677
				height     	33
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D4AA038B"
			    client     	@69
			    supplier   	@55
			    line_style 	0
			    label      	(object SegLabel @72
				Parent_View 	@70
				location   	(824, 2052)
				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      	"1"
				pctDist    	0.429590
				height     	83
				orientation 	0))
			(object RoleView "$UNNAMED$9" @73
			    Parent_View 	@69
			    location   	(238, 959)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D4AA03B4"
			    client     	@69
			    supplier   	@68
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$4" @74
		    location   	(1700, 1732)
		    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      	"3A79D3080128"
		    roleview_list 	(list RoleViews
			(object RoleView "addListenerMethod" @75
			    Parent_View 	@74
			    location   	(836, 836)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @76
				Parent_View 	@75
				location   	(1564, 1899)
				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  	385
				justify    	0
				label      	"+addListenerMethod"
				pctDist    	0.627386
				height     	90
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D3090346"
			    client     	@74
			    supplier   	@44
			    vertices   	(list Points
				(1700, 1732)
				(1647, 1763)
				(1658, 2009))
			    line_style 	0
			    label      	(object SegLabel @77
				Parent_View 	@75
				location   	(1702, 1914)
				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      	"1"
				pctDist    	0.694068
				height     	48
				orientation 	0))
			(object RoleView "$UNNAMED$5" @78
			    Parent_View 	@74
			    location   	(836, 836)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D309035A"
			    client     	@74
			    supplier   	@68
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$10" @79
		    location   	(1924, 1792)
		    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      	"3A79D4DF020B"
		    roleview_list 	(list RoleViews
			(object RoleView "removeListenerMethod" @80
			    Parent_View 	@79
			    location   	(1060, 896)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @81
				Parent_View 	@80
				location   	(1905, 1824)
				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  	448
				justify    	0
				label      	"+removeListenerMethod"
				pctDist    	0.129058
				height     	6
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D4E10395"
			    client     	@79
			    supplier   	@44
			    line_style 	0
			    label      	(object SegLabel @82
				Parent_View 	@80
				location   	(1798, 2022)
				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      	"1"
				pctDist    	0.900000
				height     	54
				orientation 	0))
			(object RoleView "$UNNAMED$11" @83
			    Parent_View 	@79
			    location   	(1060, 896)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D4E103A9"
			    client     	@79
			    supplier   	@68
			    line_style 	0)))
		(object InheritView "" @84
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DEA200EC"
		    client     	@68
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(2238, 1239)
		    terminal_attachment 	(2238, 1089)
		    drawSupplier 	@11)
		(object AssociationViewNew "$UNNAMED$30" @85
		    location   	(1161, 1934)
		    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      	"41F11E710387"
		    roleview_list 	(list RoleViews
			(object RoleView "eventAdapterClass" @86
			    Parent_View 	@85
			    location   	(-1095, 526)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @87
				Parent_View 	@86
				location   	(688, 2144)
				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  	367
				justify    	0
				label      	"+eventAdapterClass"
				pctDist    	0.629702
				height     	10
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F11E730249"
			    client     	@85
			    supplier   	@55
			    vertices   	(list Points
				(1161, 1934)
				(766, 2124)
				(383, 2172))
			    line_style 	0
			    label      	(object SegLabel @88
				Parent_View 	@86
				location   	(471, 2200)
				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.898257
				height     	38
				orientation 	0))
			(object RoleView "$UNNAMED$31" @89
			    Parent_View 	@85
			    location   	(-1095, 526)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F11E73025D"
			    client     	@85
			    supplier   	@68
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$6" @90
		    location   	(2419, 2140)
		    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      	"3A79D3E10364"
		    roleview_list 	(list RoleViews
			(object RoleView "listenerMethods" @91
			    Parent_View 	@90
			    location   	(1555, 1244)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @92
				Parent_View 	@91
				location   	(2501, 2590)
				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  	324
				justify    	0
				label      	"+listenerMethods"
				pctDist    	0.790503
				height     	19
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D3E6007D"
			    client     	@90
			    supplier   	@61
			    line_style 	0
			    label      	(object SegLabel @93
				Parent_View 	@91
				location   	(2491, 2524)
				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      	"1..n"
				pctDist    	0.676961
				height     	14
				orientation 	1))
			(object RoleView "$UNNAMED$7" @94
			    Parent_View 	@90
			    location   	(1555, 1244)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D3E60091"
			    client     	@90
			    supplier   	@68
			    line_style 	0)))
		(object AttachView "" @95
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@1
		    supplier   	@90
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$32" @96
		    location   	(2283, 2216)
		    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      	"41F1278A01A5"
		    roleview_list 	(list RoleViews
			(object RoleView "serListMthd" @97
			    Parent_View 	@96
			    location   	(27, 808)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @98
				Parent_View 	@97
				location   	(2262, 2707)
				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  	229
				justify    	0
				label      	"-serListMthd"
				pctDist    	0.765012
				height     	39
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F1278B021F"
			    client     	@96
			    supplier   	@61
			    vertices   	(list Points
				(2283, 2216)
				(2303, 2771)
				(2388, 2769))
			    line_style 	0
			    label      	(object SegLabel @99
				Parent_View 	@97
				location   	(2170, 2642)
				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      	"1..n"
				pctDist    	0.657692
				height     	129
				orientation 	1))
			(object RoleView "$UNNAMED$33" @100
			    Parent_View 	@96
			    location   	(27, 808)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F1278B0229"
			    client     	@96
			    supplier   	@68
			    line_style 	0)))
		(object InheritView "" @101
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3DFA19B600DE"
		    client     	@61
		    supplier   	@8
		    line_style 	0)
		(object AttachView "" @102
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@6
		    supplier   	@4
		    line_style 	0)
		(object AttachView "" @103
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@6
		    supplier   	@68
		    vertices   	(list Points
			(1878, 2808)
			(2016, 2021)
			(2189, 1576))
		    line_style 	0)
		(object ClassView "Class" "Logical View::beaninfo::PropertyDecorator" @104
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1424, 1408)
		    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 	@104
			location   	(1068, 1177)
			fill_color 	13434879
			nlines     	1
			max_width  	712
			justify    	0
			label      	"PropertyDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A79DA68010E"
		    compartment 	(object Compartment
			Parent_View 	@104
			location   	(1068, 1238)
			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     	8
			max_width  	603)
		    width      	730
		    height     	486
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @105
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DE840388"
		    client     	@40
		    supplier   	@104
		    line_style 	0)
		(object InheritView "" @106
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DE9702BD"
		    client     	@104
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(1391, 1165)
		    terminal_attachment 	(1391, 1089)
		    drawSupplier 	@11)
		(object AssociationViewNew "$UNNAMED$16" @107
		    location   	(1029, 1973)
		    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      	"3A79DBBD0000"
		    roleview_list 	(list RoleViews
			(object RoleView "readMethod" @108
			    Parent_View 	@107
			    location   	(261, 1077)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @109
				Parent_View 	@108
				location   	(1319, 2035)
				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  	254
				justify    	0
				label      	"+readMethod"
				pctDist    	0.553714
				height     	7
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DBBF0071"
			    client     	@107
			    supplier   	@44
			    line_style 	0
			    label      	(object SegLabel @110
				Parent_View 	@108
				location   	(1474, 2131)
				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.873365
				height     	72
				orientation 	1))
			(object RoleView "$UNNAMED$17" @111
			    Parent_View 	@107
			    location   	(261, 1077)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DBBF0085"
			    client     	@107
			    supplier   	@104
			    vertices   	(list Points
				(1029, 1973)
				(909, 1950)
				(1192, 1651))
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$18" @112
		    location   	(1035, 2105)
		    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      	"3A79DBDF02D0"
		    roleview_list 	(list RoleViews
			(object RoleView "writeMethod" @113
			    Parent_View 	@112
			    location   	(267, 1209)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @114
				Parent_View 	@113
				location   	(1325, 2090)
				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  	254
				justify    	0
				label      	"+writeMethod"
				pctDist    	0.560930
				height     	12
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DBE101F7"
			    client     	@112
			    supplier   	@44
			    line_style 	0
			    label      	(object SegLabel @115
				Parent_View 	@113
				location   	(1503, 2056)
				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.901632
				height     	43
				orientation 	0))
			(object RoleView "$UNNAMED$19" @116
			    Parent_View 	@112
			    location   	(267, 1209)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DBE1020B"
			    client     	@112
			    supplier   	@104
			    vertices   	(list Points
				(1035, 2105)
				(975, 2106)
				(1265, 1651))
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$14" @117
		    location   	(714, 1877)
		    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      	"3A79DB0B0339"
		    roleview_list 	(list RoleViews
			(object RoleView "propertyEditorClass" @118
			    Parent_View 	@117
			    location   	(-54, 981)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @119
				Parent_View 	@118
				location   	(670, 1937)
				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  	392
				justify    	0
				label      	"+propertyEditorClass"
				pctDist    	0.166430
				height     	26
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DB0E013F"
			    client     	@117
			    supplier   	@55
			    line_style 	0
			    label      	(object SegLabel @120
				Parent_View 	@118
				location   	(952, 1870)
				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.490182
				height     	126
				orientation 	0))
			(object RoleView "$UNNAMED$15" @121
			    Parent_View 	@117
			    location   	(-54, 981)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DB0E0171"
			    client     	@117
			    supplier   	@104
			    line_style 	0)))
		(object ClassView "Class" "Logical View::java::Field" @122
		    ShowCompartmentStereotypes 	TRUE
		    location   	(816, 2672)
		    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 	@122
			location   	(720, 2597)
			fill_color 	13434879
			nlines     	1
			max_width  	192
			justify    	0
			label      	"Field")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777088
		    quidu      	"3654AF8F0280"
		    width      	210
		    height     	174
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$34" @123
		    location   	(1193, 2164)
		    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      	"4207D83F01DA"
		    roleview_list 	(list RoleViews
			(object RoleView "field" @124
			    Parent_View 	@123
			    location   	(-215, 756)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @125
				Parent_View 	@124
				location   	(937, 2514)
				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  	112
				justify    	0
				label      	"+field"
				pctDist    	0.892515
				height     	57
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"4207D8400290"
			    client     	@123
			    supplier   	@122
			    vertices   	(list Points
				(1193, 2164)
				(1103, 2463)
				(921, 2593))
			    line_style 	0
			    label      	(object SegLabel @126
				Parent_View 	@124
				location   	(1042, 2560)
				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.780986
				height     	43
				orientation 	0))
			(object RoleView "$UNNAMED$35" @127
			    Parent_View 	@123
			    location   	(-215, 756)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"4207D8400292"
			    client     	@123
			    supplier   	@104
			    line_style 	0)))))))
