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

(object Design "Logical View"
    is_unit    	TRUE
    is_loaded  	TRUE
    attributes 	(list Attribute_Set
	(object Attribute
	    tool       	"Java"
	    name       	"IDE"
	    value      	"Internal Editor")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagName1"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagText1"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagApply1"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagName2"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagText2"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagApply2"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagName3"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagText3"
	    value      	"")
	(object Attribute
	    tool       	"Java"
	    name       	"UserDefineTagApply3"
	    value      	""))
    quid       	"3A79EBA50331"
    defaults   	(object defaults
	rightMargin 	0.250000
	leftMargin 	0.250000
	topMargin  	0.250000
	bottomMargin 	0.500000
	pageOverlap 	0.250000
	clipIconLabels 	TRUE
	autoResize 	TRUE
	snapToGrid 	TRUE
	gridX      	16
	gridY      	16
	defaultFont 	(object Font
	    size       	10
	    face       	"Arial"
	    bold       	FALSE
	    italics    	FALSE
	    underline  	FALSE
	    strike     	FALSE
	    color      	0
	    default_color 	TRUE)
	showMessageNum 	1
	showClassOfObject 	TRUE
	notation   	"Unified")
    root_usecase_package 	(object Class_Category "Use Case View"
	quid       	"3A7999AD0297"
	exportControl 	"Public"
	global     	TRUE
	logical_models 	(list unit_reference_list)
	logical_presentations 	(list unit_reference_list
	    (object UseCaseDiagram "Main"
		quid       	"3A7999B702F6"
		title      	"Main"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list))))
    root_category 	(object Class_Category "Logical View"
	quid       	"3A7999AD028E"
	exportControl 	"Public"
	global     	TRUE
	subsystem  	"Component View"
	quidu      	"3A7999AD02A1"
	logical_models 	(list unit_reference_list
	    (object Class_Category "ecore"
		is_unit    	TRUE
		is_loaded  	FALSE
		file_name  	"$WorkspaceRoot\\org.eclipse.emf.ecore\\model\\org.eclipse.emf.Ecore.cat"
		quid       	"39A5ED04004E")
	    (object Class_Category "java"
		is_unit    	TRUE
		is_loaded  	FALSE
		file_name  	"$WorkspaceRoot\\org.eclipse.jem\\rose\\edocjava2.cat"
		quid       	"36549F2C004E")
	    (object Class_Category "beaninfo"
		is_unit    	TRUE
		is_loaded  	FALSE
		file_name  	"$WorkspaceRoot\\org.eclipse.jem.beaninfo\\rose\\beaninfo.cat"
		quid       	"3A799ABB0353"))
	logical_presentations 	(list unit_reference_list
	    (object ClassDiagram "Main"
		quid       	"3A7999B70309"
		title      	"Main"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list
		    (object CategoryView "Logical View::beaninfo" @1
			location   	(272, 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 	@1
			    location   	(128, 140)
			    fill_color 	13434879
			    nlines     	2
			    max_width  	288
			    justify    	0
			    label      	"beaninfo")
			icon_style 	"Icon"
			line_color 	3342489
			fill_color 	13434879
			quidu      	"3A799ABB0353"
			width      	300
			height     	180)))
	    (object ClassDiagram "Dependencies (Don't edit)"
		quid       	"3B869C9102E4"
		title      	"Dependencies (Don't edit)"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list
		    (object CategoryView "Logical View::ecore" @2
			location   	(256, 240)
			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   	(112, 156)
			    fill_color 	13434879
			    nlines     	2
			    max_width  	288
			    justify    	0
			    label      	"ecore")
			icon_style 	"Icon"
			line_color 	3342489
			fill_color 	16776960
			quidu      	"39A5ED04004E"
			width      	300
			height     	180)
		    (object CategoryView "Logical View::java" @3
			location   	(896, 256)
			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   	(749, 222)
			    fill_color 	13434879
			    nlines     	2
			    max_width  	294
			    justify    	0
			    label      	"java")
			stereotype 	(object ItemLabel
			    Parent_View 	@3
			    location   	(749, 172)
			    fill_color 	13434879
			    anchor     	10
			    nlines     	1
			    max_width  	294
			    justify    	0
			    label      	"<<metamodel>>")
			icon_style 	"Icon"
			line_color 	3342489
			fill_color 	16776960
			quidu      	"36549F2C004E"
			width      	306
			height     	180)
		    (object NoteView @4
			location   	(688, 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 	@4
			    location   	(280, 532)
			    fill_color 	13434879
			    nlines     	7
			    max_width  	780
			    label      	"These are packages (cat files) that this model depends on. They must not be edited in here. They are only be edited by the model that owns them.")
			line_color 	3342489
			fill_color 	16744703
			width      	840
			height     	325)))))
    root_subsystem 	(object SubSystem "Component View"
	quid       	"3A7999AD02A1"
	physical_models 	(list unit_reference_list)
	physical_presentations 	(list unit_reference_list
	    (object Module_Diagram "Main"
		quid       	"3A7999B702F5"
		title      	"Main"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list))))
    process_structure 	(object Processes
	quid       	"3A7999AD02A2"
	ProcsNDevs 	(list
	    (object Process_Diagram "Deployment View"
		quid       	"3A7999AD02A4"
		title      	"Deployment View"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list))))
    properties 	(object Properties
	attributes 	(list Attribute_Set
	    (object Attribute
		tool       	"Ecore"
		name       	"propertyId"
		value      	"809135969")
	    (object Attribute
		tool       	"Ecore"
		name       	"default__Category"
		value      	(list Attribute_Set
		    (object Attribute
			tool       	"Ecore"
			name       	"packageName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"nsPrefix"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"nsURI"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"basePackage"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"prefix"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"annotation"
			value      	"")))
	    (object Attribute
		tool       	"Ecore"
		name       	"default__Class"
		value      	(list Attribute_Set
		    (object Attribute
			tool       	"Ecore"
			name       	"classifierName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"constraints"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlContentKind"
			value      	("ContentKind" 0))
		    (object Attribute
			tool       	"Ecore"
			name       	"ContentKind"
			value      	(list Attribute_Set
			    (object Attribute
				tool       	"Ecore"
				name       	"Unspecified"
				value      	0)
			    (object Attribute
				tool       	"Ecore"
				name       	"Empty"
				value      	1)
			    (object Attribute
				tool       	"Ecore"
				name       	"Simple"
				value      	2)
			    (object Attribute
				tool       	"Ecore"
				name       	"Mixed"
				value      	3)
			    (object Attribute
				tool       	"Ecore"
				name       	"ElementOnly"
				value      	4)))
		    (object Attribute
			tool       	"Ecore"
			name       	"annotation"
			value      	"")))
	    (object Attribute
		tool       	"Ecore"
		name       	"default__Operation"
		value      	(list Attribute_Set
		    (object Attribute
			tool       	"Ecore"
			name       	"operationName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"isUnique"
			value      	TRUE)
		    (object Attribute
			tool       	"Ecore"
			name       	"annotation"
			value      	"")))
	    (object Attribute
		tool       	"Ecore"
		name       	"default__Attribute"
		value      	(list Attribute_Set
		    (object Attribute
			tool       	"Ecore"
			name       	"attributeName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"isTransient"
			value      	FALSE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isVolatile"
			value      	FALSE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isChangeable"
			value      	TRUE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isUnsettable"
			value      	FALSE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isUnique"
			value      	TRUE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isID"
			value      	FALSE)
		    (object Attribute
			tool       	"Ecore"
			name       	"visibility"
			value      	("VisibilityKind" 0))
		    (object Attribute
			tool       	"Ecore"
			name       	"VisibilityKind"
			value      	(list Attribute_Set
			    (object Attribute
				tool       	"Ecore"
				name       	"Unspecified"
				value      	0)
			    (object Attribute
				tool       	"Ecore"
				name       	"None"
				value      	1)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-only"
				value      	2)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-write"
				value      	3)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-only unsettable"
				value      	4)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-write unsettable"
				value      	5)))
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlNamespace"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlFeatureKind"
			value      	("FeatureKind" 0))
		    (object Attribute
			tool       	"Ecore"
			name       	"FeatureKind"
			value      	(list Attribute_Set
			    (object Attribute
				tool       	"Ecore"
				name       	"Unspecified"
				value      	0)
			    (object Attribute
				tool       	"Ecore"
				name       	"Simple"
				value      	1)
			    (object Attribute
				tool       	"Ecore"
				name       	"Attribute"
				value      	2)
			    (object Attribute
				tool       	"Ecore"
				name       	"Element"
				value      	4)))
		    (object Attribute
			tool       	"Ecore"
			name       	"annotation"
			value      	"")))
	    (object Attribute
		tool       	"Ecore"
		name       	"default__Role"
		value      	(list Attribute_Set
		    (object Attribute
			tool       	"Ecore"
			name       	"referenceName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"isTransient"
			value      	FALSE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isVolatile"
			value      	FALSE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isChangeable"
			value      	TRUE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isUnsettable"
			value      	FALSE)
		    (object Attribute
			tool       	"Ecore"
			name       	"isResolveProxies"
			value      	TRUE)
		    (object Attribute
			tool       	"Ecore"
			name       	"visibility"
			value      	("VisibilityKind" 0))
		    (object Attribute
			tool       	"Ecore"
			name       	"VisibilityKind"
			value      	(list Attribute_Set
			    (object Attribute
				tool       	"Ecore"
				name       	"Unspecified"
				value      	0)
			    (object Attribute
				tool       	"Ecore"
				name       	"None"
				value      	1)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-only"
				value      	2)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-write"
				value      	3)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-only unsettable"
				value      	4)
			    (object Attribute
				tool       	"Ecore"
				name       	"Read-write unsettable"
				value      	5)))
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlName"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlNamespace"
			value      	"")
		    (object Attribute
			tool       	"Ecore"
			name       	"xmlFeatureKind"
			value      	("FeatureKind" 0))
		    (object Attribute
			tool       	"Ecore"
			name       	"FeatureKind"
			value      	(list Attribute_Set
			    (object Attribute
				tool       	"Ecore"
				name       	"Unspecified"
				value      	0)
			    (object Attribute
				tool       	"Ecore"
				name       	"Simple"
				value      	1)
			    (object Attribute
				tool       	"Ecore"
				name       	"Attribute"
				value      	2)
			    (object Attribute
				tool       	"Ecore"
				name       	"Element"
				value      	4)))
		    (object Attribute
			tool       	"Ecore"
			name       	"annotation"
			value      	""))))
	quid       	"3A7999AD02A3"))
