
(object Petal
    version    	37)

(object Design "<Top Level>"
    is_unit    	TRUE
    is_loaded  	TRUE
    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      	31
	gridY      	31
	defaultFont 	(object Font
	    size       	11
	    face       	"Arial"
	    bold       	FALSE
	    italics    	FALSE
	    underline  	FALSE
	    strike     	FALSE
	    color      	0
	    default_color 	TRUE)
	showMessageNum 	1
	showClassOfObject 	TRUE
	notation   	"OMT")
    root_category 	(object Class_Category "<Top Level>"
	exportControl 	"Public"
	global     	TRUE
	subsystem  	"<Top Level>"
	logical_models 	(list unit_reference_list
	    (object Class "ItemSystemMgr"
		used_nodes 	(list uses_relationship_list
		    (object Uses_Relationship
			supplier   	"ParamStore"))
		class_attributes 	(list class_attribute_list
		    (object ClassAttribute "param")
		    (object ClassAttribute "paramStoreDefault")))
	    (object Class "ItemSystem"
		class_attributes 	(list class_attribute_list
		    (object ClassAttribute "param")
		    (object ClassAttribute "paramStore")))
	    (object Class "ParamStore"
		used_nodes 	(list uses_relationship_list
		    (object Uses_Relationship
			supplier   	"ParamAccessor"))
		operations 	(list Operations
		    (object Operation "readParam"
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)
		    (object Operation "writeParam"
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)))
	    (object Class "ParamAccessor"
		class_attributes 	(list class_attribute_list
		    (object ClassAttribute "markerClass")
		    (object ClassAttribute "resourceName")
		    (object ClassAttribute "userObject")))
	    (object Association "$UNNAMED$0"
		quid       	"34F079590104"
		roles      	(list role_list
		    (object Role "$UNNAMED$1"
			supplier   	"ItemSystemMgr"
			is_navigable 	TRUE
			is_aggregate 	TRUE)
		    (object Role "$UNNAMED$2"
			supplier   	"ItemSystem"
			client_cardinality 	(value cardinality "n")
			is_navigable 	TRUE)))
	    (object Association "$UNNAMED$3"
		quid       	"34F079E000D2"
		roles      	(list role_list
		    (object Role "$UNNAMED$4"
			supplier   	"ItemSystem"
			is_navigable 	TRUE
			is_aggregate 	TRUE)
		    (object Role "$UNNAMED$5"
			supplier   	"ParamStore"
			is_navigable 	TRUE)))
	    (object Association "$UNNAMED$6"
		quid       	"34F07A5D01F4"
		roles      	(list role_list
		    (object Role "$UNNAMED$7"
			supplier   	"ItemSystemMgr"
			is_navigable 	TRUE
			is_aggregate 	TRUE)
		    (object Role "$UNNAMED$8"
			supplier   	"ParamStore"
			is_navigable 	TRUE))))
	logical_presentations 	(list unit_reference_list
	    (object ClassDiagram "Main"
		title      	"Main"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list
		    (object Label @1
			location   	(868, 31)
			font       	(object Font
			    size       	14
			    face       	"Arial"
			    bold       	TRUE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			nlines     	1
			max_width  	494
			label      	"Configurable BA")
		    (object NoteView @2
			location   	(403, 217)
			label      	(object ItemLabel
			    Parent_View 	@2
			    location   	(48, 33)
			    nlines     	7
			    max_width  	734
			    label      	
|Goal - Configure the BA for behavior such as Param storage.
|
|Requirements
|- Config BA as a whole
|- Config an ItemSystem
|- Recursively do this using the BA
			    )
			width      	794
			height     	381)
		    (object ClassView "Class" "ItemSystem" @3
			IncludeAttribute 	TRUE
			IncludeOperation 	TRUE
			location   	(1271, 620)
			label      	(object ItemLabel
			    Parent_View 	@3
			    location   	(1149, 514)
			    nlines     	1
			    max_width  	242
			    justify    	0
			    label      	"ItemSystem")
			compartment 	(object Compartment
			    Parent_View 	@3
			    location   	(1149, 574)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    anchor     	2
			    nlines     	3
			    max_width  	212)
			width      	262
			height     	236
			autoResize 	TRUE)
		    (object ClassView "Class" "ItemSystemMgr" @4
			IncludeAttribute 	TRUE
			IncludeOperation 	TRUE
			location   	(1178, 248)
			label      	(object ItemLabel
			    Parent_View 	@4
			    location   	(1014, 142)
			    nlines     	1
			    max_width  	327
			    justify    	0
			    label      	"ItemSystemMgr")
			compartment 	(object Compartment
			    Parent_View 	@4
			    location   	(1010, 202)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    anchor     	2
			    nlines     	3
			    max_width  	337)
			width      	354
			height     	236
			autoResize 	TRUE)
		    (object AssociationViewNew "$UNNAMED$0" @5
			location   	(1263, 434)
			quidu      	"34F079590104"
			roleview_list 	(list RoleViews
			    (object RoleView "$UNNAMED$2" @6
				Parent_View 	@5
				location   	(-163, -496)
				client     	@5
				supplier   	@3
				line_style 	3
				origin_attachment 	(1263, 434)
				terminal_attachment 	(1263, 502))
			    (object RoleView "$UNNAMED$1" @7
				Parent_View 	@5
				location   	(-163, -496)
				client     	@5
				supplier   	@4
				line_style 	3
				origin_attachment 	(1263, 434)
				terminal_attachment 	(1263, 366))))
		    (object NoteView @8
			location   	(1798, 589)
			label      	(object ItemLabel
			    Parent_View 	@8
			    location   	(1540, 370)
			    nlines     	8
			    max_width  	540
			    label      	
|param is null for defaults
|
|param has:
|- RootMarkerClass
|- SystemDisplayName
|- ParamStoreClass
|- ConfigParam
|- (more in future)
			    )
			width      	600
			height     	450)
		    (object NoteView @9
			location   	(1798, 186)
			label      	(object ItemLabel
			    Parent_View 	@9
			    location   	(1531, 42)
			    nlines     	5
			    max_width  	559
			    label      	
|param is null for defaults
|
|param has:
|- DefaultParamStoreClass
|- (more in future)
			    )
			width      	619
			height     	300)
		    (object AttachView "" @10
			client     	@4
			supplier   	@9
			line_style 	3
			origin_attachment 	(1355, 191)
			terminal_attachment 	(1488, 191))
		    (object NoteView @11
			location   	(310, 620)
			label      	(object ItemLabel
			    Parent_View 	@11
			    location   	(83, 445)
			    nlines     	7
			    max_width  	478
			    label      	
|Use Cases
|1. Start BA
|2. Open system in BA
|3. Start system w/o BA
|4. Edit BA param
|5. Edit system param
|6. A tree of systems
			    )
			width      	538
			height     	362)
		    (object NoteView @12
			location   	(372, 961)
			label      	(object ItemLabel
			    Parent_View 	@12
			    location   	(77, 827)
			    nlines     	5
			    max_width  	615
			    label      	
|UC1 - Start BA
|- Optional command arg is ParamMarkerClass
|- If present that param is used instead of default param
			    )
			width      	675
			height     	281)
		    (object NoteView @13
			location   	(372, 1271)
			label      	(object ItemLabel
			    Parent_View 	@13
			    location   	(77, 1137)
			    nlines     	5
			    max_width  	615
			    label      	
|UC2 - Open System in BA
|- Input RootMarkerClass
|- Mgr.openSystem(rmc)
|- If root isBeanWrapper, getParam() otherwise use default
			    )
			width      	675
			height     	281)
		    (object NoteView @14
			location   	(372, 1550)
			label      	(object ItemLabel
			    Parent_View 	@14
			    location   	(83, 1447)
			    nlines     	4
			    max_width  	603
			    label      	
|UC3 - Open System w/o BA
|- >java RootMarkerClass
|- Mgr.openSystem(new rmc)
|- (rest same as UC2)
			    )
			width      	663
			height     	219)
		    (object NoteView @15
			location   	(1116, 1426)
			label      	(object ItemLabel
			    Parent_View 	@15
			    location   	(786, 1185)
			    nlines     	9
			    max_width  	684
			    label      	
|UC4 - Edit BA param
|- Menu "Edit" - BA Param
|
|UC5 - Edit system param
|- Edit root bean Param
|
|UC6 - A tree of systems
|- Nodes are containers with Bean  is ParamDriven
			    )
			width      	744
			height     	494)
		    (object ClassView "Class" "ParamStore" @16
			IncludeAttribute 	TRUE
			IncludeOperation 	TRUE
			location   	(1178, 992)
			label      	(object ItemLabel
			    Parent_View 	@16
			    location   	(1051, 886)
			    nlines     	1
			    max_width  	253
			    justify    	0
			    label      	"ParamStore")
			compartment 	(object Compartment
			    Parent_View 	@16
			    location   	(1050, 946)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    anchor     	2
			    nlines     	3
			    max_width  	244)
			width      	274
			height     	236
			autoResize 	TRUE)
		    (object Label @17
			location   	(1147, 806)
			nlines     	1
			max_width  	181
			label      	"interface")
		    (object ClassView "Class" "ParamAccessor" @18
			IncludeAttribute 	TRUE
			IncludeOperation 	TRUE
			location   	(1829, 992)
			label      	(object ItemLabel
			    Parent_View 	@18
			    location   	(1668, 861)
			    nlines     	1
			    max_width  	317
			    justify    	0
			    label      	"ParamAccessor")
			compartment 	(object Compartment
			    Parent_View 	@18
			    location   	(1665, 921)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    anchor     	2
			    nlines     	4
			    max_width  	266)
			width      	346
			height     	286
			autoResize 	TRUE)
		    (object UsesView "" @19
			client     	@16
			supplier   	@18
			line_style 	3
			origin_attachment 	(1315, 944)
			terminal_attachment 	(1656, 944))
		    (object UsesView "" @20
			client     	@4
			supplier   	@16
			line_style 	3
			origin_attachment 	(1084, 366)
			terminal_attachment 	(1084, 874))
		    (object NoteView @21
			location   	(1860, 1426)
			label      	(object ItemLabel
			    Parent_View 	@21
			    location   	(1537, 1189)
			    nlines     	9
			    max_width  	671
			    label      	
|To implement
|- UC1 - DONE
|- UC2 - Mod Mgr
|- UC3 - No change
|- UC4 - Mod MainMenu, Mediator to fire EditParam
|- UC5, 6 - No change
			    )
			width      	731
			height     	487)
		    (object AttachView "" @22
			client     	@3
			supplier   	@8
			line_style 	3
			origin_attachment 	(1402, 619)
			terminal_attachment 	(1497, 619))
		    (object NoteView @23
			location   	(434, 2108)
			label      	(object ItemLabel
			    Parent_View 	@23
			    location   	(48, 1724)
			    nlines     	15
			    max_width  	797
			    label      	
|System param via ParamDriven root marker class. Automagically edited as root bean's param. No root bean allowed.
|
|Pros
|- Can change only marker and its param to config system, since can have multiple markers in same dir
|- No new BA feature to edit param
|- Very consistent param edit
|- Allows a tree of systems (UC6)
|Cons
|- New BA feature to set root bean
|- No other root bean allowed
			    )
			width      	857
			height     	781)
		    (object NoteView @24
			location   	(1271, 2046)
			label      	(object ItemLabel
			    Parent_View 	@24
			    location   	(919, 1715)
			    nlines     	13
			    max_width  	728
			    label      	
|System param via root bean is ParamDriven. 
|
|Pros
|- No new BA feature to edit param
|- Very consistent param edit
|- Allows a tree of systems (UC6)
|Cons
|- Must get from container to config system. Catch 22.
|- Custom container to config system
			    )
			width      	788
			height     	675)
		    (object NoteView @25
			location   	(1953, 1860)
			label      	(object ItemLabel
			    Parent_View 	@25
			    location   	(1720, 1723)
			    nlines     	5
			    max_width  	490
			    label      	
|ItemSystemRoot interface:
|= getParam()
|= getParamStore()
			    )
			width      	550
			height     	287)
		    (object NoteView @26
			location   	(1953, 2263)
			label      	(object ItemLabel
			    Parent_View 	@26
			    location   	(1720, 2029)
			    nlines     	9
			    max_width  	490
			    label      	
|_SystemParam.parex in same dir as root.:
|Pros
|- Obviously metadata
|- Can use std PS
|Cons
|- Manual edit or new fea
|- Inconsistent, should associate with root
			    )
			width      	550
			height     	481)))))
    root_subsystem 	(object SubSystem "<Top Level>"
	physical_models 	(list unit_reference_list)
	physical_presentations 	(list unit_reference_list
	    (object Module_Diagram "Main"
		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
	ProcsNDevs 	(list
	    (object Process_Diagram ""
		title      	""
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list))))
    properties 	(object Properties))
