~aleteoryx/muditaos

muditaos/module-gui/doc/visitor_item_example.puml -rw-r--r-- 1.1 KiB
a405cad6Aleteoryx trim readme 6 days ago
                                                                                
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
@startuml
skinparam BackgroundColor F0F0F0

participant "ConcreteTree" as ct
participant "ConcreteWalker" as cw
participant "ConcreteVisitor" as cv
participant "gui::Item" as item


[o->cw : traverse(root)
    create ct
        activate cw #DarkGreen
    ct <- cw : <<create>>(root)
    activate ct #DarkGreen

        create cv
        cw -> cv : <<create>>
            activate cv #DarkGreen
loop tree::hasNext()
    ct <- cw : getNext
    activate ct #LimeGreen
    ct --> cw : node
    deactivate ct
        cw -> item : accept(visitor)
                activate item #DarkGreen
            cv <- item : visit(*this)
            activate cv #LimeGreen

            cv -> item : interaction
                activate item #LimeGreen
            cv <-- item
                deactivate item

            cv --> item
            deactivate cv
        cw <-- item
                deactivate item
        cw -> cv : <<concrete interaction>>
            activate cv #LimeGreen
        cw <-- cv
            deactivate cv
end
        cw -x cv : <<delete>>
            deactivate cv
    ct x- cw : <<delete>>
    deactivate ct

@enduml