-
Notifications
You must be signed in to change notification settings - Fork 331
/
LocoNetConnectionStartSequence.txt
77 lines (65 loc) · 2.74 KB
/
LocoNetConnectionStartSequence.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
@startuml
participant configurexml
activate configurexml
participant "locobufferusb..ConnectionConfigXml\nextends AbstractSerialConnectionConfigXml\nextends AbstractConnectionConfigXml" as ConnectionConfigXml
participant "locobufferusb.LocoBufferUsbAdapter\nextends LocoBufferAdapter\nimplements jmri.jmrix.SerialPortAdapter" as LocoBufferUsbAdapter
participant "locobufferusb.ConnectionConfig\nextends AbstractSerialConnectionConfig\nextends AbstractConnectionConfig" as ConnectionConfig
...
configurexml -> ConnectionConfigXml: null ctor (via reflection)
activate ConnectionConfigXml
deactivate ConnectionConfigXml
configurexml -> ConnectionConfigXml: load()
activate ConnectionConfigXml
ConnectionConfigXml -> ConnectionConfigXml: getInstance()
activate ConnectionConfigXml
ConnectionConfigXml -> LocoBufferUsbAdapter: null ctor
activate LocoBufferUsbAdapter
deactivate LocoBufferUsbAdapter
note left LocoBufferUsbAdapter: Assigned to "adapter" member
note left LocoBufferUsbAdapter #FFAAAA: Which object is "adapter" in?
deactivate ConnectionConfigXml
ConnectionConfigXml -> ConnectionConfigXml : loadCommon()
activate ConnectionConfigXml
ConnectionConfigXml -> ConnectionConfigXml : loadOptions()
activate ConnectionConfigXml
ConnectionConfigXml -> LocoBufferUsbAdapter : setOptionState(name, value)
activate LocoBufferUsbAdapter
deactivate LocoBufferUsbAdapter
deactivate ConnectionConfigXml
deactivate ConnectionConfigXml
ConnectionConfigXml -> ConnectionConfigXml : register()
activate ConnectionConfigXml
ConnectionConfigXml -> ConnectionConfigXml : register(new ConnectionConfig(adapter))
activate ConnectionConfigXml
ConnectionConfigXml -> ConnectionConfig : ctor
activate ConnectionConfig
deactivate ConnectionConfig
ConnectionConfigXml -> ConnectionConfig: register()
activate ConnectionConfig
ConnectionConfig -> ConnectionConfig : setInstance()
activate ConnectionConfig
note right ConnectionConfig
If adapter member not already set,
create and store a new LocoBufferUsbAdapter
end note
note left ConnectionConfig #FFAAAA: Which object is "adapter" in?
deactivate ConnectionConfig
deactivate ConnectionConfig
deactivate ConnectionConfigXml
deactivate ConnectionConfigXml
note right ConnectionConfigXml
At this point, we have a ConnectionConfig object
configured and registered for later persistance
when e.g. the preferences are stored
end note
ConnectionConfigXml -> LocoBufferUsbAdapter: openPort()
activate LocoBufferUsbAdapter
LocoBufferUsbAdapter -> LocoBufferUsbAdapter : various calls
LocoBufferUsbAdapter -> LocoBufferUsbAdapter
deactivate LocoBufferUsbAdapter
ConnectionConfigXml -> LocoBufferUsbAdapter : configure()
activate LocoBufferUsbAdapter
deactivate LocoBufferUsbAdapter
deactivate ConnectionConfigXml
deactivate configurexml
@enduml