
(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"
		    documentation 	"Get the property type."
		    result     	"EClassifier"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3ACE4FEE0371")
		(object Operation "setPropertyType"
		    quid       	"4329D1CE030E"
		    documentation 	"Set the property type."
		    parameters 	(list Parameters
			(object Parameter "propertyType"
			    quid       	"4329D1E20168"
			    type       	"EClassifier"
			    quidu      	"3ACE4FEE0371"))
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0))
	    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   	94
	    items      	(list diagram_item_list
		(object NoteView @1
		    location   	(3232, 1712)
		    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   	(2950, 1624)
			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, 1105)
		    line_color 	3342489
		    fill_color 	13434879
		    supplier   	@10
		    vertices   	(list Points
			(1072, 1105)
			(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 	16777215
			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   	(4304, 1792)
		    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   	(4125, 1718)
			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   	(4864, 1360)
		    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   	(4631, 1279)
			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   	(4631, 1340)
			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  	294)
		    width      	484
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$26" @22
		    location   	(4578, 1579)
		    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   	(1666, -21)
			    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   	(4540, 1659)
				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   	(4480, 1588)
				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   	(1666, -21)
			    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 	(4658, 1267)
		    terminal_attachment 	(4658, 1105)
		    drawSupplier 	@11)
		(object ClassView "Class" "Logical View::beaninfo::MethodDecorator" @28
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(3712, 1360)
		    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   	(3362, 1279)
			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   	(3362, 1340)
			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  	594)
		    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 	(3694, 1267)
		    terminal_attachment 	(3694, 1105)
		    drawSupplier 	@11)
		(object AssociationViewNew "$UNNAMED$12" @30
		    location   	(4314, 1490)
		    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   	(2842, 594)
			    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   	(4389, 1427)
				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
				(4314, 1490)
				(4373, 1503)
				(4621, 1429))
			    line_style 	0
			    label      	(object SegLabel @33
				Parent_View 	@31
				location   	(4555, 1491)
				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   	(2842, 594)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DA1C0232"
			    client     	@30
			    supplier   	@28
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$28" @35
		    location   	(4385, 1273)
		    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   	(1265, -71)
			    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   	(4534, 1252)
				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   	(4590, 1364)
				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   	(1265, -71)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F016E802B1"
			    client     	@35
			    supplier   	@28
			    vertices   	(list Points
				(4385, 1273)
				(4326, 1263)
				(4071, 1302))
			    line_style 	0)))
		(object ClassView "Class" "Logical View::java::Method" @40
		    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 	@40
			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::beaninfo::MethodProxy" @41
		    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 	@41
			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 "" @42
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@2
		    supplier   	@41
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$24" @43
		    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" @44
			    Parent_View 	@43
			    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 @45
				Parent_View 	@44
				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     	@43
			    supplier   	@40
			    line_style 	0
			    label      	(object SegLabel @46
				Parent_View 	@44
				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" @47
			    Parent_View 	@43
			    location   	(271, 1084)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A89865C01CC"
			    client     	@43
			    supplier   	@41
			    line_style 	0)))
		(object InheritView "" @48
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3DFA19B600DE"
		    client     	@41
		    supplier   	@8
		    line_style 	0)
		(object AttachView "" @49
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@6
		    supplier   	@4
		    line_style 	0)
		(object ClassView "Class" "Logical View::beaninfo::IndexedPropertyDecorator" @50
		    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 	@50
			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" @51
		    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 	@51
			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 	@51
			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 "" @52
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DE8E007F"
		    client     	@51
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(381, 1137)
		    terminal_attachment 	(381, 1105)
		    drawSupplier 	@11)
		(object ClassView "Class" "Logical View::beaninfo::EventSetDecorator" @53
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2848, 1424)
		    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 	@53
			location   	(2395, 1268)
			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 	@53
			location   	(2395, 1329)
			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 InheritView "" @54
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DEA200EC"
		    client     	@53
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(2831, 1255)
		    terminal_attachment 	(2831, 1105)
		    drawSupplier 	@11)
		(object AssociationViewNew "$UNNAMED$6" @55
		    location   	(2692, 2148)
		    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" @56
			    Parent_View 	@55
			    location   	(1828, 1252)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @57
				Parent_View 	@56
				location   	(2580, 2585)
				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     	@55
			    supplier   	@41
			    line_style 	0
			    label      	(object SegLabel @58
				Parent_View 	@56
				location   	(2598, 2522)
				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" @59
			    Parent_View 	@55
			    location   	(1828, 1252)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D3E60091"
			    client     	@55
			    supplier   	@53
			    line_style 	0)))
		(object AttachView "" @60
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@1
		    supplier   	@55
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$32" @61
		    location   	(2525, 2221)
		    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" @62
			    Parent_View 	@61
			    location   	(269, 813)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @63
				Parent_View 	@62
				location   	(2296, 2688)
				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     	@61
			    supplier   	@41
			    vertices   	(list Points
				(2525, 2221)
				(2303, 2771)
				(2388, 2769))
			    line_style 	0
			    label      	(object SegLabel @64
				Parent_View 	@62
				location   	(2239, 2587)
				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" @65
			    Parent_View 	@61
			    location   	(269, 813)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F1278B0229"
			    client     	@61
			    supplier   	@53
			    line_style 	0)))
		(object AttachView "" @66
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@6
		    supplier   	@53
		    vertices   	(list Points
			(1878, 2808)
			(2016, 2021)
			(2612, 1592))
		    line_style 	0)
		(object ClassView "Class" "Logical View::java::Method" @67
		    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 	@67
			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" @68
		    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" @69
			    Parent_View 	@68
			    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 @70
				Parent_View 	@69
				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     	@68
			    supplier   	@67
			    vertices   	(list Points
				(1315, 2289)
				(1375, 2289)
				(1554, 2168))
			    line_style 	0
			    label      	(object SegLabel @71
				Parent_View 	@69
				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" @72
			    Parent_View 	@68
			    location   	(563, 401)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DE3503DE"
			    client     	@68
			    supplier   	@50
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$22" @73
		    location   	(1442, 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" @74
			    Parent_View 	@73
			    location   	(690, 473)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @75
				Parent_View 	@74
				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     	@73
			    supplier   	@67
			    vertices   	(list Points
				(1442, 2361)
				(1632, 2382)
				(1654, 2182))
			    line_style 	0
			    label      	(object SegLabel @76
				Parent_View 	@74
				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" @77
			    Parent_View 	@73
			    location   	(690, 473)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DE5503E4"
			    client     	@73
			    supplier   	@50
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$4" @78
		    location   	(1898, 1691)
		    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" @79
			    Parent_View 	@78
			    location   	(1034, 795)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @80
				Parent_View 	@79
				location   	(1561, 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  	385
				justify    	0
				label      	"+addListenerMethod"
				pctDist    	0.627386
				height     	90
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D3090346"
			    client     	@78
			    supplier   	@67
			    vertices   	(list Points
				(1898, 1691)
				(1647, 1763)
				(1658, 2009))
			    line_style 	0
			    label      	(object SegLabel @81
				Parent_View 	@79
				location   	(1699, 1853)
				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" @82
			    Parent_View 	@78
			    location   	(1034, 795)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D309035A"
			    client     	@78
			    supplier   	@53
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$10" @83
		    location   	(2162, 1812)
		    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" @84
			    Parent_View 	@83
			    location   	(1298, 916)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @85
				Parent_View 	@84
				location   	(2115, 1846)
				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     	@83
			    supplier   	@67
			    line_style 	0
			    label      	(object SegLabel @86
				Parent_View 	@84
				location   	(1839, 2058)
				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" @87
			    Parent_View 	@83
			    location   	(1298, 916)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D4E103A9"
			    client     	@83
			    supplier   	@53
			    line_style 	0)))
		(object ClassView "Class" "Logical View::java::JavaClass" @88
		    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 	@88
			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" @89
		    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" @90
			    Parent_View 	@89
			    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 @91
				Parent_View 	@90
				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     	@89
			    supplier   	@88
			    line_style 	0
			    label      	(object SegLabel @92
				Parent_View 	@90
				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" @93
			    Parent_View 	@89
			    location   	(92, 1043)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D13601E6"
			    client     	@89
			    supplier   	@51
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$8" @94
		    location   	(1384, 1854)
		    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" @95
			    Parent_View 	@94
			    location   	(520, 958)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @96
				Parent_View 	@95
				location   	(782, 2066)
				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     	@94
			    supplier   	@88
			    line_style 	0
			    label      	(object SegLabel @97
				Parent_View 	@95
				location   	(977, 2061)
				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" @98
			    Parent_View 	@94
			    location   	(520, 958)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79D4AA03B4"
			    client     	@94
			    supplier   	@53
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$30" @99
		    location   	(1392, 1913)
		    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" @100
			    Parent_View 	@99
			    location   	(-864, 505)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @101
				Parent_View 	@100
				location   	(771, 2132)
				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     	@99
			    supplier   	@88
			    vertices   	(list Points
				(1392, 1913)
				(766, 2124)
				(383, 2172))
			    line_style 	0
			    label      	(object SegLabel @102
				Parent_View 	@100
				location   	(494, 2197)
				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" @103
			    Parent_View 	@99
			    location   	(-864, 505)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F11E73025D"
			    client     	@99
			    supplier   	@53
			    line_style 	0)))
		(object ClassView "Class" "Logical View::java::Field" @104
		    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 	@104
			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 ClassView "Class" "Logical View::beaninfo::PropertyDecorator" @105
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1808, 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 	@105
			location   	(1316, 1200)
			fill_color 	13434879
			nlines     	1
			max_width  	984
			justify    	0
			label      	"PropertyDecorator")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A79DA68010E"
		    compartment 	(object Compartment
			Parent_View 	@105
			location   	(1316, 1261)
			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     	9
			max_width  	838)
		    width      	1002
		    height     	536
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @106
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DE840388"
		    client     	@50
		    supplier   	@105
		    line_style 	0)
		(object InheritView "" @107
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A79DE9702BD"
		    client     	@105
		    supplier   	@10
		    line_style 	3
		    origin_attachment 	(1772, 1188)
		    terminal_attachment 	(1772, 1105)
		    drawSupplier 	@11)
		(object AssociationViewNew "$UNNAMED$16" @108
		    location   	(1003, 1968)
		    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" @109
			    Parent_View 	@108
			    location   	(235, 1072)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @110
				Parent_View 	@109
				location   	(1308, 2033)
				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     	@108
			    supplier   	@67
			    line_style 	0
			    label      	(object SegLabel @111
				Parent_View 	@109
				location   	(1471, 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" @112
			    Parent_View 	@108
			    location   	(235, 1072)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DBBF0085"
			    client     	@108
			    supplier   	@105
			    vertices   	(list Points
				(1003, 1968)
				(909, 1950)
				(1316, 1724))
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$18" @113
		    location   	(1035, 2106)
		    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" @114
			    Parent_View 	@113
			    location   	(267, 1210)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @115
				Parent_View 	@114
				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     	@113
			    supplier   	@67
			    line_style 	0
			    label      	(object SegLabel @116
				Parent_View 	@114
				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" @117
			    Parent_View 	@113
			    location   	(267, 1210)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DBE1020B"
			    client     	@113
			    supplier   	@105
			    vertices   	(list Points
				(1035, 2106)
				(975, 2107)
				(1462, 1724))
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$14" @118
		    location   	(844, 1907)
		    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" @119
			    Parent_View 	@118
			    location   	(76, 1011)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @120
				Parent_View 	@119
				location   	(778, 1967)
				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     	@118
			    supplier   	@88
			    line_style 	0
			    label      	(object SegLabel @121
				Parent_View 	@119
				location   	(1123, 1915)
				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" @122
			    Parent_View 	@118
			    location   	(76, 1011)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3A79DB0E0171"
			    client     	@118
			    supplier   	@105
			    line_style 	0)))
		(object AssociationViewNew "$UNNAMED$34" @123
		    location   	(1296, 2186)
		    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   	(-112, 778)
			    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   	(938, 2513)
				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   	@104
			    vertices   	(list Points
				(1296, 2186)
				(1103, 2463)
				(921, 2593))
			    line_style 	0
			    label      	(object SegLabel @126
				Parent_View 	@124
				location   	(1046, 2557)
				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   	(-112, 778)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"4207D8400292"
			    client     	@123
			    supplier   	@105
			    line_style 	0)))))))
