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

(object Class_Category "java"
    is_unit    	TRUE
    is_loaded  	TRUE
    attributes 	(list Attribute_Set
	(object Attribute
	    tool       	"IDL"
	    name       	"uuid"
	    value      	(value Text "DCE:c74525a0-8826-11e1-0000-005d9e6adec4:1"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"basePackage"
	    value      	(value Text "org.eclipse.jem.internal"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"prefix"
	    value      	(value Text "JavaRef"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"nsURI"
	    value      	(value Text "java.xmi")))
    quid       	"36549F2C004E"
    documentation 	
|Changes to synch up with Java3e:
|- deleted JavaElement, BodyElement which didn't add anything useful
|- deleted NestedClass and the association which described nesting, contents can be used instead
|- deleted extends/extendedBy which is replaced with MOF subtype/supertype
|- deleted the clumsy main diagram
|- moved the MOF inheritance details to the MOF binding diagram
|- deleted "final" on JavaParameter, don't know what that was supposed to be
|- deleted the Category junk
|- changed the Block-typed attributes on Field, Method, Initializer to be associations to Block
|
|Outstanding questions/issues:
|- JavaParameterKind should go away if we get the base Parameter kind fixed up
|
    
    stereotype 	"metamodel"
    visible_categories 	(list visibility_relationship_list
	(object Visibility_Relationship
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0001-005d9e6adec4:1")))
	    quid       	"381DDF470271"
	    supplier   	"Logical View::mof"
	    quidu      	"374AA8F9028E")
	(object Visibility_Relationship
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0002-005d9e6adec4:1")))
	    quid       	"39BD366000FE"
	    supplier   	"Logical View::ecore"
	    quidu      	"39A5ED04004E"))
    exportControl 	"Public"
    logical_models 	(list unit_reference_list
	(object Class "JavaClass"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0003-005d9e6adec4:1")))
	    quid       	"36549FCC00FA"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0004-005d9e6adec4:1")))
		    quid       	"3990950000B3"
		    supplier   	"Logical View::ecore::EClass"
		    quidu      	"3903D5BF000A"))
	    operations 	(list Operations
		(object Operation "isNested"
		    quid       	"3A9D7C2101D6"
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "getField"
		    quid       	"3B65B5B30044"
		    documentation 	"Return an Field with the passed name, or null."
		    parameters 	(list Parameters
			(object Parameter "fieldName"
			    quid       	"3C62FAB901AA"
			    type       	"String"))
		    result     	"Field"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3654AF8F0280")
		(object Operation "getFieldExtended"
		    quid       	"3B65B625011A"
		    documentation 	
| Return an Field with the passed name from this JavaClass or any supertypes.
|
|Return null if a Field named fieldName is not found.
		    
		    parameters 	(list Parameters
			(object Parameter "fieldName"
			    quid       	"3C62FAB901AC"
			    type       	"String"))
		    result     	"Field"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3654AF8F0280")
		(object Operation "getFieldNamed"
		    quid       	"3B65B6670255"
		    documentation 	"Return an Field with the passed name, or null."
		    parameters 	(list Parameters
			(object Parameter "fieldName"
			    quid       	"3C62FAB901AE"
			    type       	"String"))
		    result     	"Field"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3654AF8F0280")
		(object Operation "getFieldsExtended"
		    quid       	"3B65B68A0328"
		    documentation 	"Return all fields, including those from supertypes."
		    result     	"JTypeList"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65B87602C1")
		(object Operation "getMethod"
		    quid       	"3B65B911021A"
		    documentation 	"Get the method of this name and these parameters. It will not look up the supertype hierarchy."
		    parameters 	(list Parameters
			(object Parameter "methodName"
			    quid       	"3C62FAB901B1"
			    type       	"String")
			(object Parameter "parameterTypes"
			    quid       	"3C62FAB901B2"
			    documentation 	"List of parameter types."
			    type       	"JTypeList"
			    quidu      	"3B65B87602C1"))
		    result     	"Method"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3654AE910271")
		(object Operation "getMethodElementSignatures"
		    quid       	"3B65B9EA03CA"
		    documentation 	"Return a List of Strings that represent MethodElement signatures from most general to most specific."
		    result     	"JTypeList"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65B87602C1")
		(object Operation "getMethodExtended"
		    quid       	"3B65BA510115"
		    documentation 	"Get the method of this name and these parameters. It will look up the supertype hierarchy."
		    parameters 	(list Parameters
			(object Parameter "methodName"
			    quid       	"3C62FAB901B5"
			    type       	"String")
			(object Parameter "parameterTypes"
			    quid       	"3C62FAB901B6"
			    documentation 	"List of parameter types."
			    type       	"JTypeList"
			    quidu      	"3B65B87602C1"))
		    result     	"Method"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3654AE910271")
		(object Operation "getMethodsExtended"
		    quid       	"3B65BA7D0354"
		    documentation 	"Return all methods, including those from supertypes."
		    result     	"JTypeList"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65B87602C1")
		(object Operation "getOnlySpecificMethods"
		    quid       	"3B65BAC3021E"
		    documentation 	
|Return a List of Methods that begins with @aMethodNamePrefix and is not included in the @excludedNames list. If @aMethodNamePrefix is null, all methods will be returned.
|
		    
		    parameters 	(list Parameters
			(object Parameter "aMethodNamePrefix"
			    quid       	"3C62FAB901B9"
			    type       	"String")
			(object Parameter "excludedNames"
			    quid       	"3C62FAB901BA"
			    type       	"JTypeList"
			    quidu      	"3B65B87602C1"))
		    result     	"JTypeList"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65B87602C1")
		(object Operation "getPublicMethod"
		    quid       	"3B65BBC90383"
		    documentation 	"Return a method matching the name, and non-return parameters with fully qualified types matching all the types in the list, if it exists.  It will not look up the supertype hierarchy."
		    parameters 	(list Parameters
			(object Parameter "methodName"
			    quid       	"3C62FAB901BC"
			    type       	"String")
			(object Parameter "parameterTypes"
			    quid       	"3C62FAB901BD"
			    documentation 	"List of parameter types."
			    type       	"JTypeList"
			    quidu      	"3B65B87602C1"))
		    result     	"Method"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3654AE910271")
		(object Operation "getPublicMethods"
		    quid       	"3B65BC3D034E"
		    documentation 	"Return all methods, it will not go up the supertype hierarchy."
		    result     	"JTypeList"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65B87602C1")
		(object Operation "getPublicMethodsExtended"
		    quid       	"3B65BC630320"
		    documentation 	"Return all public methods, including those from supertypes."
		    result     	"JTypeList"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65B87602C1")
		(object Operation "getPublicMethodsNamed"
		    quid       	"3B65BCAA005B"
		    documentation 	"Returns a filtered list on the methods of this class, having a name equal to that of the parameter."
		    parameters 	(list Parameters
			(object Parameter "name"
			    quid       	"3C62FAB901C1"
			    type       	"String"))
		    result     	"JTypeList"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65B87602C1")
		(object Operation "getSupertype"
		    quid       	"3B65BCF900CD"
		    result     	"JavaClass"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"36549FCC00FA")
		(object Operation "implementsInterface"
		    quid       	"3B65BD39009D"
		    documentation 	"Test whether the receiver implements the passed interface (or one of its supertypes)."
		    parameters 	(list Parameters
			(object Parameter "interfaceType"
			    quid       	"3C62FAB901C4"
			    type       	"JavaClass"
			    quidu      	"36549FCC00FA"))
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "infoString"
		    quid       	"3B65BD8202D3"
		    documentation 	"Return a string showing our details."
		    result     	"String"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "inheritsFrom"
		    quid       	"3B65BD9E02E7"
		    documentation 	"Tests whether this class inherits from the passed in class."
		    parameters 	(list Parameters
			(object Parameter "javaClass"
			    quid       	"3C62FAB901C7"
			    type       	"JavaClass"
			    quidu      	"36549FCC00FA"))
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "isExistingType"
		    quid       	"3B65BE110120"
		    documentation 	"Does this type exist."
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "isInterface"
		    quid       	"3B65BE2F0137"
		    documentation 	"Is this an interface."
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "setSupertype"
		    quid       	"3B65BE7B00A0"
		    documentation 	"Set the supertype."
		    parameters 	(list Parameters
			(object Parameter "javaclass"
			    quid       	"3C62FAB901CB"
			    type       	"JavaClass"
			    quidu      	"36549FCC00FA"))
		    result     	"void"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "kind"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0005-005d9e6adec4:1")))
		    quid       	"3654A45E0232"
		    type       	"TypeKind"
		    quidu      	"3654B46002BF"
		    exportControl 	"Public")
		(object ClassAttribute "public"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0006-005d9e6adec4:1")))
		    quid       	"380F8CE8020C"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "final"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0008-005d9e6adec4:1")))
		    quid       	"380F8F9C02D7"
		    type       	"boolean"
		    exportControl 	"Public"))
	    language   	"none")
	(object Class "Initializer"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0009-005d9e6adec4:1")))
	    quid       	"3654A5DC00BB"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "isStatic"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-000a-005d9e6adec4:1")))
		    quid       	"3654A865000F"
		    type       	"Boolean"
		    exportControl 	"Public"))
	    language   	"none")
	(object Class "JavaParameter"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-000b-005d9e6adec4:1")))
	    quid       	"3654AD780280"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3B7818B00186"
		    supplier   	"Logical View::ecore::EParameter"
		    quidu      	"3903E6150104")
		(object Inheritance_Relationship
		    quid       	"3B781A790039"
		    supplier   	"Logical View::ecore::EModelElement"
		    quidu      	"3903D4E40050"))
	    operations 	(list Operations
		(object Operation "isArray"
		    quid       	"3B65BFD4034F"
		    documentation 	"Is this parameter type an array type."
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "isReturn"
		    quid       	"3B65BFEF0005"
		    documentation 	"Is this a return parameter."
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "getJavaType"
		    quid       	"3B65C8E7001A"
		    result     	"JTypeJavaHelpers"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65ADE403A6")
		(object Operation "getQualifiedName"
		    quid       	"3B65C926002F"
		    result     	"String"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "final"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-000c-005d9e6adec4:1")))
		    quid       	"3654B64702AF"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "parameterKind"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-000e-005d9e6adec4:1")))
		    quid       	"391C1EB400C2"
		    type       	"JavaParameterKind"
		    quidu      	"391C1E8F0123"
		    exportControl 	"Public"))
	    language   	"none")
	(object Class "Method"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-000f-005d9e6adec4:1")))
	    quid       	"3654AE910271"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0010-005d9e6adec4:1")))
		    quid       	"3990953803AD"
		    supplier   	"Logical View::ecore::EOperation"
		    quidu      	"3904DAA200A0"))
	    operations 	(list Operations
		(object Operation "getContainingJavaClass"
		    quid       	"3B65C04202A3"
		    documentation 	"Return the java class that this method is defined in."
		    result     	"JavaClass"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"36549FCC00FA")
		(object Operation "getMethodElementSignature"
		    quid       	"3B65C076013F"
		    documentation 	
|Return a String with the the method name and its parameters. e.g. <code> setFirstName(java.lang.String) </code> .
| 
		    
		    result     	"String"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "getParameter"
		    quid       	"3B65C0B8011C"
		    documentation 	"Return a Parameter with the passed name, or null."
		    parameters 	(list Parameters
			(object Parameter "parameterName"
			    quid       	"3C62FAB901E3"
			    type       	"String"))
		    result     	"JavaParameter"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3654AD780280")
		(object Operation "getReturnType"
		    quid       	"3B65C1470013"
		    documentation 	"Get the return type."
		    result     	"JTypeJavaHelpers"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65ADE403A6")
		(object Operation "setReturnType"
		    quid       	"3B65C27403CE"
		    documentation 	"Set the return type"
		    parameters 	(list Parameters
			(object Parameter "type"
			    quid       	"3C62FAB901E8"
			    type       	"JTypeJavaHelpers"
			    quidu      	"3B65ADE403A6"))
		    result     	"void"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "getSignature"
		    quid       	"3B65C17D0043"
		    documentation 	
|Replicate the functionality of java.lang.reflect.Method.toString().
|
|Returns a string describing this Method.  The string is formatted as the method access modifiers, if any, followed by the method return type, followed by a space, followed by the class declaring the method, followed by a period, followed by the method name, followed by a parenthesized, comma-separated list of the method's formal parameter types. If the method throws checked exceptions, the parameter list is followed by a space, followed by the word throws followed by a comma-separated list of the thrown exception types.
|
|For example:
|
|    public boolean java.lang.Object.equals(java.lang.Object)
|
|The access modifiers are placed in canonical order as specified by "The Java Language Specification".  This is public, <tt>protected</tt> or <tt>private</tt> first, and then other modifiers in the following order: <tt>abstract</tt>, <tt>static</tt>, <tt>final</tt>, <tt>synchronized</tt> <tt>native</tt>.
|
		    
		    result     	"String"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "isGenerated"
		    quid       	"3B65C1FC006E"
		    documentation 	
|Returns true if the method is system generated.
|This is usually determined by the @generated tag in the comment.
		    
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "setIsGenerated"
		    quid       	"3B65C244037F"
		    documentation 	"Set the isGenerated flag."
		    parameters 	(list Parameters
			(object Parameter "generated"
			    quid       	"3C62FAB901EC"
			    type       	"boolean"))
		    result     	"void"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "isVoid"
		    quid       	"3B65C218038F"
		    documentation 	"Is this a void return type method."
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "abstract"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0011-005d9e6adec4:1")))
		    quid       	"380F90BC022B"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "native"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0012-005d9e6adec4:1")))
		    quid       	"380F90D10364"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "synchronized"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0013-005d9e6adec4:1")))
		    quid       	"380F90DB03C1"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "final"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0014-005d9e6adec4:1")))
		    quid       	"3829C6E00033"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "constructor"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0015-005d9e6adec4:1")))
		    quid       	"391ADD280245"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "static"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0016-005d9e6adec4:1")))
		    quid       	"3829C6E40350"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "javaVisibility"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0017-005d9e6adec4:1")))
		    quid       	"3829C6EB0397"
		    type       	"JavaVisibilityKind"
		    quidu      	"382333BE032E"
		    exportControl 	"Public"))
	    language   	"none")
	(object Class "Field"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0018-005d9e6adec4:1")))
	    quid       	"3654AF8F0280"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0019-005d9e6adec4:1")))
		    quid       	"39909513033B"
		    supplier   	"Logical View::ecore::EAttribute"
		    quidu      	"39238472039D"))
	    operations 	(list Operations
		(object Operation "getContainingJavaClass"
		    quid       	"3B65B5120024"
		    documentation 	"Get the class that this field is within."
		    result     	"JavaClass"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"36549FCC00FA")
		(object Operation "isArray"
		    quid       	"3B65B55F01E7"
		    documentation 	"Is this field an array type."
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "final"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-001d-005d9e6adec4:1")))
		    quid       	"3829C6BE026F"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "static"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-001e-005d9e6adec4:1")))
		    quid       	"3829C6C202ED"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "javaVisibility"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-001f-005d9e6adec4:1")))
		    quid       	"3829C6C7034F"
		    type       	"JavaVisibilityKind"
		    quidu      	"382333BE032E"
		    exportControl 	"Public"))
	    language   	"none")
	(object Class "TypeKind"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0020-005d9e6adec4:1")))
	    quid       	"3654B46002BF"
	    documentation 	"UNDEFINED=1 CLASS=2 INTERFACE=3 EXCEPTION=4"
	    stereotype 	"enumeration"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "UNDEFINED"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0021-005d9e6adec4:1")))
		    quid       	"380B9E3601A1"
		    exportControl 	"Public")
		(object ClassAttribute "CLASS"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0022-005d9e6adec4:1")))
		    quid       	"380B9E44025D"
		    exportControl 	"Public")
		(object ClassAttribute "INTERFACE"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0023-005d9e6adec4:1")))
		    quid       	"380B9E560124"
		    exportControl 	"Public")
		(object ClassAttribute "EXCEPTION"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0024-005d9e6adec4:1")))
		    quid       	"380B9E6501A1"
		    exportControl 	"Public"))
	    language   	"none")
	(object Class "Block"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0025-005d9e6adec4:1")))
	    quid       	"380F88370150"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "source"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0026-005d9e6adec4:1")))
		    quid       	"3810E7FC0239"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "name"
		    quid       	"3A6C53E10029"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "Comment"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0027-005d9e6adec4:1")))
	    quid       	"380F889B02B8"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0028-005d9e6adec4:1")))
		    quid       	"380F88D600A5"
		    supplier   	"Logical View::java::Block"
		    quidu      	"380F88370150")))
	(object Class "Statement"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0029-005d9e6adec4:1")))
	    quid       	"380F88B9025A"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-002a-005d9e6adec4:1")))
		    quid       	"380F88DA0056"
		    supplier   	"Logical View::java::Block"
		    quidu      	"380F88370150")))
	(object Class "JavaPackage"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-002b-005d9e6adec4:1")))
	    quid       	"38108E0301D2"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-002c-005d9e6adec4:1")))
		    quid       	"399094D70046"
		    supplier   	"Logical View::ecore::EPackage"
		    quidu      	"3905C3F7000A"))
	    language   	"Java")
	(object Class "JavaVisibilityKind"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0030-005d9e6adec4:1")))
	    quid       	"382333BE032E"
	    documentation 	
|PACKAGE=1
|PUBLIC=2
|PRIVATE=3
|PROTECTED=4
	    
	    stereotype 	"enumeration"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "PUBLIC"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0031-005d9e6adec4:1")))
		    quid       	"382333E2022C"
		    exportControl 	"Public")
		(object ClassAttribute "PRIVATE"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0032-005d9e6adec4:1")))
		    quid       	"382333E7003E"
		    exportControl 	"Public")
		(object ClassAttribute "PROTECTED"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0033-005d9e6adec4:1")))
		    quid       	"382333E80389"
		    exportControl 	"Public")
		(object ClassAttribute "PACKAGE"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0034-005d9e6adec4:1")))
		    quid       	"382333EA038C"
		    exportControl 	"Public")))
	(object Class "JavaParameterKind"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0035-005d9e6adec4:1")))
	    quid       	"391C1E8F0123"
	    documentation 	
|IN=0
|OUT=1
|INOUT=2
|RETURN=3
	    
	    stereotype 	"enumeration"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "IN"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0036-005d9e6adec4:1")))
		    quid       	"391C1EFC02EC"
		    exportControl 	"Public")
		(object ClassAttribute "OUT"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0037-005d9e6adec4:1")))
		    quid       	"391C1EFF016A"
		    exportControl 	"Public")
		(object ClassAttribute "INOUT"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0038-005d9e6adec4:1")))
		    quid       	"391C1F010040"
		    exportControl 	"Public")
		(object ClassAttribute "RETURN"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0039-005d9e6adec4:1")))
		    quid       	"391C21940387"
		    exportControl 	"Public")))
	(object Class "JavaDataType"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-003a-005d9e6adec4:1")))
	    quid       	"395913340316"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3E5268E201B1"
		    supplier   	"Logical View::ecore::EClass"
		    quidu      	"3903D5BF000A"))
	    operations 	(list Operations
		(object Operation "getDefaultValueString"
		    quid       	"3B65BF910303"
		    documentation 	"Return the default string representing the default value of the primitive."
		    result     	"String"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)))
	(object Class "ArrayType"
	    quid       	"3A9D79ED01DF"
	    documentation 	
|Describes a Java Array type
|   For multi-dimensional arrays, it is unlikely that the component type will be
|   specified directly.  This would require instantiating a chain of component types
|   such as String[][][][]->String[][][]->String[][]->String[]->String.
|
|  The component type relationship will be computed if the finalComponentType
|  and array dimensions is specified.
| 
|  For this reason, the preferred way to create is through the JavaRefFactory factory method:
|       createArrayType(JavaClass finalComponentType, int dimensions)
	    
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3A9D79FD010F"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"))
	    operations 	(list Operations
		(object Operation "getFinalComponentType"
		    quid       	"3A9D7A820193"
		    documentation 	
|Get the final component type for this Array Type.
|
|In order to ensure a unique instance, we will resolve this type using reflection. It turns out to be most efficient to just do this by trimming the name.
		    
		    result     	"JTypeJavaHelpers"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65ADE403A6")
		(object Operation "getComponentTypeAsHelper"
		    quid       	"3B65AF980136"
		    documentation 	
|Get the component type of this array. 
|
|If this is a multi-dimensional array, the component type will be the nested array type.
		    
		    result     	"JTypeJavaHelpers"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0
		    quidu      	"3B65ADE403A6")
		(object Operation "isPrimitiveArray"
		    quid       	"3B65B41702B8"
		    documentation 	"Is this an array of java primitives"
		    result     	"boolean"
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0)
		(object Operation "setComponentType"
		    quid       	"3B65B45503BC"
		    documentation 	"Set the component type."
		    parameters 	(list Parameters
			(object Parameter "helperComponentType"
			    quid       	"3C62FAB90226"
			    type       	"JTypeJavaHelpers"
			    quidu      	"3B65ADE403A6"))
		    concurrency 	"Sequential"
		    opExportControl 	"Public"
		    uid        	0))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "arrayDimensions"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Java"
			    name       	"Final"
			    value      	FALSE)
			(object Attribute
			    tool       	"Java"
			    name       	"Volatile"
			    value      	FALSE)
			(object Attribute
			    tool       	"Java"
			    name       	"Transient"
			    value      	FALSE)
			(object Attribute
			    tool       	"Java"
			    name       	"IndividualChangeMgt"
			    value      	FALSE)
			(object Attribute
			    tool       	"Java"
			    name       	"PropertyType"
			    value      	("BeanProperty_Set" 71))
			(object Attribute
			    tool       	"Java"
			    name       	"Read/Write"
			    value      	("Read/Write_Set" 81)))
		    quid       	"3A9D7AC80284"
		    type       	"int"
		    exportControl 	"Public"))
	    language   	"Java")
	(object Class "JTypeJavaHelpers"
	    quid       	"3B65ADE403A6"
	    documentation 	"This interface is a common interface between JavaClass and JavaDataType plus some common helper methods."
	    stereotype 	"datatype"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "org.eclipse.jem.internal.java.JavaHelpers"
		    quid       	"3B65AE170269"
		    stereotype 	"javaclass"
		    exportControl 	"Public")))
	(object Class "JTypeList"
	    quid       	"3B65B87602C1"
	    documentation 	"java.util.List type"
	    stereotype 	"datatype"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "java.util.List"
		    quid       	"3B65B88F0399"
		    stereotype 	"javaclass"
		    exportControl 	"Public")))
	(object Class "JavaEvent"
	    quid       	"3C62FAF103C8"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3DF4CE830390"
		    supplier   	"Logical View::ecore::EStructuralFeature"
		    quidu      	"3903D59D0230"))
	    abstract   	TRUE)
	(object Association "Implements"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-003c-005d9e6adec4:1")))
	    quid       	"3654A0D70242"
	    documentation 	"Constraint - Source of implements is of TypeKind CLASSTYPE and target is INTERFACETYPE"
	    roles      	(list role_list
		(object Role "implementsInterfaces"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-003d-005d9e6adec4:1")))
		    quid       	"3654A0DA0109"
		    label      	"implementsInterfaces"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n")
		    is_navigable 	TRUE)
		(object Role "implementedBy"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-003e-005d9e6adec4:1")))
		    quid       	"3654A0DA0138"
		    label      	"implementedBy"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n"))))
	(object Association "MethodHas"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-003f-005d9e6adec4:1")))
	    quid       	"3654AF0302CE"
	    roles      	(list role_list
		(object Role "parameters"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0040-005d9e6adec4:1")))
		    quid       	"3654AF080196"
		    label      	"parameters"
		    supplier   	"Logical View::java::JavaParameter"
		    quidu      	"3654AD780280"
		    client_cardinality 	(value cardinality "0..n")
		    Constraints 	"ordered"
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "method"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0041-005d9e6adec4:1")))
		    quid       	"3654AF080197"
		    label      	"method"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "0..1")
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$0"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0042-005d9e6adec4:1")))
	    quid       	"3654B08801A5"
	    roles      	(list role_list
		(object Role "/type"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0043-005d9e6adec4:1")))
		    quid       	"3654B091007D"
		    label      	"/type"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    is_navigable 	TRUE)
		(object Role "/typedElement"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0044-005d9e6adec4:1")))
		    quid       	"3654B091008C"
		    label      	"/typedElement"
		    supplier   	"Logical View::java::JavaParameter"
		    quidu      	"3654AD780280"
		    client_cardinality 	(value cardinality "1"))))
	(object Association "MethodThrows"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0045-005d9e6adec4:1")))
	    quid       	"3810B61B0178"
	    documentation 	"Target must be of kind EXCEPTIONTYPE"
	    roles      	(list role_list
		(object Role "javaExceptions"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0046-005d9e6adec4:1")))
		    quid       	"3810B61E01C3"
		    label      	"javaExceptions"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n")
		    is_navigable 	TRUE)
		(object Role "method"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0047-005d9e6adec4:1")))
		    quid       	"3810B61E0227"
		    label      	"method"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271")))
	(object Association "Contents"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0048-005d9e6adec4:1")))
	    quid       	"3810E6080268"
	    roles      	(list role_list
		(object Role "containedBy"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0049-005d9e6adec4:1")))
		    quid       	"3810E60E0144"
		    label      	"containedBy"
		    supplier   	"Logical View::java::Block"
		    quidu      	"380F88370150"
		    client_cardinality 	(value cardinality "0..1")
		    is_aggregate 	TRUE)
		(object Role "contents"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-004a-005d9e6adec4:1")))
		    quid       	"3810E60E0162"
		    label      	"contents"
		    supplier   	"Logical View::java::Block"
		    quidu      	"380F88370150"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)))
	(object Association "ClassImports"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-004b-005d9e6adec4:1")))
	    quid       	"3829C4BF000D"
	    roles      	(list role_list
		(object Role "classImport"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-004c-005d9e6adec4:1")))
		    quid       	"3829C4BF000E"
		    label      	"classImport"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n")
		    Constraints 	"ordered"
		    is_navigable 	TRUE)
		(object Role "importedBy"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-004d-005d9e6adec4:1")))
		    quid       	"3829C4BF000F"
		    label      	"importedBy"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n"))))
	(object Association "PackageImports"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-004e-005d9e6adec4:1")))
	    quid       	"3829C4EC0207"
	    roles      	(list role_list
		(object Role "packageImports"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-004f-005d9e6adec4:1")))
		    quid       	"3829C4EE00FB"
		    label      	"packageImports"
		    supplier   	"Logical View::java::JavaPackage"
		    quidu      	"38108E0301D2"
		    client_cardinality 	(value cardinality "0..n")
		    Constraints 	"ordered"
		    is_navigable 	TRUE)
		(object Role "importedBy"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0050-005d9e6adec4:1")))
		    quid       	"3829C4EE0105"
		    label      	"importedBy"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n"))))
	(object Association "$UNNAMED$1"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0051-005d9e6adec4:1")))
	    quid       	"382A29BD0219"
	    roles      	(list role_list
		(object Role "fields"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0052-005d9e6adec4:1")))
		    quid       	"382A29BE0350"
		    label      	"fields"
		    supplier   	"Logical View::java::Field"
		    quidu      	"3654AF8F0280"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "javaClass"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0053-005d9e6adec4:1")))
		    quid       	"382A29BE03BF"
		    label      	"javaClass"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    is_navigable 	TRUE
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$2"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0054-005d9e6adec4:1")))
	    quid       	"382A29C0017D"
	    roles      	(list role_list
		(object Role "methods"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0055-005d9e6adec4:1")))
		    quid       	"382A29C10174"
		    label      	"methods"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "javaClass"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0056-005d9e6adec4:1")))
		    quid       	"382A29C1020A"
		    label      	"javaClass"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    is_navigable 	TRUE
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$3"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0057-005d9e6adec4:1")))
	    quid       	"392A9EB403C6"
	    roles      	(list role_list
		(object Role "/supertype"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0058-005d9e6adec4:1")))
		    quid       	"392A9EB803B7"
		    label      	"/supertype"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "1")
		    is_navigable 	TRUE)
		(object Role "/subtype"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0059-005d9e6adec4:1")))
		    quid       	"392A9EB90098"
		    label      	"/subtype"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n"))))
	(object Association "$UNNAMED$4"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-005a-005d9e6adec4:1")))
	    quid       	"392A9F0301AC"
	    roles      	(list role_list
		(object Role "/supertype"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-005b-005d9e6adec4:1")))
		    quid       	"392A9F090328"
		    label      	"/supertype"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n")
		    is_navigable 	TRUE)
		(object Role "/subtype"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-005c-005d9e6adec4:1")))
		    quid       	"392A9F0A001C"
		    label      	"/subtype"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n")
		    is_navigable 	TRUE)))
	(object Association "$UNNAMED$5"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-005d-005d9e6adec4:1")))
	    quid       	"392AA09503E5"
	    roles      	(list role_list
		(object Role "initializers"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-005e-005d9e6adec4:1")))
		    quid       	"392AA0970153"
		    label      	"initializers"
		    supplier   	"Logical View::java::Initializer"
		    quidu      	"3654A5DC00BB"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "javaClass"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-005f-005d9e6adec4:1")))
		    quid       	"392AA097015D"
		    label      	"javaClass"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    is_navigable 	TRUE
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$6"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0060-005d9e6adec4:1")))
	    quid       	"392AA21200C2"
	    roles      	(list role_list
		(object Role "declaredClasses"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0061-005d9e6adec4:1")))
		    quid       	"392AA21701D8"
		    label      	"declaredClasses"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n")
		    is_navigable 	TRUE)
		(object Role "declaringClass"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0062-005d9e6adec4:1")))
		    quid       	"392AA21702DC"
		    label      	"declaringClass"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..1")
		    is_navigable 	TRUE
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$7"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0063-005d9e6adec4:1")))
	    quid       	"392AA2A701C1"
	    stereotype 	"derived"
	    roles      	(list role_list
		(object Role "javaClasses"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0064-005d9e6adec4:1"))
			(object Attribute
			    tool       	"Ecore"
			    name       	"isTransient"
			    value      	TRUE)
			(object Attribute
			    tool       	"Ecore"
			    name       	"isVolatile"
			    value      	TRUE)
			(object Attribute
			    tool       	"Ecore"
			    name       	"isChangeable"
			    value      	FALSE))
		    quid       	"392AA2A80367"
		    label      	"javaClasses"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    client_cardinality 	(value cardinality "0..n")
		    is_navigable 	TRUE)
		(object Role "javaPackage"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0065-005d9e6adec4:1"))
			(object Attribute
			    tool       	"Ecore"
			    name       	"isTransient"
			    value      	TRUE)
			(object Attribute
			    tool       	"Ecore"
			    name       	"isVolatile"
			    value      	TRUE)
			(object Attribute
			    tool       	"Ecore"
			    name       	"isChangeable"
			    value      	FALSE))
		    quid       	"392AA2A90083"
		    label      	"javaPackage"
		    supplier   	"Logical View::java::JavaPackage"
		    quidu      	"38108E0301D2"
		    client_cardinality 	(value cardinality "0..1")
		    is_navigable 	TRUE
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$8"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0066-005d9e6adec4:1")))
	    quid       	"392AAC33036A"
	    roles      	(list role_list
		(object Role "source"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0067-005d9e6adec4:1")))
		    quid       	"392AAC380140"
		    label      	"source"
		    supplier   	"Logical View::java::Block"
		    quidu      	"380F88370150"
		    client_cardinality 	(value cardinality "0..1")
		    is_navigable 	TRUE)
		(object Role "initializer"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-0068-005d9e6adec4:1")))
		    quid       	"392AAC380168"
		    label      	"initializer"
		    supplier   	"Logical View::java::Initializer"
		    quidu      	"3654A5DC00BB")))
	(object Association "$UNNAMED$9"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-0069-005d9e6adec4:1")))
	    quid       	"392AAC5602A2"
	    roles      	(list role_list
		(object Role "initializer"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-006a-005d9e6adec4:1")))
		    quid       	"392AAC5702DF"
		    label      	"initializer"
		    supplier   	"Logical View::java::Block"
		    quidu      	"380F88370150"
		    client_cardinality 	(value cardinality "0..1")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "field"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c74525a0-8826-11e1-006b-005d9e6adec4:1")))
		    quid       	"392AAC570307"
		    label      	"field"
		    supplier   	"Logical View::java::Field"
		    quidu      	"3654AF8F0280"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$10"
	    attributes 	(list Attribute_Set
		(object Attribute
		    tool       	"IDL"
		    name       	"uuid"
		    value      	(value Text "DCE:c74525a0-8826-11e1-006c-005d9e6adec4:1")))
	    quid       	"392AACA501E7"
	    roles      	(list role_list
		(object Role "source"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c746ac40-8826-11e1-0000-005d9e6adec4:1")))
		    quid       	"392AACA7017C"
		    label      	"source"
		    supplier   	"Logical View::java::Block"
		    quidu      	"380F88370150"
		    client_cardinality 	(value cardinality "0..1")
		    is_navigable 	TRUE)
		(object Role "method"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"IDL"
			    name       	"uuid"
			    value      	(value Text "DCE:c746ac40-8826-11e1-0001-005d9e6adec4:1")))
		    quid       	"392AACA701B8"
		    label      	"method"
		    supplier   	"Logical View::java::Method"
		    quidu      	"3654AE910271")))
	(object Association "$UNNAMED$11"
	    quid       	"3C62FBE00168"
	    roles      	(list role_list
		(object Role "events"
		    quid       	"3C62FBE2008F"
		    label      	"events"
		    supplier   	"Logical View::java::JavaEvent"
		    quidu      	"3C62FAF103C8"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$12"
		    quid       	"3C62FBE20091"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$13"
	    quid       	"3C8938770253"
	    roles      	(list role_list
		(object Role "allEvents"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isTransient"
			    value      	TRUE)
			(object Attribute
			    tool       	"Ecore"
			    name       	"isVolatile"
			    value      	TRUE))
		    quid       	"3C89387802CC"
		    label      	"allEvents"
		    supplier   	"Logical View::java::JavaEvent"
		    quidu      	"3C62FAF103C8"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$14"
		    quid       	"3C89387802CE"
		    supplier   	"Logical View::java::JavaClass"
		    quidu      	"36549FCC00FA"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$15"
	    quid       	"3DF4CAAD01A3"
	    roles      	(list role_list
		(object Role "componentType"
		    quid       	"3DF4CAAE01EB"
		    label      	"componentType"
		    supplier   	"Logical View::ecore::EClassifier"
		    quidu      	"3ACE4FEE0371"
		    client_cardinality 	(value cardinality "1")
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$16"
		    quid       	"3DF4CAAE01F5"
		    supplier   	"Logical View::java::ArrayType"
		    quidu      	"3A9D79ED01DF"))))
    logical_presentations 	(list unit_reference_list
	(object ClassDiagram "Ecore binding"
	    quid       	"38109C0F009B"
	    title      	"Ecore binding"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	1636
	    origin_y   	194
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::Field" @1
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1008, 544)
		    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   	(593, 381)
			fill_color 	13434879
			nlines     	1
			max_width  	830
			justify    	0
			label      	"Field")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AF8F0280"
		    compartment 	(object Compartment
			Parent_View 	@1
			location   	(593, 437)
			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     	6
			max_width  	703)
		    width      	848
		    height     	348
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaPackage" @2
		    ShowCompartmentStereotypes 	TRUE
		    IncludeOperation 	TRUE
		    location   	(192, 480)
		    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   	(31, 434)
			fill_color 	13434879
			nlines     	1
			max_width  	322
			justify    	0
			label      	"JavaPackage")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"38108E0301D2"
		    width      	340
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EPackage" @3
		    ShowCompartmentStereotypes 	TRUE
		    location   	(192, 144)
		    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 	@3
			location   	(103, 45)
			nlines     	2
			max_width  	178
			justify    	0
			label      	"EPackage")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3905C3F7000A"
		    width      	196
		    height     	222
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @4
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"399094D70046"
		    client     	@2
		    supplier   	@3
		    line_style 	0)
		(object ClassView "Class" "Logical View::ecore::EClass" @5
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1728, 1824)
		    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 	@5
			location   	(1465, 1615)
			nlines     	2
			max_width  	526
			justify    	0
			label      	"EClass")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903D5BF000A"
		    compartment 	(object Compartment
			Parent_View 	@5
			location   	(1465, 1715)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			anchor     	2
			nlines     	6
			max_width  	445)
		    width      	544
		    height     	440
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EAttribute" @6
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(896, 160)
		    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   	(687, 6)
			nlines     	2
			max_width  	418
			justify    	0
			label      	"EAttribute")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"39238472039D"
		    compartment 	(object Compartment
			Parent_View 	@6
			location   	(687, 106)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			anchor     	2
			nlines     	2
			max_width  	257)
		    width      	436
		    height     	332
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @7
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"39909513033B"
		    client     	@1
		    supplier   	@6
		    line_style 	3
		    origin_attachment 	(991, 369)
		    terminal_attachment 	(991, 326))
		(object ClassView "Class" "Logical View::ecore::EOperation" @8
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2320, 144)
		    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   	(2231, 45)
			nlines     	2
			max_width  	178
			justify    	0
			label      	"EOperation")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3904DAA200A0"
		    width      	196
		    height     	222
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaDataType" @9
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(352, 1216)
		    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   	(11, 1143)
			fill_color 	13434879
			nlines     	1
			max_width  	682
			justify    	0
			label      	"JavaDataType")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"395913340316"
		    compartment 	(object Compartment
			Parent_View 	@9
			location   	(11, 1199)
			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  	578)
		    width      	700
		    height     	168
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Method" @10
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(2336, 768)
		    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   	(1736, 357)
			fill_color 	13434879
			nlines     	1
			max_width  	1200
			justify    	0
			label      	"Method")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AE910271"
		    compartment 	(object Compartment
			Parent_View 	@10
			location   	(1736, 413)
			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     	17
			max_width  	1020)
		    width      	1218
		    height     	844
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @11
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3990953803AD"
		    client     	@10
		    supplier   	@8
		    line_style 	3
		    origin_attachment 	(2376, 346)
		    terminal_attachment 	(2376, 255))
		(object ClassView "Class" "Logical View::java::JavaClass" @12
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1312, 2864)
		    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 	@12
			location   	(330, 2273)
			fill_color 	13434879
			nlines     	1
			max_width  	1964
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    compartment 	(object Compartment
			Parent_View 	@12
			location   	(330, 2329)
			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     	25
			max_width  	1673)
		    width      	1982
		    height     	1204
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @13
		    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      	"3990950000B3"
		    client     	@12
		    supplier   	@5
		    line_style 	3
		    origin_attachment 	(1594, 2262)
		    terminal_attachment 	(1594, 2044))
		(object ClassView "Class" "Logical View::java::JavaParameter" @14
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1008, 1472)
		    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 	@14
			location   	(608, 1286)
			fill_color 	13434879
			nlines     	1
			max_width  	800
			justify    	0
			label      	"JavaParameter")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AD780280"
		    compartment 	(object Compartment
			Parent_View 	@14
			location   	(608, 1342)
			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     	7
			max_width  	678)
		    width      	818
		    height     	394
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EParameter" @15
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1008, 960)
		    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 	@15
			location   	(919, 861)
			nlines     	2
			max_width  	178
			justify    	0
			label      	"EParameter")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903E6150104"
		    width      	196
		    height     	222
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @16
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3B7818B00186"
		    client     	@14
		    supplier   	@15
		    line_style 	0)
		(object ClassView "Class" "Logical View::ecore::EModelElement" @17
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1408, 976)
		    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 	@17
			location   	(1230, 847)
			nlines     	2
			max_width  	356
			justify    	0
			label      	"EModelElement")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903D4E40050"
		    compartment 	(object Compartment
			Parent_View 	@17
			location   	(1230, 949)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	TRUE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			anchor     	2
			nlines     	2
			max_width  	347)
		    width      	374
		    height     	282
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @18
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3B781A790039"
		    client     	@14
		    supplier   	@17
		    line_style 	0)
		(object NoteView @19
		    location   	(1600, 1376)
		    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   	(1435, 1237)
			fill_color 	13434879
			nlines     	6
			max_width  	295
			label      	"Temp until eParameter is back under eModelElement.")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	355
		    height     	290)
		(object AttachView "" @20
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@19
		    supplier   	@18
		    line_style 	0)
		(object ClassView "Class" "Logical View::ecore::EClass" @21
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(320, 816)
		    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   	(56, 630)
			nlines     	1
			max_width  	528
			justify    	0
			label      	"EClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903D5BF000A"
		    compartment 	(object Compartment
			Parent_View 	@21
			location   	(56, 730)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			anchor     	2
			nlines     	6
			max_width  	445)
		    width      	546
		    height     	394
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @22
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3E5268E201B1"
		    client     	@9
		    supplier   	@21
		    line_style 	0)))
	(object ClassDiagram "Polymorphism"
	    quid       	"38109D000373"
	    title      	"Polymorphism"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	0
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::JavaClass" @23
		    ShowCompartmentStereotypes 	TRUE
		    location   	(496, 576)
		    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 	@23
			location   	(385, 525)
			fill_color 	13434879
			nlines     	1
			max_width  	222
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    width      	240
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$3" @24
		    location   	(166, 539)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392A9EB403C6"
		    roleview_list 	(list RoleViews
			(object RoleView "/supertype" @25
			    Parent_View 	@24
			    location   	(-330, 219)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @26
				Parent_View 	@25
				location   	(241, 480)
				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  	226
				justify    	0
				label      	"+/supertype"
				pctDist    	0.419192
				height     	38
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392A9EB803B7"
			    client     	@24
			    supplier   	@23
			    vertices   	(list Points
				(166, 539)
				(166, 517)
				(376, 517))
			    line_style 	3
			    origin_attachment 	(166, 539)
			    terminal_attachment 	(376, 517)
			    label      	(object SegLabel @27
				Parent_View 	@25
				location   	(352, 464)
				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 "/subtype" @28
			    Parent_View 	@24
			    location   	(-330, 219)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @29
				Parent_View 	@28
				location   	(268, 585)
				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  	188
				justify    	0
				label      	"+/subtype"
				pctDist    	0.532468
				height     	24
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392A9EB90098"
			    client     	@24
			    supplier   	@23
			    vertices   	(list Points
				(166, 539)
				(166, 561)
				(376, 561))
			    line_style 	3
			    origin_attachment 	(166, 539)
			    terminal_attachment 	(376, 561)
			    label      	(object SegLabel @30
				Parent_View 	@28
				location   	(352, 615)
				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.900000
				height     	54
				orientation 	1))))
		(object ClassView "Class" "Logical View::java::JavaClass" @31
		    ShowCompartmentStereotypes 	TRUE
		    location   	(1392, 576)
		    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 	@31
			location   	(1281, 525)
			fill_color 	13434879
			nlines     	1
			max_width  	222
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    width      	240
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "Implements" @32
		    location   	(944, 521)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3654A0D70242"
		    roleview_list 	(list RoleViews
			(object RoleView "implementsInterfaces" @33
			    Parent_View 	@32
			    location   	(430, -54)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @34
				Parent_View 	@33
				location   	(832, 488)
				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  	407
				justify    	0
				label      	"+implementsInterfaces"
				pctDist    	-0.343558
				height     	34
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3654A0DA0109"
			    client     	@32
			    supplier   	@31
			    line_style 	3
			    origin_attachment 	(944, 521)
			    terminal_attachment 	(1272, 521)
			    label      	(object SegLabel @35
				Parent_View 	@33
				location   	(1197, 485)
				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.773006
				height     	37
				orientation 	0))
			(object RoleView "implementedBy" @36
			    Parent_View 	@32
			    location   	(430, -54)
			    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   	(1097, 575)
				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  	312
				justify    	0
				label      	"+implementedBy"
				pctDist    	-0.470769
				height     	54
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3654A0DA0138"
			    client     	@32
			    supplier   	@23
			    line_style 	3
			    origin_attachment 	(944, 521)
			    terminal_attachment 	(616, 521)
			    label      	(object SegLabel @38
				Parent_View 	@36
				location   	(667, 564)
				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.843230
				height     	43
				orientation 	0))))
		(object AssociationViewNew "$UNNAMED$4" @39
		    location   	(1750, 601)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392A9F0301AC"
		    roleview_list 	(list RoleViews
			(object RoleView "/supertype" @40
			    Parent_View 	@39
			    location   	(358, 265)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @41
				Parent_View 	@40
				location   	(1716, 640)
				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  	226
				justify    	0
				label      	"+/supertype"
				pctDist    	0.227273
				height     	13
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392A9F090328"
			    client     	@39
			    supplier   	@31
			    vertices   	(list Points
				(1750, 601)
				(1750, 627)
				(1512, 627))
			    line_style 	3
			    origin_attachment 	(1750, 601)
			    terminal_attachment 	(1512, 627)
			    label      	(object SegLabel @42
				Parent_View 	@40
				location   	(1538, 574)
				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.900000
				height     	54
				orientation 	1))
			(object RoleView "/subtype" @43
			    Parent_View 	@39
			    location   	(358, 265)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @44
				Parent_View 	@43
				location   	(1614, 553)
				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  	188
				justify    	0
				label      	"+/subtype"
				pctDist    	0.615970
				height     	24
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392A9F0A001C"
			    client     	@39
			    supplier   	@31
			    vertices   	(list Points
				(1750, 601)
				(1750, 576)
				(1512, 576))
			    line_style 	3
			    origin_attachment 	(1750, 601)
			    terminal_attachment 	(1512, 576)
			    label      	(object SegLabel @45
				Parent_View 	@43
				location   	(1538, 630)
				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.900000
				height     	54
				orientation 	0))))))
	(object ClassDiagram "Main"
	    quid       	"38109F92000B"
	    title      	"Main"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	0
	    items      	(list diagram_item_list
		(object NoteView @46
		    location   	(848, 1840)
		    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 	@46
			location   	(551, 1718)
			fill_color 	13434879
			nlines     	4
			max_width  	559
			label      	"This should really be JavaClass and JavaDataType, eClassifier is their closest common ancestor.")
		    line_color 	3342489
		    fill_color 	8421631
		    width      	619
		    height     	256)
		(object NoteView @47
		    location   	(272, 320)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@47
			location   	(107, 166)
			fill_color 	13434879
			nlines     	6
			max_width  	295
			label      	"The classes will be contained by the standard EPackage metaObjects relationship.")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	355
		    height     	320)
		(object ClassView "Class" "Logical View::java::Field" @48
		    ShowCompartmentStereotypes 	TRUE
		    location   	(1776, 480)
		    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 	@48
			location   	(1680, 428)
			fill_color 	13434879
			nlines     	1
			max_width  	192
			justify    	0
			label      	"Field")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AF8F0280"
		    width      	210
		    height     	128
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Initializer" @49
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1568, 224)
		    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 	@49
			location   	(1348, 143)
			fill_color 	13434879
			nlines     	1
			max_width  	440
			justify    	0
			label      	"Initializer")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654A5DC00BB"
		    width      	458
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaPackage" @50
		    ShowCompartmentStereotypes 	TRUE
		    IncludeOperation 	TRUE
		    location   	(608, 96)
		    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   	(450, 45)
			fill_color 	13434879
			nlines     	1
			max_width  	316
			justify    	0
			label      	"JavaPackage")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"38108E0301D2"
		    width      	334
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaParameter" @51
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    location   	(1744, 1584)
		    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   	(1333, 1478)
			fill_color 	13434879
			nlines     	1
			max_width  	822
			justify    	0
			label      	"JavaParameter")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AD780280"
		    width      	840
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Method" @52
		    ShowCompartmentStereotypes 	TRUE
		    location   	(1712, 992)
		    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 	@52
			location   	(1612, 941)
			fill_color 	13434879
			nlines     	1
			max_width  	200
			justify    	0
			label      	"Method")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AE910271"
		    width      	218
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "MethodHas" @53
		    location   	(1700, 1260)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3654AF0302CE"
		    roleview_list 	(list RoleViews
			(object RoleView "method" @54
			    Parent_View 	@53
			    location   	(308, 236)
			    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      	"3654AF080197"
			    client     	@53
			    supplier   	@52
			    line_style 	3
			    origin_attachment 	(1700, 1260)
			    terminal_attachment 	(1700, 1055)
			    label      	(object SegLabel @55
				Parent_View 	@54
				location   	(1633, 1101)
				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.781659
				height     	68
				orientation 	0))
			(object RoleView "parameters" @56
			    Parent_View 	@53
			    location   	(308, 236)
			    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   	(1837, 1425)
				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  	235
				justify    	0
				label      	"+parameters"
				pctDist    	0.803565
				height     	137
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3654AF080196"
			    client     	@53
			    supplier   	@51
			    line_style 	3
			    origin_attachment 	(1700, 1260)
			    terminal_attachment 	(1700, 1465)
			    label      	(object SegLabel @58
				Parent_View 	@56
				location   	(1636, 1446)
				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.905128
				height     	65
				orientation 	1)
			    label      	(object SegLabel @59
				Parent_View 	@56
				location   	(1592, 1388)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	3
				anchor_loc 	1
				nlines     	1
				max_width  	159
				justify    	0
				label      	"{ordered}"
				pctDist    	0.628821
				height     	109
				orientation 	1))))
		(object ClassView "Class" "Logical View::java::JavaEvent" @60
		    ShowCompartmentStereotypes 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(2192, 656)
		    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 	@60
			location   	(2058, 605)
			fill_color 	13434879
			nlines     	1
			max_width  	268
			justify    	0
			label      	"JavaEvent")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C62FAF103C8"
		    width      	286
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaClass" @61
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    location   	(560, 672)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@61
			location   	(362, 541)
			fill_color 	13434879
			nlines     	1
			max_width  	396
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    width      	414
		    height     	286
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$1" @62
		    location   	(1219, 538)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"382A29BD0219"
		    roleview_list 	(list RoleViews
			(object RoleView "fields" @63
			    Parent_View 	@62
			    location   	(739, 282)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @64
				Parent_View 	@63
				location   	(1514, 513)
				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  	192
				justify    	0
				label      	"+fields"
				pctDist    	0.653017
				height     	26
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"382A29BE0350"
			    client     	@62
			    supplier   	@48
			    line_style 	3
			    origin_attachment 	(1219, 538)
			    terminal_attachment 	(1671, 538)
			    label      	(object SegLabel @65
				Parent_View 	@63
				location   	(1626, 485)
				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.900000
				height     	54
				orientation 	0))
			(object RoleView "javaClass" @66
			    Parent_View 	@62
			    location   	(739, 282)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"382A29BE03BF"
			    client     	@62
			    supplier   	@61
			    line_style 	3
			    origin_attachment 	(1219, 538)
			    terminal_attachment 	(767, 538))))
		(object AssociationViewNew "$UNNAMED$5" @67
		    location   	(915, 307)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AA09503E5"
		    roleview_list 	(list RoleViews
			(object RoleView "initializers" @68
			    Parent_View 	@67
			    location   	(275, 99)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @69
				Parent_View 	@68
				location   	(1088, 216)
				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  	212
				justify    	0
				label      	"+initializers"
				pctDist    	0.410719
				height     	92
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AA0970153"
			    client     	@67
			    supplier   	@49
			    line_style 	3
			    origin_attachment 	(915, 307)
			    terminal_attachment 	(1339, 307)
			    label      	(object SegLabel @70
				Parent_View 	@68
				location   	(1330, 368)
				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.979687
				height     	61
				orientation 	1))
			(object RoleView "javaClass" @71
			    Parent_View 	@67
			    location   	(275, 99)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AA097015D"
			    client     	@67
			    supplier   	@61
			    vertices   	(list Points
				(915, 307)
				(713, 307)
				(713, 529))
			    line_style 	3
			    origin_attachment 	(915, 307)
			    terminal_attachment 	(713, 529))))
		(object AssociationViewNew "$UNNAMED$6" @72
		    location   	(206, 644)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AA21200C2"
		    roleview_list 	(list RoleViews
			(object RoleView "declaredClasses" @73
			    Parent_View 	@72
			    location   	(-578, 276)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @74
				Parent_View 	@73
				location   	(237, 586)
				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  	325
				justify    	0
				label      	"+declaredClasses"
				pctDist    	0.343195
				height     	31
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AA21701D8"
			    client     	@72
			    supplier   	@61
			    vertices   	(list Points
				(206, 644)
				(206, 616)
				(353, 616))
			    line_style 	3
			    origin_attachment 	(206, 644)
			    terminal_attachment 	(353, 616)
			    label      	(object SegLabel @75
				Parent_View 	@73
				location   	(336, 560)
				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.902367
				height     	57
				orientation 	0))
			(object RoleView "declaringClass" @76
			    Parent_View 	@72
			    location   	(-578, 276)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @77
				Parent_View 	@76
				location   	(254, 675)
				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  	298
				justify    	0
				label      	"+declaringClass"
				pctDist    	0.434286
				height     	3
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AA21702DC"
			    client     	@72
			    supplier   	@61
			    vertices   	(list Points
				(206, 644)
				(206, 672)
				(353, 672))
			    line_style 	3
			    origin_attachment 	(206, 644)
			    terminal_attachment 	(353, 672)
			    label      	(object SegLabel @78
				Parent_View 	@76
				location   	(334, 726)
				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.900000
				height     	54
				orientation 	1))))
		(object AssociationViewNew "$UNNAMED$7" @79
		    location   	(603, 343)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	(object SegLabel @80
			Parent_View 	@79
			location   	(603, 224)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			anchor     	10
			anchor_loc 	1
			nlines     	1
			max_width  	450
			justify    	0
			label      	"<<derived>>"
			pctDist    	0.500000
			height     	120
			orientation 	0)
		    line_color 	3342489
		    quidu      	"392AA2A701C1"
		    roleview_list 	(list RoleViews
			(object RoleView "javaClasses" @81
			    Parent_View 	@79
			    location   	(27, 215)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @82
				Parent_View 	@81
				location   	(720, 411)
				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  	248
				justify    	0
				label      	"+javaClasses"
				pctDist    	0.367521
				height     	117
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AA2A80367"
			    client     	@79
			    supplier   	@61
			    line_style 	3
			    origin_attachment 	(603, 343)
			    terminal_attachment 	(603, 528)
			    label      	(object SegLabel @83
				Parent_View 	@81
				location   	(657, 509)
				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.900000
				height     	54
				orientation 	0))
			(object RoleView "javaPackage" @84
			    Parent_View 	@79
			    location   	(27, 215)
			    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   	(482, 184)
				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  	263
				justify    	0
				label      	"+javaPackage"
				pctDist    	0.862903
				height     	122
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AA2A90083"
			    client     	@79
			    supplier   	@50
			    line_style 	3
			    origin_attachment 	(603, 343)
			    terminal_attachment 	(603, 159)
			    label      	(object SegLabel @86
				Parent_View 	@84
				location   	(657, 177)
				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.900000
				height     	54
				orientation 	1))))
		(object AttachView "" @87
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@47
		    supplier   	@79
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$0" @88
		    location   	(616, 1524)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object SegLabel @89
			Parent_View 	@88
			location   	(616, 1465)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	TRUE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			hidden     	TRUE
			anchor     	1
			anchor_loc 	1
			nlines     	1
			max_width  	600
			justify    	0
			label      	""
			pctDist    	0.500000
			height     	60
			orientation 	0)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3654B08801A5"
		    roleview_list 	(list RoleViews
			(object RoleView "/typedElement" @90
			    Parent_View 	@88
			    location   	(56, 948)
			    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      	"3654B091008C"
			    client     	@88
			    supplier   	@51
			    vertices   	(list Points
				(616, 1524)
				(616, 1584)
				(1324, 1584))
			    line_style 	3
			    origin_attachment 	(616, 1524)
			    terminal_attachment 	(1324, 1584)
			    label      	(object SegLabel @91
				Parent_View 	@90
				location   	(1246, 1531)
				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 "/type" @92
			    Parent_View 	@88
			    location   	(56, 948)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @93
				Parent_View 	@92
				location   	(697, 1107)
				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  	116
				justify    	0
				label      	"+/type"
				pctDist    	0.588161
				height     	81
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3654B091007D"
			    client     	@88
			    supplier   	@61
			    line_style 	3
			    origin_attachment 	(616, 1524)
			    terminal_attachment 	(616, 815))))
		(object AssociationViewNew "$UNNAMED$2" @94
		    location   	(1095, 961)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"382A29C0017D"
		    roleview_list 	(list RoleViews
			(object RoleView "methods" @95
			    Parent_View 	@94
			    location   	(615, 705)
			    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   	(1412, 889)
				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  	192
				justify    	0
				label      	"+methods"
				pctDist    	0.624023
				height     	73
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"382A29C10174"
			    client     	@94
			    supplier   	@52
			    line_style 	3
			    origin_attachment 	(1095, 961)
			    terminal_attachment 	(1603, 961)
			    label      	(object SegLabel @97
				Parent_View 	@95
				location   	(1483, 1017)
				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.766040
				height     	56
				orientation 	1))
			(object RoleView "javaClass" @98
			    Parent_View 	@94
			    location   	(615, 705)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"382A29C1020A"
			    client     	@94
			    supplier   	@61
			    vertices   	(list Points
				(1095, 961)
				(732, 961)
				(732, 815))
			    line_style 	3
			    origin_attachment 	(1095, 961)
			    terminal_attachment 	(732, 815))))
		(object AssociationViewNew "MethodThrows" @99
		    location   	(1053, 981)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3810B61B0178"
		    roleview_list 	(list RoleViews
			(object RoleView "method" @100
			    Parent_View 	@99
			    location   	(493, 405)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3810B61E0227"
			    client     	@99
			    supplier   	@52
			    line_style 	3
			    origin_attachment 	(1053, 981)
			    terminal_attachment 	(1603, 981))
			(object RoleView "javaExceptions" @101
			    Parent_View 	@99
			    location   	(493, 405)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @102
				Parent_View 	@101
				location   	(743, 945)
				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  	312
				justify    	0
				label      	"+javaExceptions"
				pctDist    	0.563664
				height     	37
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3810B61E01C3"
			    client     	@99
			    supplier   	@61
			    vertices   	(list Points
				(1053, 981)
				(669, 981)
				(669, 815))
			    line_style 	3
			    origin_attachment 	(1053, 981)
			    terminal_attachment 	(669, 815)
			    label      	(object SegLabel @103
				Parent_View 	@101
				location   	(723, 870)
				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.900000
				height     	54
				orientation 	1))))
		(object AssociationViewNew "$UNNAMED$11" @104
		    location   	(1546, 806)
		    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      	"3C62FBE00168"
		    roleview_list 	(list RoleViews
			(object RoleView "events" @105
			    Parent_View 	@104
			    location   	(986, 134)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @106
				Parent_View 	@105
				location   	(2168, 765)
				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  	144
				justify    	0
				label      	"+events"
				pctDist    	0.800000
				height     	42
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C62FBE2008F"
			    client     	@104
			    supplier   	@60
			    vertices   	(list Points
				(1546, 806)
				(2238, 806)
				(2238, 719))
			    line_style 	3
			    origin_attachment 	(1546, 806)
			    terminal_attachment 	(2238, 719)
			    label      	(object SegLabel @107
				Parent_View 	@105
				location   	(2292, 797)
				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.900000
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$12" @108
			    Parent_View 	@104
			    location   	(986, 134)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C62FBE20091"
			    client     	@104
			    supplier   	@61
			    line_style 	3
			    origin_attachment 	(1546, 806)
			    terminal_attachment 	(767, 806))))
		(object AssociationViewNew "$UNNAMED$13" @109
		    location   	(1408, 663)
		    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      	"3C8938770253"
		    roleview_list 	(list RoleViews
			(object RoleView "allEvents" @110
			    Parent_View 	@109
			    location   	(848, -9)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @111
				Parent_View 	@110
				location   	(1921, 622)
				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  	193
				justify    	0
				label      	"+allEvents"
				pctDist    	0.800000
				height     	42
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C89387802CC"
			    client     	@109
			    supplier   	@60
			    line_style 	3
			    origin_attachment 	(1408, 663)
			    terminal_attachment 	(2049, 663)
			    label      	(object SegLabel @112
				Parent_View 	@110
				location   	(1969, 702)
				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.876336
				height     	39
				orientation 	1))
			(object RoleView "$UNNAMED$14" @113
			    Parent_View 	@109
			    location   	(848, -9)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C89387802CE"
			    client     	@109
			    supplier   	@61
			    line_style 	3
			    origin_attachment 	(1408, 663)
			    terminal_attachment 	(767, 663))))
		(object ClassView "Class" "Logical View::ecore::EClassifier" @114
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(448, 2256)
		    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 	@114
			location   	(118, 2052)
			nlines     	1
			max_width  	660
			justify    	0
			label      	"EClassifier")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3ACE4FEE0371"
		    width      	678
		    height     	432
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::ArrayType" @115
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    location   	(352, 1328)
		    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 	@115
			location   	(95, 1247)
			fill_color 	13434879
			nlines     	1
			max_width  	514
			justify    	0
			label      	"ArrayType")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A9D79ED01DF"
		    width      	532
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @116
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A9D79FD010F"
		    client     	@115
		    supplier   	@61
		    line_style 	3
		    origin_attachment 	(431, 1235)
		    terminal_attachment 	(431, 814))
		(object AssociationViewNew "$UNNAMED$15" @117
		    location   	(393, 1730)
		    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      	"3DF4CAAD01A3"
		    roleview_list 	(list RoleViews
			(object RoleView "componentType" @118
			    Parent_View 	@117
			    location   	(-55, 386)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @119
				Parent_View 	@118
				location   	(378, 1981)
				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      	"+componentType"
				pctDist    	0.800000
				height     	42
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3DF4CAAE01EB"
			    client     	@117
			    supplier   	@114
			    line_style 	0
			    label      	(object SegLabel @120
				Parent_View 	@118
				location   	(476, 2003)
				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$16" @121
			    Parent_View 	@117
			    location   	(-55, 386)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3DF4CAAE01F5"
			    client     	@117
			    supplier   	@115
			    line_style 	0)))
		(object ClassView "Class" "Logical View::ecore::EStructuralFeature" @122
		    ShowCompartmentStereotypes 	TRUE
		    location   	(2224, 224)
		    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 	@122
			location   	(2033, 145)
			nlines     	1
			max_width  	382
			justify    	0
			label      	"EStructuralFeature")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903D59D0230"
		    width      	400
		    height     	182
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @123
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3DF4CE830390"
		    client     	@60
		    supplier   	@122
		    line_style 	0)))
	(object ClassDiagram "Imports"
	    quid       	"3810A0DC015D"
	    title      	"Imports"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	0
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::JavaClass" @124
		    ShowCompartmentStereotypes 	TRUE
		    location   	(320, 672)
		    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 	@124
			location   	(209, 621)
			fill_color 	13434879
			nlines     	1
			max_width  	222
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    width      	240
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "ClassImports" @125
		    location   	(643, 1115)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object SegLabel @126
			Parent_View 	@125
			location   	(677, 1040)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	TRUE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			anchor     	1
			anchor_loc 	1
			nlines     	1
			max_width  	600
			justify    	0
			label      	"ClassImports"
			pctDist    	1.066667
			height     	76
			orientation 	0)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3829C4BF000D"
		    roleview_list 	(list RoleViews
			(object RoleView "classImport" @127
			    Parent_View 	@125
			    location   	(227, 331)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @128
				Parent_View 	@127
				location   	(650, 671)
				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  	240
				justify    	0
				label      	"+classImport"
				pctDist    	0.727154
				height     	2
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3829C4BF000E"
			    client     	@125
			    supplier   	@124
			    vertices   	(list Points
				(643, 1115)
				(703, 1115)
				(703, 672)
				(440, 672))
			    line_style 	3
			    origin_attachment 	(643, 1115)
			    terminal_attachment 	(440, 672)
			    label      	(object SegLabel @129
				Parent_View 	@127
				location   	(505, 723)
				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.914676
				height     	51
				orientation 	0)
			    label      	(object SegLabel @130
				Parent_View 	@127
				location   	(742, 725)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	3
				anchor_loc 	1
				nlines     	1
				max_width  	159
				justify    	0
				label      	"{ordered}"
				pctDist    	0.587467
				height     	39
				orientation 	1))
			(object RoleView "importedBy" @131
			    Parent_View 	@125
			    location   	(227, 331)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @132
				Parent_View 	@131
				location   	(330, 940)
				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  	240
				justify    	0
				label      	"+importedBy"
				pctDist    	0.708040
				height     	10
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3829C4BF000F"
			    client     	@125
			    supplier   	@124
			    vertices   	(list Points
				(643, 1115)
				(320, 1115)
				(320, 735))
			    line_style 	3
			    origin_attachment 	(643, 1115)
			    terminal_attachment 	(320, 735)
			    label      	(object SegLabel @133
				Parent_View 	@131
				location   	(280, 808)
				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.897611
				height     	41
				orientation 	0))))
		(object ClassView "Class" "Logical View::java::JavaPackage" @134
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1408, 224)
		    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 	@134
			location   	(1273, 173)
			fill_color 	13434879
			nlines     	1
			max_width  	270
			justify    	0
			label      	"JavaPackage")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"38108E0301D2"
		    width      	288
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "PackageImports" @135
		    location   	(1023, 386)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object SegLabel @136
			Parent_View 	@135
			location   	(1038, 423)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	TRUE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			anchor     	1
			anchor_loc 	1
			nlines     	1
			max_width  	600
			justify    	0
			label      	"PackageImports"
			pctDist    	0.750000
			height     	37
			orientation 	1)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3829C4EC0207"
		    roleview_list 	(list RoleViews
			(object RoleView "importedBy" @137
			    Parent_View 	@135
			    location   	(-417, -302)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @138
				Parent_View 	@137
				location   	(657, 425)
				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  	240
				justify    	0
				label      	"+importedBy"
				pctDist    	0.646526
				height     	41
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3829C4EE0105"
			    client     	@135
			    supplier   	@124
			    vertices   	(list Points
				(1023, 386)
				(1023, 255)
				(424, 608))
			    line_style 	0
			    label      	(object SegLabel @139
				Parent_View 	@137
				location   	(524, 612)
				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.900000
				height     	54
				orientation 	0))
			(object RoleView "packageImports" @140
			    Parent_View 	@135
			    location   	(-417, -302)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @141
				Parent_View 	@140
				location   	(1223, 579)
				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  	312
				justify    	0
				label      	"+packageImports"
				pctDist    	0.522472
				height     	40
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3829C4EE00FB"
			    client     	@135
			    supplier   	@134
			    vertices   	(list Points
				(1023, 386)
				(1023, 618)
				(1265, 618)
				(1384, 287))
			    line_style 	0
			    label      	(object SegLabel @142
				Parent_View 	@140
				location   	(1407, 383)
				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.900000
				height     	54
				orientation 	1)
			    label      	(object SegLabel @143
				Parent_View 	@140
				location   	(1423, 503)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	3
				anchor_loc 	1
				nlines     	1
				max_width  	159
				justify    	0
				label      	"{ordered}"
				pctDist    	0.769663
				height     	109
				orientation 	1))))))
	(object ClassDiagram "Source code"
	    quid       	"3810A13B0159"
	    title      	"Source code"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	0
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::Comment" @144
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(592, 688)
		    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 	@144
			location   	(489, 637)
			fill_color 	13434879
			nlines     	1
			max_width  	206
			justify    	0
			label      	"Comment")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"380F889B02B8"
		    width      	224
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Statement" @145
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1104, 688)
		    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 	@145
			location   	(997, 637)
			fill_color 	13434879
			nlines     	1
			max_width  	214
			justify    	0
			label      	"Statement")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"380F88B9025A"
		    width      	232
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Initializer" @146
		    ShowCompartmentStereotypes 	TRUE
		    IncludeOperation 	TRUE
		    location   	(144, 288)
		    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 	@146
			location   	(46, 237)
			fill_color 	13434879
			nlines     	1
			max_width  	196
			justify    	0
			label      	"Initializer")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654A5DC00BB"
		    width      	214
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Field" @147
		    ShowCompartmentStereotypes 	TRUE
		    location   	(256, 112)
		    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 	@147
			location   	(175, 61)
			fill_color 	13434879
			nlines     	1
			max_width  	162
			justify    	0
			label      	"Field")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AF8F0280"
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Block" @148
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(864, 352)
		    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 	@148
			location   	(705, 246)
			fill_color 	13434879
			nlines     	1
			max_width  	318
			justify    	0
			label      	"Block")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"380F88370150"
		    width      	336
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritTreeView "" @149
		    location   	(864, 580)
		    line_color 	3342489
		    fill_color 	13434879
		    supplier   	@148
		    vertices   	(list Points
			(864, 580)
			(864, 470)))
		(object InheritView "" @150
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"380F88D600A5"
		    client     	@144
		    supplier   	@148
		    line_style 	3
		    origin_attachment 	(581, 624)
		    terminal_attachment 	(581, 580)
		    drawSupplier 	@149)
		(object InheritView "" @151
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"380F88DA0056"
		    client     	@145
		    supplier   	@148
		    line_style 	3
		    origin_attachment 	(1121, 624)
		    terminal_attachment 	(1121, 580)
		    drawSupplier 	@149)
		(object AssociationViewNew "$UNNAMED$8" @152
		    location   	(473, 300)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AAC33036A"
		    roleview_list 	(list RoleViews
			(object RoleView "source" @153
			    Parent_View 	@152
			    location   	(153, -388)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @154
				Parent_View 	@153
				location   	(606, 267)
				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  	145
				justify    	0
				label      	"+source"
				pctDist    	0.599393
				height     	34
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AAC380140"
			    client     	@152
			    supplier   	@148
			    line_style 	3
			    origin_attachment 	(473, 300)
			    terminal_attachment 	(696, 300)
			    label      	(object SegLabel @155
				Parent_View 	@153
				location   	(615, 334)
				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.635266
				height     	34
				orientation 	1))
			(object RoleView "initializer" @156
			    Parent_View 	@152
			    location   	(153, -388)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AAC380168"
			    client     	@152
			    supplier   	@146
			    line_style 	3
			    origin_attachment 	(473, 300)
			    terminal_attachment 	(251, 300))))
		(object AssociationViewNew "$UNNAMED$9" @157
		    location   	(658, 114)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object SegLabel @158
			Parent_View 	@157
			location   	(658, 55)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	TRUE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			hidden     	TRUE
			anchor     	1
			anchor_loc 	1
			nlines     	1
			max_width  	60
			justify    	0
			label      	""
			pctDist    	0.500000
			height     	60
			orientation 	0)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AAC5602A2"
		    roleview_list 	(list RoleViews
			(object RoleView "initializer" @159
			    Parent_View 	@157
			    location   	(306, -334)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @160
				Parent_View 	@159
				location   	(954, 199)
				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  	195
				justify    	0
				label      	"+initializer"
				pctDist    	0.891827
				height     	104
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AAC5702DF"
			    client     	@157
			    supplier   	@148
			    vertices   	(list Points
				(658, 114)
				(850, 114)
				(850, 234))
			    line_style 	3
			    origin_attachment 	(658, 114)
			    terminal_attachment 	(850, 234)
			    label      	(object SegLabel @161
				Parent_View 	@159
				location   	(790, 206)
				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.913462
				height     	61
				orientation 	1))
			(object RoleView "field" @162
			    Parent_View 	@157
			    location   	(306, -334)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AAC570307"
			    client     	@157
			    supplier   	@147
			    line_style 	3
			    origin_attachment 	(658, 114)
			    terminal_attachment 	(346, 114))))
		(object ClassView "Class" "Logical View::java::Method" @163
		    ShowCompartmentStereotypes 	TRUE
		    location   	(288, 496)
		    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 	@163
			location   	(203, 445)
			fill_color 	13434879
			nlines     	1
			max_width  	170
			justify    	0
			label      	"Method")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AE910271"
		    width      	188
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$10" @164
		    location   	(584, 496)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AACA501E7"
		    roleview_list 	(list RoleViews
			(object RoleView "source" @165
			    Parent_View 	@164
			    location   	(264, -448)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @166
				Parent_View 	@165
				location   	(679, 463)
				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  	145
				justify    	0
				label      	"+source"
				pctDist    	0.474777
				height     	34
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AACA7017C"
			    client     	@164
			    supplier   	@148
			    vertices   	(list Points
				(584, 496)
				(759, 496)
				(759, 470))
			    line_style 	3
			    origin_attachment 	(584, 496)
			    terminal_attachment 	(759, 470)
			    label      	(object SegLabel @167
				Parent_View 	@165
				location   	(817, 487)
				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.915367
				height     	58
				orientation 	1))
			(object RoleView "method" @168
			    Parent_View 	@164
			    location   	(264, -448)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AACA701B8"
			    client     	@164
			    supplier   	@163
			    line_style 	3
			    origin_attachment 	(584, 496)
			    terminal_attachment 	(382, 496))))))
	(object ClassDiagram "Data Types"
	    quid       	"3810A1CE02EB"
	    title      	"Data Types"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	413
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::TypeKind" @169
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(240, 224)
		    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 	@169
			location   	(77, 84)
			fill_color 	13434879
			nlines     	1
			max_width  	326
			justify    	0
			label      	"TypeKind")
		    stereotype 	(object ItemLabel
			Parent_View 	@169
			location   	(77, 39)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	326
			justify    	0
			label      	"<<enumeration>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654B46002BF"
		    width      	344
		    height     	392
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaVisibilityKind" @170
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(240, 640)
		    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 	@170
			location   	(68, 500)
			fill_color 	13434879
			nlines     	1
			max_width  	344
			justify    	0
			label      	"JavaVisibilityKind")
		    stereotype 	(object ItemLabel
			Parent_View 	@170
			location   	(68, 455)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	344
			justify    	0
			label      	"<<enumeration>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"382333BE032E"
		    width      	362
		    height     	392
		    annotation 	8
		    autoResize 	TRUE)
		(object NoteView @171
		    location   	(1296, 208)
		    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 	@171
			location   	(887, 52)
			fill_color 	13434879
			nlines     	6
			max_width  	783
			label      	
|The Java primitive types are instances of JavaDataType.  The common parent class with JavaClass is Classifier.  The primitive types can be obtained via a JavaURL("int"), which resolves to a reference like: "java://#int"
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	843
		    height     	325)
		(object ClassView "Class" "Logical View::java::JavaParameterKind" @172
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(256, 1088)
		    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 	@172
			location   	(63, 948)
			fill_color 	13434879
			nlines     	1
			max_width  	386
			justify    	0
			label      	"JavaParameterKind")
		    stereotype 	(object ItemLabel
			Parent_View 	@172
			location   	(63, 903)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	386
			justify    	0
			label      	"<<enumeration>>")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"391C1E8F0123"
		    width      	404
		    height     	392
		    annotation 	8
		    autoResize 	TRUE)
		(object NoteView @173
		    location   	(768, 1120)
		    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 	@173
			location   	(574, 1017)
			fill_color 	13434879
			nlines     	4
			max_width  	352
			label      	"Temporary enum for Java parameter kind until we get the base sorted out")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	412
		    height     	219)
		(object ClassView "Class" "Logical View::java::JavaDataType" @174
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1168, 1408)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@174
			location   	(1001, 1357)
			fill_color 	13434879
			nlines     	1
			max_width  	334
			justify    	0
			label      	"JavaDataType")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"395913340316"
		    width      	352
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EDataType" @175
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1088, 640)
		    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 	@175
			location   	(812, 511)
			nlines     	2
			max_width  	552
			justify    	0
			label      	"EDataType")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903D525033E"
		    width      	570
		    height     	282
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @176
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@173
		    supplier   	@172
		    line_style 	0)))
	(object ClassDiagram "Java Types"
	    quid       	"3B65B823020D"
	    title      	"Java Types"
	    documentation 	"This class diagram contains the Java Types that are not EMF classes but are referenced in this diagram."
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	478
	    origin_y   	34
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::JTypeJavaHelpers" @177
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(912, 208)
		    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 	@177
			location   	(474, 154)
			fill_color 	13434879
			nlines     	1
			max_width  	876
			justify    	0
			label      	"JTypeJavaHelpers")
		    stereotype 	(object ItemLabel
			Parent_View 	@177
			location   	(474, 109)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	876
			justify    	0
			label      	"<<datatype>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3B65ADE403A6"
		    width      	894
		    height     	220
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JTypeList" @178
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(880, 576)
		    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 	@178
			location   	(628, 523)
			fill_color 	13434879
			nlines     	1
			max_width  	504
			justify    	0
			label      	"JTypeList")
		    stereotype 	(object ItemLabel
			Parent_View 	@178
			location   	(628, 478)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	504
			justify    	0
			label      	"<<datatype>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3B65B87602C1"
		    width      	522
		    height     	218
		    annotation 	8
		    autoResize 	TRUE)))))
