
(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"))
	(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"))
	    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
		    quid       	"400487F90334"
		    supplier   	"Logical View::ecore::ETypedElement"
		    quidu      	"3903D4F60398"))
	    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")
		(object ClassAttribute "transient"
		    quid       	"4004880103B8"
		    type       	"boolean"
		    exportControl 	"Public")
		(object ClassAttribute "volatile"
		    quid       	"40048808012D"
		    type       	"boolean"
		    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.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   	0
	    origin_y   	4094
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::Field" @1
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    ShowOperationSignature 	TRUE
		    location   	(1104, 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 	@1
			location   	(689, 368)
			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   	(689, 424)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	8
			max_width  	709)
		    width      	848
		    height     	438
		    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  	452)
		    width      	544
		    height     	440
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EOperation" @6
		    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 	@6
			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" @7
		    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 	@7
			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 	@7
			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  	585)
		    width      	700
		    height     	168
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Method" @8
		    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 	@8
			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 	@8
			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  	1027)
		    width      	1218
		    height     	844
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @9
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3990953803AD"
		    client     	@8
		    supplier   	@6
		    line_style 	3
		    origin_attachment 	(2376, 346)
		    terminal_attachment 	(2376, 255))
		(object ClassView "Class" "Logical View::java::JavaClass" @10
		    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 	@10
			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 	@10
			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  	1680)
		    width      	1982
		    height     	1204
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @11
		    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     	@10
		    supplier   	@5
		    line_style 	3
		    origin_attachment 	(1594, 2262)
		    terminal_attachment 	(1594, 2044))
		(object ClassView "Class" "Logical View::java::JavaParameter" @12
		    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 	@12
			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 	@12
			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  	685)
		    width      	818
		    height     	394
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EParameter" @13
		    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 	@13
			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 "" @14
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3B7818B00186"
		    client     	@12
		    supplier   	@13
		    line_style 	0)
		(object ClassView "Class" "Logical View::ecore::EClass" @15
		    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 	@15
			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 	@15
			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  	452)
		    width      	546
		    height     	394
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @16
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3E5268E201B1"
		    client     	@7
		    supplier   	@15
		    line_style 	0)
		(object ClassView "Class" "Logical View::ecore::ETypedElement" @17
		    ShowCompartmentStereotypes 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1104, 112)
		    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   	(916, 41)
			nlines     	1
			max_width  	376
			justify    	0
			label      	"ETypedElement")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903D4F60398"
		    width      	394
		    height     	164
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @18
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"400487F90334"
		    client     	@1
		    supplier   	@17
		    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" @19
		    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 	@19
			location   	(365, 530)
			fill_color 	13434879
			nlines     	1
			max_width  	262
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    width      	280
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$3" @20
		    location   	(166, 537)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392A9EB403C6"
		    roleview_list 	(list RoleViews
			(object RoleView "/supertype" @21
			    Parent_View 	@20
			    location   	(-330, 217)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @22
				Parent_View 	@21
				location   	(234, 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     	@20
			    supplier   	@19
			    vertices   	(list Points
				(166, 537)
				(166, 517)
				(356, 517))
			    line_style 	3
			    origin_attachment 	(166, 537)
			    terminal_attachment 	(356, 517)
			    label      	(object SegLabel @23
				Parent_View 	@21
				location   	(334, 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" @24
			    Parent_View 	@20
			    location   	(-330, 217)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @25
				Parent_View 	@24
				location   	(257, 582)
				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     	@20
			    supplier   	@19
			    vertices   	(list Points
				(166, 537)
				(166, 558)
				(356, 558))
			    line_style 	3
			    origin_attachment 	(166, 537)
			    terminal_attachment 	(356, 558)
			    label      	(object SegLabel @26
				Parent_View 	@24
				location   	(334, 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 	1))))
		(object ClassView "Class" "Logical View::java::JavaClass" @27
		    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 	@27
			location   	(1261, 530)
			fill_color 	13434879
			nlines     	1
			max_width  	262
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    width      	280
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "Implements" @28
		    location   	(944, 521)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3654A0D70242"
		    roleview_list 	(list RoleViews
			(object RoleView "implementsInterfaces" @29
			    Parent_View 	@28
			    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 @30
				Parent_View 	@29
				location   	(839, 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     	@28
			    supplier   	@27
			    line_style 	3
			    origin_attachment 	(944, 521)
			    terminal_attachment 	(1252, 521)
			    label      	(object SegLabel @31
				Parent_View 	@29
				location   	(1181, 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" @32
			    Parent_View 	@28
			    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 @33
				Parent_View 	@32
				location   	(1087, 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     	@28
			    supplier   	@19
			    line_style 	3
			    origin_attachment 	(944, 521)
			    terminal_attachment 	(636, 521)
			    label      	(object SegLabel @34
				Parent_View 	@32
				location   	(684, 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" @35
		    location   	(1750, 601)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392A9F0301AC"
		    roleview_list 	(list RoleViews
			(object RoleView "/supertype" @36
			    Parent_View 	@35
			    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 @37
				Parent_View 	@36
				location   	(1721, 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     	@35
			    supplier   	@27
			    vertices   	(list Points
				(1750, 601)
				(1750, 627)
				(1532, 627))
			    line_style 	3
			    origin_attachment 	(1750, 601)
			    terminal_attachment 	(1532, 627)
			    label      	(object SegLabel @38
				Parent_View 	@36
				location   	(1557, 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" @39
			    Parent_View 	@35
			    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 @40
				Parent_View 	@39
				location   	(1626, 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     	@35
			    supplier   	@27
			    vertices   	(list Points
				(1750, 601)
				(1750, 576)
				(1532, 576))
			    line_style 	3
			    origin_attachment 	(1750, 601)
			    terminal_attachment 	(1532, 576)
			    label      	(object SegLabel @41
				Parent_View 	@39
				location   	(1557, 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   	2760
	    items      	(list diagram_item_list
		(object NoteView @42
		    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 	@42
			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 @43
		    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 	@43
			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" @44
		    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 	@44
			location   	(1680, 434)
			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     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Initializer" @45
		    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 	@45
			location   	(1363, 151)
			fill_color 	13434879
			nlines     	1
			max_width  	410
			justify    	0
			label      	"Initializer")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654A5DC00BB"
		    compartment 	(object Compartment
			Parent_View 	@45
			location   	(1363, 207)
			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  	345)
		    width      	428
		    height     	168
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaPackage" @46
		    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 	@46
			location   	(447, 50)
			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::java::JavaParameter" @47
		    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 	@47
			location   	(1344, 1488)
			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 	@47
			location   	(1344, 1544)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	678)
		    width      	818
		    height     	214
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Method" @48
		    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 	@48
			location   	(1613, 946)
			fill_color 	13434879
			nlines     	1
			max_width  	198
			justify    	0
			label      	"Method")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AE910271"
		    width      	216
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "MethodHas" @49
		    location   	(1700, 1262)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3654AF0302CE"
		    roleview_list 	(list RoleViews
			(object RoleView "method" @50
			    Parent_View 	@49
			    location   	(308, 238)
			    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     	@49
			    supplier   	@48
			    line_style 	3
			    origin_attachment 	(1700, 1262)
			    terminal_attachment 	(1700, 1049)
			    label      	(object SegLabel @51
				Parent_View 	@50
				location   	(1633, 1097)
				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" @52
			    Parent_View 	@49
			    location   	(308, 238)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @53
				Parent_View 	@52
				location   	(1837, 1433)
				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     	@49
			    supplier   	@47
			    line_style 	3
			    origin_attachment 	(1700, 1262)
			    terminal_attachment 	(1700, 1476)
			    label      	(object SegLabel @54
				Parent_View 	@52
				location   	(1636, 1456)
				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 @55
				Parent_View 	@52
				location   	(1592, 1397)
				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" @56
		    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 	@56
			location   	(2064, 607)
			fill_color 	13434879
			nlines     	1
			max_width  	256
			justify    	0
			label      	"JavaEvent")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3C62FAF103C8"
		    width      	274
		    height     	122
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaClass" @57
		    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 	@57
			location   	(374, 554)
			fill_color 	13434879
			nlines     	1
			max_width  	372
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    compartment 	(object Compartment
			Parent_View 	@57
			location   	(374, 610)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	4
			max_width  	313)
		    width      	390
		    height     	258
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$1" @58
		    location   	(1213, 538)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"382A29BD0219"
		    roleview_list 	(list RoleViews
			(object RoleView "fields" @59
			    Parent_View 	@58
			    location   	(733, 282)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @60
				Parent_View 	@59
				location   	(1511, 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     	@58
			    supplier   	@44
			    line_style 	3
			    origin_attachment 	(1213, 538)
			    terminal_attachment 	(1671, 538)
			    label      	(object SegLabel @61
				Parent_View 	@59
				location   	(1624, 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" @62
			    Parent_View 	@58
			    location   	(733, 282)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"382A29BE03BF"
			    client     	@58
			    supplier   	@57
			    line_style 	3
			    origin_attachment 	(1213, 538)
			    terminal_attachment 	(755, 538))))
		(object AssociationViewNew "$UNNAMED$5" @63
		    location   	(916, 307)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AA09503E5"
		    roleview_list 	(list RoleViews
			(object RoleView "initializers" @64
			    Parent_View 	@63
			    location   	(276, 99)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @65
				Parent_View 	@64
				location   	(1096, 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     	@63
			    supplier   	@45
			    line_style 	3
			    origin_attachment 	(916, 307)
			    terminal_attachment 	(1354, 307)
			    label      	(object SegLabel @66
				Parent_View 	@64
				location   	(1345, 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" @67
			    Parent_View 	@63
			    location   	(276, 99)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AA097015D"
			    client     	@63
			    supplier   	@57
			    vertices   	(list Points
				(916, 307)
				(713, 307)
				(713, 543))
			    line_style 	3
			    origin_attachment 	(916, 307)
			    terminal_attachment 	(713, 543))))
		(object AssociationViewNew "$UNNAMED$6" @68
		    location   	(206, 642)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AA21200C2"
		    roleview_list 	(list RoleViews
			(object RoleView "declaredClasses" @69
			    Parent_View 	@68
			    location   	(-578, 274)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @70
				Parent_View 	@69
				location   	(240, 582)
				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     	@68
			    supplier   	@57
			    vertices   	(list Points
				(206, 642)
				(206, 612)
				(365, 612))
			    line_style 	3
			    origin_attachment 	(206, 642)
			    terminal_attachment 	(365, 612)
			    label      	(object SegLabel @71
				Parent_View 	@69
				location   	(347, 556)
				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" @72
			    Parent_View 	@68
			    location   	(-578, 274)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @73
				Parent_View 	@72
				location   	(258, 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     	@68
			    supplier   	@57
			    vertices   	(list Points
				(206, 642)
				(206, 672)
				(365, 672))
			    line_style 	3
			    origin_attachment 	(206, 642)
			    terminal_attachment 	(365, 672)
			    label      	(object SegLabel @74
				Parent_View 	@72
				location   	(345, 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" @75
		    location   	(603, 347)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	(object SegLabel @76
			Parent_View 	@75
			location   	(603, 228)
			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" @77
			    Parent_View 	@75
			    location   	(27, 219)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @78
				Parent_View 	@77
				location   	(720, 419)
				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     	@75
			    supplier   	@57
			    line_style 	3
			    origin_attachment 	(603, 347)
			    terminal_attachment 	(603, 543)
			    label      	(object SegLabel @79
				Parent_View 	@77
				location   	(657, 522)
				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" @80
			    Parent_View 	@75
			    location   	(27, 219)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @81
				Parent_View 	@80
				location   	(482, 179)
				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     	@75
			    supplier   	@46
			    line_style 	3
			    origin_attachment 	(603, 347)
			    terminal_attachment 	(603, 152)
			    label      	(object SegLabel @82
				Parent_View 	@80
				location   	(657, 172)
				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 "" @83
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@43
		    supplier   	@75
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$0" @84
		    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 @85
			Parent_View 	@84
			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" @86
			    Parent_View 	@84
			    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     	@84
			    supplier   	@47
			    vertices   	(list Points
				(616, 1524)
				(616, 1584)
				(1335, 1584))
			    line_style 	3
			    origin_attachment 	(616, 1524)
			    terminal_attachment 	(1335, 1584)
			    label      	(object SegLabel @87
				Parent_View 	@86
				location   	(1256, 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" @88
			    Parent_View 	@84
			    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 @89
				Parent_View 	@88
				location   	(697, 1099)
				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     	@84
			    supplier   	@57
			    line_style 	3
			    origin_attachment 	(616, 1524)
			    terminal_attachment 	(616, 801))))
		(object AssociationViewNew "$UNNAMED$2" @90
		    location   	(1088, 961)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"382A29C0017D"
		    roleview_list 	(list RoleViews
			(object RoleView "methods" @91
			    Parent_View 	@90
			    location   	(608, 705)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @92
				Parent_View 	@91
				location   	(1409, 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     	@90
			    supplier   	@48
			    line_style 	3
			    origin_attachment 	(1088, 961)
			    terminal_attachment 	(1604, 961)
			    label      	(object SegLabel @93
				Parent_View 	@91
				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" @94
			    Parent_View 	@90
			    location   	(608, 705)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"382A29C1020A"
			    client     	@90
			    supplier   	@57
			    vertices   	(list Points
				(1088, 961)
				(732, 961)
				(732, 801))
			    line_style 	3
			    origin_attachment 	(1088, 961)
			    terminal_attachment 	(732, 801))))
		(object AssociationViewNew "MethodThrows" @95
		    location   	(1047, 981)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3810B61B0178"
		    roleview_list 	(list RoleViews
			(object RoleView "method" @96
			    Parent_View 	@95
			    location   	(487, 405)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3810B61E0227"
			    client     	@95
			    supplier   	@48
			    line_style 	3
			    origin_attachment 	(1047, 981)
			    terminal_attachment 	(1604, 981))
			(object RoleView "javaExceptions" @97
			    Parent_View 	@95
			    location   	(487, 405)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @98
				Parent_View 	@97
				location   	(733, 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     	@95
			    supplier   	@57
			    vertices   	(list Points
				(1047, 981)
				(669, 981)
				(669, 801))
			    line_style 	3
			    origin_attachment 	(1047, 981)
			    terminal_attachment 	(669, 801)
			    label      	(object SegLabel @99
				Parent_View 	@97
				location   	(723, 857)
				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" @100
		    location   	(1541, 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" @101
			    Parent_View 	@100
			    location   	(981, 134)
			    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   	(2169, 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     	@100
			    supplier   	@56
			    vertices   	(list Points
				(1541, 806)
				(2238, 806)
				(2238, 717))
			    line_style 	3
			    origin_attachment 	(1541, 806)
			    terminal_attachment 	(2238, 717)
			    label      	(object SegLabel @103
				Parent_View 	@101
				location   	(2292, 796)
				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" @104
			    Parent_View 	@100
			    location   	(981, 134)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C62FBE20091"
			    client     	@100
			    supplier   	@57
			    line_style 	3
			    origin_attachment 	(1541, 806)
			    terminal_attachment 	(755, 806))))
		(object AssociationViewNew "$UNNAMED$13" @105
		    location   	(1405, 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" @106
			    Parent_View 	@105
			    location   	(845, -9)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @107
				Parent_View 	@106
				location   	(1925, 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     	@105
			    supplier   	@56
			    line_style 	3
			    origin_attachment 	(1405, 663)
			    terminal_attachment 	(2055, 663)
			    label      	(object SegLabel @108
				Parent_View 	@106
				location   	(1975, 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" @109
			    Parent_View 	@105
			    location   	(845, -9)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3C89387802CE"
			    client     	@105
			    supplier   	@57
			    line_style 	3
			    origin_attachment 	(1405, 663)
			    terminal_attachment 	(755, 663))))
		(object ClassView "Class" "Logical View::ecore::EClassifier" @110
		    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 	@110
			location   	(130, 2059)
			nlines     	1
			max_width  	636
			justify    	0
			label      	"EClassifier")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3ACE4FEE0371"
		    compartment 	(object Compartment
			Parent_View 	@110
			location   	(130, 2162)
			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     	6
			max_width  	538)
		    width      	654
		    height     	418
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::ArrayType" @111
		    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 	@111
			location   	(112, 1255)
			fill_color 	13434879
			nlines     	1
			max_width  	480
			justify    	0
			label      	"ArrayType")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3A9D79ED01DF"
		    compartment 	(object Compartment
			Parent_View 	@111
			location   	(112, 1311)
			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  	405)
		    width      	498
		    height     	168
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @112
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3A9D79FD010F"
		    client     	@111
		    supplier   	@57
		    line_style 	3
		    origin_attachment 	(431, 1243)
		    terminal_attachment 	(431, 801))
		(object AssociationViewNew "$UNNAMED$15" @113
		    location   	(393, 1729)
		    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" @114
			    Parent_View 	@113
			    location   	(-55, 385)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @115
				Parent_View 	@114
				location   	(378, 1986)
				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     	@113
			    supplier   	@110
			    line_style 	0
			    label      	(object SegLabel @116
				Parent_View 	@114
				location   	(477, 2008)
				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" @117
			    Parent_View 	@113
			    location   	(-55, 385)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3DF4CAAE01F5"
			    client     	@113
			    supplier   	@111
			    line_style 	0)))
		(object ClassView "Class" "Logical View::ecore::EStructuralFeature" @118
		    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 	@118
			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 "" @119
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"3DF4CE830390"
		    client     	@56
		    supplier   	@118
		    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" @120
		    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 	@120
			location   	(189, 626)
			fill_color 	13434879
			nlines     	1
			max_width  	262
			justify    	0
			label      	"JavaClass")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"36549FCC00FA"
		    width      	280
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "ClassImports" @121
		    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 @122
			Parent_View 	@121
			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" @123
			    Parent_View 	@121
			    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 @124
				Parent_View 	@123
				location   	(665, 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     	@121
			    supplier   	@120
			    vertices   	(list Points
				(643, 1115)
				(703, 1115)
				(703, 672)
				(460, 672))
			    line_style 	3
			    origin_attachment 	(643, 1115)
			    terminal_attachment 	(460, 672)
			    label      	(object SegLabel @125
				Parent_View 	@123
				location   	(525, 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 @126
				Parent_View 	@123
				location   	(742, 737)
				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" @127
			    Parent_View 	@121
			    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   	(330, 936)
				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     	@121
			    supplier   	@120
			    vertices   	(list Points
				(643, 1115)
				(320, 1115)
				(320, 729))
			    line_style 	3
			    origin_attachment 	(643, 1115)
			    terminal_attachment 	(320, 729)
			    label      	(object SegLabel @129
				Parent_View 	@127
				location   	(280, 802)
				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" @130
		    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 	@130
			location   	(1247, 178)
			fill_color 	13434879
			nlines     	1
			max_width  	322
			justify    	0
			label      	"JavaPackage")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"38108E0301D2"
		    width      	340
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "PackageImports" @131
		    location   	(1023, 382)
		    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   	(1038, 419)
			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" @133
			    Parent_View 	@131
			    location   	(-417, -306)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @134
				Parent_View 	@133
				location   	(648, 430)
				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     	@131
			    supplier   	@120
			    vertices   	(list Points
				(1023, 382)
				(1023, 255)
				(413, 614))
			    line_style 	0
			    label      	(object SegLabel @135
				Parent_View 	@133
				location   	(512, 618)
				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" @136
			    Parent_View 	@131
			    location   	(-417, -306)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @137
				Parent_View 	@136
				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     	@131
			    supplier   	@130
			    vertices   	(list Points
				(1023, 382)
				(1023, 618)
				(1265, 618)
				(1386, 281))
			    line_style 	0
			    label      	(object SegLabel @138
				Parent_View 	@136
				location   	(1409, 378)
				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 @139
				Parent_View 	@136
				location   	(1424, 500)
				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" @140
		    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 	@140
			location   	(475, 642)
			fill_color 	13434879
			nlines     	1
			max_width  	234
			justify    	0
			label      	"Comment")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"380F889B02B8"
		    width      	252
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Statement" @141
		    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 	@141
			location   	(983, 642)
			fill_color 	13434879
			nlines     	1
			max_width  	242
			justify    	0
			label      	"Statement")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"380F88B9025A"
		    width      	260
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Initializer" @142
		    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 	@142
			location   	(33, 242)
			fill_color 	13434879
			nlines     	1
			max_width  	222
			justify    	0
			label      	"Initializer")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654A5DC00BB"
		    width      	240
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Field" @143
		    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 	@143
			location   	(160, 66)
			fill_color 	13434879
			nlines     	1
			max_width  	192
			justify    	0
			label      	"Field")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AF8F0280"
		    width      	210
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::Block" @144
		    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 	@144
			location   	(692, 256)
			fill_color 	13434879
			nlines     	1
			max_width  	344
			justify    	0
			label      	"Block")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"380F88370150"
		    compartment 	(object Compartment
			Parent_View 	@144
			location   	(692, 312)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	290)
		    width      	362
		    height     	214
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritTreeView "" @145
		    location   	(864, 580)
		    line_color 	3342489
		    fill_color 	13434879
		    supplier   	@144
		    vertices   	(list Points
			(864, 580)
			(864, 459)))
		(object InheritView "" @146
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"380F88D600A5"
		    client     	@140
		    supplier   	@144
		    line_style 	3
		    origin_attachment 	(581, 631)
		    terminal_attachment 	(581, 580)
		    drawSupplier 	@145)
		(object InheritView "" @147
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"380F88DA0056"
		    client     	@141
		    supplier   	@144
		    line_style 	3
		    origin_attachment 	(1121, 630)
		    terminal_attachment 	(1121, 580)
		    drawSupplier 	@145)
		(object AssociationViewNew "$UNNAMED$8" @148
		    location   	(473, 300)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AAC33036A"
		    roleview_list 	(list RoleViews
			(object RoleView "source" @149
			    Parent_View 	@148
			    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 @150
				Parent_View 	@149
				location   	(599, 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     	@148
			    supplier   	@144
			    line_style 	3
			    origin_attachment 	(473, 300)
			    terminal_attachment 	(683, 300)
			    label      	(object SegLabel @151
				Parent_View 	@149
				location   	(605, 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" @152
			    Parent_View 	@148
			    location   	(153, -388)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AAC380168"
			    client     	@148
			    supplier   	@142
			    line_style 	3
			    origin_attachment 	(473, 300)
			    terminal_attachment 	(264, 300))))
		(object AssociationViewNew "$UNNAMED$9" @153
		    location   	(671, 114)
		    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   	(671, 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" @155
			    Parent_View 	@153
			    location   	(319, -334)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @156
				Parent_View 	@155
				location   	(954, 210)
				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     	@153
			    supplier   	@144
			    vertices   	(list Points
				(671, 114)
				(850, 114)
				(850, 245))
			    line_style 	3
			    origin_attachment 	(671, 114)
			    terminal_attachment 	(850, 245)
			    label      	(object SegLabel @157
				Parent_View 	@155
				location   	(790, 218)
				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" @158
			    Parent_View 	@153
			    location   	(319, -334)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AAC570307"
			    client     	@153
			    supplier   	@143
			    line_style 	3
			    origin_attachment 	(671, 114)
			    terminal_attachment 	(361, 114))))
		(object ClassView "Class" "Logical View::java::Method" @159
		    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 	@159
			location   	(190, 450)
			fill_color 	13434879
			nlines     	1
			max_width  	196
			justify    	0
			label      	"Method")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3654AE910271"
		    width      	214
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$10" @160
		    location   	(596, 496)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"392AACA501E7"
		    roleview_list 	(list RoleViews
			(object RoleView "source" @161
			    Parent_View 	@160
			    location   	(276, -448)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @162
				Parent_View 	@161
				location   	(690, 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     	@160
			    supplier   	@144
			    vertices   	(list Points
				(596, 496)
				(759, 496)
				(759, 459))
			    line_style 	3
			    origin_attachment 	(596, 496)
			    terminal_attachment 	(759, 459)
			    label      	(object SegLabel @163
				Parent_View 	@161
				location   	(817, 477)
				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" @164
			    Parent_View 	@160
			    location   	(276, -448)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"392AACA701B8"
			    client     	@160
			    supplier   	@159
			    line_style 	3
			    origin_attachment 	(596, 496)
			    terminal_attachment 	(395, 496))))))
	(object ClassDiagram "Data Types"
	    quid       	"3810A1CE02EB"
	    title      	"Data Types"
	    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::TypeKind" @165
		    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 	@165
			location   	(77, 84)
			fill_color 	13434879
			nlines     	1
			max_width  	326
			justify    	0
			label      	"TypeKind")
		    stereotype 	(object ItemLabel
			Parent_View 	@165
			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"
		    compartment 	(object Compartment
			Parent_View 	@165
			location   	(77, 140)
			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     	5
			max_width  	277)
		    width      	344
		    height     	392
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JavaVisibilityKind" @166
		    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 	@166
			location   	(68, 500)
			fill_color 	13434879
			nlines     	1
			max_width  	344
			justify    	0
			label      	"JavaVisibilityKind")
		    stereotype 	(object ItemLabel
			Parent_View 	@166
			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"
		    compartment 	(object Compartment
			Parent_View 	@166
			location   	(68, 556)
			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     	5
			max_width  	292)
		    width      	362
		    height     	392
		    annotation 	8
		    autoResize 	TRUE)
		(object NoteView @167
		    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 	@167
			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" @168
		    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 	@168
			location   	(63, 948)
			fill_color 	13434879
			nlines     	1
			max_width  	386
			justify    	0
			label      	"JavaParameterKind")
		    stereotype 	(object ItemLabel
			Parent_View 	@168
			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"
		    compartment 	(object Compartment
			Parent_View 	@168
			location   	(63, 1004)
			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     	5
			max_width  	207)
		    width      	404
		    height     	392
		    annotation 	8
		    autoResize 	TRUE)
		(object NoteView @169
		    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 	@169
			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" @170
		    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 	@170
			location   	(999, 1362)
			fill_color 	13434879
			nlines     	1
			max_width  	338
			justify    	0
			label      	"JavaDataType")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"395913340316"
		    width      	356
		    height     	114
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::ecore::EDataType" @171
		    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 	@171
			location   	(812, 511)
			nlines     	2
			max_width  	552
			justify    	0
			label      	"EDataType")
		    icon_style 	"Label"
		    line_color 	3342489
		    fill_color 	16777215
		    quidu      	"3903D525033E"
		    compartment 	(object Compartment
			Parent_View 	@171
			location   	(812, 611)
			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  	522)
		    width      	570
		    height     	282
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @172
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@169
		    supplier   	@168
		    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   	35
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::java::JTypeJavaHelpers" @173
		    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 	@173
			location   	(398, 154)
			fill_color 	13434879
			nlines     	1
			max_width  	1028
			justify    	0
			label      	"JTypeJavaHelpers")
		    stereotype 	(object ItemLabel
			Parent_View 	@173
			location   	(398, 109)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	1028
			justify    	0
			label      	"<<datatype>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"3B65ADE403A6"
		    compartment 	(object Compartment
			Parent_View 	@173
			location   	(398, 210)
			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  	873)
		    width      	1046
		    height     	220
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::java::JTypeList" @174
		    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 	@174
			location   	(628, 523)
			fill_color 	13434879
			nlines     	1
			max_width  	504
			justify    	0
			label      	"JTypeList")
		    stereotype 	(object ItemLabel
			Parent_View 	@174
			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"
		    compartment 	(object Compartment
			Parent_View 	@174
			location   	(628, 579)
			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  	507)
		    width      	522
		    height     	218
		    annotation 	8
		    autoResize 	TRUE)))))
