~aleteoryx/muditaos

ref: e433e8dd033c0212b6b906ee6ff5743f4994135e muditaos/module-apps/apps-common/notifications/doc/notifications_provider_owner_structure.svg -rw-r--r-- 14.8 KiB
e433e8dd — GravisZro Fix transparent backgrounds in PlantUML 4 years 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="726px" preserveAspectRatio="none" style="width:678px;height:726px;background:#F0F0F0;" version="1.1" viewBox="0 0 678 726" width="678px" zoomAndPan="magnify"><defs><filter height="300%" id="fvaii4m476ovg" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[3ca9e735c0b7f202d6f5b2c01a367c29]
cluster owner--><polygon fill="#F0F0F0" filter="url(#fvaii4m476ovg)" points="213.5,253,223.5,243,425.5,243,425.5,704,415.5,714,213.5,714,213.5,253" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="415.5" x2="424.5" y1="253" y2="244"/><line style="stroke: #000000; stroke-width: 1.5;" x1="213.5" x2="415.5" y1="253" y2="253"/><line style="stroke: #000000; stroke-width: 1.5;" x1="415.5" x2="415.5" y1="253" y2="714"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="112" x="259.5" y="268.9951">OwnerService</text><!--MD5=[5004d6500a09f74171c07b5db3ac5e34]
cluster provider--><polygon fill="#F0F0F0" filter="url(#fvaii4m476ovg)" points="158.5,42,168.5,32,656.5,32,656.5,193,646.5,203,158.5,203,158.5,42" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="646.5" x2="655.5" y1="42" y2="33"/><line style="stroke: #000000; stroke-width: 1.5;" x1="158.5" x2="646.5" y1="42" y2="42"/><line style="stroke: #000000; stroke-width: 1.5;" x1="646.5" x2="646.5" y1="42" y2="203"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="370" y="57.9951">Provider</text><!--MD5=[9c71abf7e526916504e6976198840269]
class apm--><rect fill="#FEFECE" filter="url(#fvaii4m476ovg)" height="48" id="apm" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="237.5" y="473"/><ellipse cx="252.5" cy="489" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M255.4688,494.6406 Q254.8906,494.9375 254.25,495.0781 Q253.6094,495.2344 252.9063,495.2344 Q250.4063,495.2344 249.0781,493.5938 Q247.7656,491.9375 247.7656,488.8125 Q247.7656,485.6875 249.0781,484.0313 Q250.4063,482.375 252.9063,482.375 Q253.6094,482.375 254.25,482.5313 Q254.9063,482.6875 255.4688,482.9844 L255.4688,485.7031 Q254.8438,485.125 254.25,484.8594 Q253.6563,484.5781 253.0313,484.5781 Q251.6875,484.5781 251,485.6563 Q250.3125,486.7188 250.3125,488.8125 Q250.3125,490.9063 251,491.9844 Q251.6875,493.0469 253.0313,493.0469 Q253.6563,493.0469 254.25,492.7813 Q254.8438,492.5 255.4688,491.9219 L255.4688,494.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="124" x="266.5" y="493.1543">ApplicationManager</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="238.5" x2="392.5" y1="505" y2="505"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="238.5" x2="392.5" y1="513" y2="513"/><!--MD5=[5cc94c21c9b2a581b186cea6c97dc43c]
class controller--><rect fill="#FEFECE" filter="url(#fvaii4m476ovg)" height="60.8047" id="controller" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="256" y="291"/><ellipse cx="271" cy="307" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M273.9688,312.6406 Q273.3906,312.9375 272.75,313.0781 Q272.1094,313.2344 271.4063,313.2344 Q268.9063,313.2344 267.5781,311.5938 Q266.2656,309.9375 266.2656,306.8125 Q266.2656,303.6875 267.5781,302.0313 Q268.9063,300.375 271.4063,300.375 Q272.1094,300.375 272.75,300.5313 Q273.4063,300.6875 273.9688,300.9844 L273.9688,303.7031 Q273.3438,303.125 272.75,302.8594 Q272.1563,302.5781 271.5313,302.5781 Q270.1875,302.5781 269.5,303.6563 Q268.8125,304.7188 268.8125,306.8125 Q268.8125,308.9063 269.5,309.9844 Q270.1875,311.0469 271.5313,311.0469 Q272.1563,311.0469 272.75,310.7813 Q273.3438,310.5 273.9688,309.9219 L273.9688,312.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="285" y="311.1543">APMController</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="257" x2="374" y1="323" y2="323"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257" x2="374" y1="331" y2="331"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="262" y="345.2104">sendAction(...)</text><!--MD5=[8df9f0bd20a770423a7189661f065206]
class serv--><rect fill="#FEFECE" filter="url(#fvaii4m476ovg)" height="48" id="serv" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="284.5" y="642"/><ellipse cx="299.5" cy="658" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M299.6094,653.3438 L298.4531,658.4219 L300.7813,658.4219 L299.6094,653.3438 Z M298.125,651.1094 L301.1094,651.1094 L304.4688,663.5 L302.0156,663.5 L301.25,660.4375 L297.9688,660.4375 L297.2188,663.5 L294.7813,663.5 L298.125,651.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="70" x="313.5" y="662.1543">sys::Service</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="285.5" x2="385.5" y1="674" y2="674"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="285.5" x2="385.5" y1="682" y2="682"/><!--MD5=[72bec3090eb8c782b6549ec4e5d0b735]
class notProvider--><rect fill="#FEFECE" filter="url(#fvaii4m476ovg)" height="99.2188" id="notProvider" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="450.5" y="80"/><ellipse cx="478.1" cy="96" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M481.0688,101.6406 Q480.4906,101.9375 479.85,102.0781 Q479.2094,102.2344 478.5063,102.2344 Q476.0063,102.2344 474.6781,100.5938 Q473.3656,98.9375 473.3656,95.8125 Q473.3656,92.6875 474.6781,91.0313 Q476.0063,89.375 478.5063,89.375 Q479.2094,89.375 479.85,89.5313 Q480.5063,89.6875 481.0688,89.9844 L481.0688,92.7031 Q480.4438,92.125 479.85,91.8594 Q479.2563,91.5781 478.6313,91.5781 Q477.2875,91.5781 476.6,92.6563 Q475.9125,93.7188 475.9125,95.8125 Q475.9125,97.9063 476.6,98.9844 Q477.2875,100.0469 478.6313,100.0469 Q479.2563,100.0469 479.85,99.7813 Q480.4438,99.5 481.0688,98.9219 L481.0688,101.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="494.9" y="100.1543">NotificationProvider</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="451.5" x2="631.5" y1="112" y2="112"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="456.5" y="126.2104">ownerService *</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="451.5" x2="631.5" y1="132.8047" y2="132.8047"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="58" x="456.5" y="147.0151">handle(...)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="456.5" y="159.8198">send()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="456.5" y="172.6245">requestNotSeenNotifications()</text><!--MD5=[6f928079e476b8128e07b5384699d9e3]
class notifParams--><rect fill="#FEFECE" filter="url(#fvaii4m476ovg)" height="48" id="notifParams" style="stroke: #A80036; stroke-width: 1.5;" width="213" x="202" y="105.5"/><ellipse cx="217" cy="121.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M219.9688,127.1406 Q219.3906,127.4375 218.75,127.5781 Q218.1094,127.7344 217.4063,127.7344 Q214.9063,127.7344 213.5781,126.0938 Q212.2656,124.4375 212.2656,121.3125 Q212.2656,118.1875 213.5781,116.5313 Q214.9063,114.875 217.4063,114.875 Q218.1094,114.875 218.75,115.0313 Q219.4063,115.1875 219.9688,115.4844 L219.9688,118.2031 Q219.3438,117.625 218.75,117.3594 Q218.1563,117.0781 217.5313,117.0781 Q216.1875,117.0781 215.5,118.1563 Q214.8125,119.2188 214.8125,121.3125 Q214.8125,123.4063 215.5,124.4844 Q216.1875,125.5469 217.5313,125.5469 Q218.1563,125.5469 218.75,125.2813 Q219.3438,125 219.9688,124.4219 L219.9688,127.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="231" y="125.6543">NotificationsChangedParams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="203" x2="414" y1="137.5" y2="137.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="203" x2="414" y1="145.5" y2="145.5"/><!--MD5=[70e2152219c9402cc0542a88b9ed3a27]
class params--><rect fill="#FEFECE" filter="url(#fvaii4m476ovg)" height="48" id="params" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="6" y="105.5"/><ellipse cx="21" cy="121.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M23.9688,127.1406 Q23.3906,127.4375 22.75,127.5781 Q22.1094,127.7344 21.4063,127.7344 Q18.9063,127.7344 17.5781,126.0938 Q16.2656,124.4375 16.2656,121.3125 Q16.2656,118.1875 17.5781,116.5313 Q18.9063,114.875 21.4063,114.875 Q22.1094,114.875 22.75,115.0313 Q23.4063,115.1875 23.9688,115.4844 L23.9688,118.2031 Q23.3438,117.625 22.75,117.3594 Q22.1563,117.0781 21.5313,117.0781 Q20.1875,117.0781 19.5,118.1563 Q18.8125,119.2188 18.8125,121.3125 Q18.8125,123.4063 19.5,124.4844 Q20.1875,125.5469 21.5313,125.5469 Q22.1563,125.5469 22.75,125.2813 Q23.3438,125 23.9688,124.4219 L23.9688,127.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="35" y="125.6543">ActionsParams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="130" y1="137.5" y2="137.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="130" y1="145.5" y2="145.5"/><!--MD5=[7ef707c9377bc557f4138b82e1f39099]
link apm to serv--><path d="M335.5,521.21 C335.5,521.21 335.5,621.83 335.5,621.83 " fill="none" id="apm-&gt;serv" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="342.5,621.83,335.5,641.83,328.5,621.83,342.5,621.83" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[198d288db90c7aeb57c6671645850361]
link controller to apm--><path d="M315.5,352.07 C315.5,352.07 315.5,467.98 315.5,467.98 " fill="none" id="controller-&gt;apm" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="315.5,472.98,319.5,463.98,315.5,467.98,311.5,463.98,315.5,472.98" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="290.1281" y="372.0227">use</text><!--MD5=[920cf2f857559ffbc3f12c2e5227adde]
reverse link notifParams to notProvider--><path d="M420.11,130 C420.11,130 450.27,130 450.27,130 " fill="none" id="notifParams&lt;-notProvider" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="415.11,130,424.11,134,420.11,130,424.11,126,415.11,130" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[843dd261dcee4f9db171b8b35c755b55]
link provider to owner--><!--MD5=[f1fb4eb6759933d463737c15f3a77822]
link notProvider to serv--><path d="M541.5,179.01 C541.5,311.83 541.5,666 541.5,666 C541.5,666 391.69,666 391.69,666 " fill="none" id="notProvider-&gt;serv" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="386.69,666,395.69,670,391.69,666,395.69,662,386.69,666" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="516.8109" y="199.4439">use</text><!--MD5=[9f95b805c732dc993722ebfb046c16a6]
link notProvider to controller--><path d="M450.23,162 C387.51,162 315.5,162 315.5,162 C315.5,162 315.5,285.75 315.5,285.75 " fill="none" id="notProvider-&gt;controller" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="315.5,290.75,319.5,281.75,315.5,285.75,311.5,281.75,315.5,290.75" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="422.9943" y="161.7786">use</text><!--MD5=[84f5917073616aec548ccf602d9cc121]
reverse link params to controller--><path d="M68.5,158.88 C68.5,158.88 68.5,322 68.5,322 C68.5,322 182.61,322 255.71,322 " fill="none" id="params&lt;-controller" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="68.5,153.88,64.5,162.88,68.5,158.88,72.5,162.88,68.5,153.88" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="42.6969" y="173.7338">use</text><!--MD5=[20b5769c482c624ed783b2ebbe5fcf9d]
link notifParams to params--><path d="M201.83,117 C201.83,117 151.14,117 151.14,117 " fill="none" id="notifParams-&gt;params" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="151.14,124,131.14,117,151.14,110,151.14,124" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6ea197ac3456e9519bcc174a9a48572d]
link apm to notProvider--><path d="M384.25,472.76 C384.25,397.21 384.25,171 384.25,171 C384.25,171 445.48,171 445.48,171 " fill="none" id="apm-&gt;notProvider" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="450.48,171,441.48,167,445.48,171,441.48,175,450.48,171" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="48" x="347.1578" y="462.1065">creates</text><!--MD5=[a291694f25ad092681ee2ae7d0aa7776]
@startuml
skinparam BackgroundColor F0F0F0
  skinparam linetype ortho
node "OwnerService" as owner{
    class "ApplicationManager" as apm
    class "APMController" as controller{
        {method} sendAction(...)
    }
    abstract "sys::Service" as serv
    serv <|-u- - apm
    controller "use"-d- -> apm
}

class "ActionsParams" as params

node "Provider" as provider {
    class "NotificationProvider" as notProvider {
        {field} ownerService *
        {method} handle(...)
        {method} send()
        {method} requestNotSeenNotifications()
    }
    class "NotificationsChangedParams" as notifParams
    notProvider -l..>notifParams
}

provider -[hidden]d- owner

notProvider "use"- -> serv
notProvider "use"- -> controller
params "use"<- - controller
notifParams - -|>params
apm "creates"..>notProvider


@enduml

PlantUML version 1.2020.02(Sun Mar 01 05:22:07 EST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.12+7-post-Debian-2
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>