<?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="606px" preserveAspectRatio="none" style="width:533px;height:606px;" version="1.1" viewBox="0 0 533 606" width="533px" zoomAndPan="magnify"><defs><filter height="300%" id="f7oo5deqisxn" 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><!--cluster notifs--><polygon fill="#FFFFFF" filter="url(#f7oo5deqisxn)" points="22,331,32,321,437,321,437,584,427,594,22,594,22,331" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="427" x2="436" y1="331" y2="322"/><line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="427" y1="331" y2="331"/><line style="stroke: #000000; stroke-width: 1.5;" x1="427" x2="427" y1="331" y2="594"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="176.5" y="346.9951">Notifications</text><!--cluster provider--><polygon fill="#FFFFFF" filter="url(#f7oo5deqisxn)" points="267,34,277,24,511,24,511,287,501,297,267,297,267,34" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="501" x2="510" y1="34" y2="25"/><line style="stroke: #000000; stroke-width: 1.5;" x1="267" x2="501" y1="34" y2="34"/><line style="stroke: #000000; stroke-width: 1.5;" x1="501" x2="501" y1="34" y2="297"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="351.5" y="49.9951">Provider</text><!--class notif--><rect fill="#FEFECE" filter="url(#f7oo5deqisxn)" height="48" id="notif" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="308.5" y="530"/><ellipse cx="323.5" cy="546" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M326.4688,551.6406 Q325.8906,551.9375 325.25,552.0781 Q324.6094,552.2344 323.9063,552.2344 Q321.4063,552.2344 320.0781,550.5938 Q318.7656,548.9375 318.7656,545.8125 Q318.7656,542.6875 320.0781,541.0313 Q321.4063,539.375 323.9063,539.375 Q324.6094,539.375 325.25,539.5313 Q325.9063,539.6875 326.4688,539.9844 L326.4688,542.7031 Q325.8438,542.125 325.25,541.8594 Q324.6563,541.5781 324.0313,541.5781 Q322.6875,541.5781 322,542.6563 Q321.3125,543.7188 321.3125,545.8125 Q321.3125,547.9063 322,548.9844 Q322.6875,550.0469 324.0313,550.0469 Q324.6563,550.0469 325.25,549.7813 Q325.8438,549.5 326.4688,548.9219 L326.4688,551.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="71" x="337.5" y="550.1543">Notification</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="309.5" x2="410.5" y1="562" y2="562"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="309.5" x2="410.5" y1="570" y2="570"/><!--class smsNotif--><rect fill="#FEFECE" filter="url(#f7oo5deqisxn)" height="48" id="smsNotif" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="38" y="361"/><ellipse cx="53" cy="377" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M55.9688,382.6406 Q55.3906,382.9375 54.75,383.0781 Q54.1094,383.2344 53.4063,383.2344 Q50.9063,383.2344 49.5781,381.5938 Q48.2656,379.9375 48.2656,376.8125 Q48.2656,373.6875 49.5781,372.0313 Q50.9063,370.375 53.4063,370.375 Q54.1094,370.375 54.75,370.5313 Q55.4063,370.6875 55.9688,370.9844 L55.9688,373.7031 Q55.3438,373.125 54.75,372.8594 Q54.1563,372.5781 53.5313,372.5781 Q52.1875,372.5781 51.5,373.6563 Q50.8125,374.7188 50.8125,376.8125 Q50.8125,378.9063 51.5,379.9844 Q52.1875,381.0469 53.5313,381.0469 Q54.1563,381.0469 54.75,380.7813 Q55.3438,380.5 55.9688,379.9219 L55.9688,382.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="67" y="381.1543">ConcreteNotification_A</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="39" x2="211" y1="393" y2="393"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="39" x2="211" y1="401" y2="401"/><!--class callNotif--><rect fill="#FEFECE" filter="url(#f7oo5deqisxn)" height="48" id="callNotif" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="247" y="361"/><ellipse cx="262" cy="377" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M264.9688,382.6406 Q264.3906,382.9375 263.75,383.0781 Q263.1094,383.2344 262.4063,383.2344 Q259.9063,383.2344 258.5781,381.5938 Q257.2656,379.9375 257.2656,376.8125 Q257.2656,373.6875 258.5781,372.0313 Q259.9063,370.375 262.4063,370.375 Q263.1094,370.375 263.75,370.5313 Q264.4063,370.6875 264.9688,370.9844 L264.9688,373.7031 Q264.3438,373.125 263.75,372.8594 Q263.1563,372.5781 262.5313,372.5781 Q261.1875,372.5781 260.5,373.6563 Q259.8125,374.7188 259.8125,376.8125 Q259.8125,378.9063 260.5,379.9844 Q261.1875,381.0469 262.5313,381.0469 Q263.1563,381.0469 263.75,380.7813 Q264.3438,380.5 264.9688,379.9219 L264.9688,382.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="276" y="381.1543">ConcreteNotification_B</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="248" x2="420" y1="393" y2="393"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="248" x2="420" y1="401" y2="401"/><!--class notProvider--><rect fill="#FEFECE" filter="url(#f7oo5deqisxn)" height="48" id="notProvider" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="297" y="233"/><ellipse cx="312" cy="249" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M314.9688,254.6406 Q314.3906,254.9375 313.75,255.0781 Q313.1094,255.2344 312.4063,255.2344 Q309.9063,255.2344 308.5781,253.5938 Q307.2656,251.9375 307.2656,248.8125 Q307.2656,245.6875 308.5781,244.0313 Q309.9063,242.375 312.4063,242.375 Q313.1094,242.375 313.75,242.5313 Q314.4063,242.6875 314.9688,242.9844 L314.9688,245.7031 Q314.3438,245.125 313.75,244.8594 Q313.1563,244.5781 312.5313,244.5781 Q311.1875,244.5781 310.5,245.6563 Q309.8125,246.7188 309.8125,248.8125 Q309.8125,250.9063 310.5,251.9844 Q311.1875,253.0469 312.5313,253.0469 Q313.1563,253.0469 313.75,252.7813 Q314.3438,252.5 314.9688,251.9219 L314.9688,254.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="326" y="253.1543">NotificationProvider</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="450" y1="265" y2="265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="450" y1="273" y2="273"/><!--class params--><rect fill="#FEFECE" filter="url(#f7oo5deqisxn)" height="48" id="params" style="stroke: #A80036; stroke-width: 1.5;" width="213" x="282.5" y="64"/><ellipse cx="297.5" cy="80" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M300.4688,85.6406 Q299.8906,85.9375 299.25,86.0781 Q298.6094,86.2344 297.9063,86.2344 Q295.4063,86.2344 294.0781,84.5938 Q292.7656,82.9375 292.7656,79.8125 Q292.7656,76.6875 294.0781,75.0313 Q295.4063,73.375 297.9063,73.375 Q298.6094,73.375 299.25,73.5313 Q299.9063,73.6875 300.4688,73.9844 L300.4688,76.7031 Q299.8438,76.125 299.25,75.8594 Q298.6563,75.5781 298.0313,75.5781 Q296.6875,75.5781 296,76.6563 Q295.3125,77.7188 295.3125,79.8125 Q295.3125,81.9063 296,82.9844 Q296.6875,84.0469 298.0313,84.0469 Q298.6563,84.0469 299.25,83.7813 Q299.8438,83.5 300.4688,82.9219 L300.4688,85.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="181" x="311.5" y="84.1543">NotificationsChangedParams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="283.5" x2="494.5" y1="96" y2="96"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="283.5" x2="494.5" y1="104" y2="104"/><!--link smsNotif to notif--><path d="M125,409.21 C125,455.94 125,554 125,554 C125,554 288.43,554 288.43,554 " fill="none" id="smsNotif-notif" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="288.43,547,308.43,554,288.43,561,288.43,547" style="stroke: #A80036; stroke-width: 1.0;"/><!--link callNotif to notif--><path d="M360,409.21 C360,409.21 360,509.83 360,509.83 " fill="none" id="callNotif-notif" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="367,509.83,360,529.83,353,509.83,367,509.83" style="stroke: #A80036; stroke-width: 1.0;"/><!--link params to notProvider--><path d="M374,117.21 C374,117.21 374,232.83 374,232.83 " fill="none" id="params-notProvider" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="374,112.21,370,121.21,374,117.21,378,121.21,374,112.21" style="stroke: #A80036; stroke-width: 1.0;"/><!--link notProvider to smsNotif--><path d="M296.92,257 C223.79,257 125,257 125,257 C125,257 125,355.92 125,355.92 " fill="none" id="notProvider-smsNotif" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="125,360.92,129,351.92,125,355.92,121,351.92,125,360.92" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="264.9863" y="253.4048">0..1</text><!--link notProvider to callNotif--><path d="M359,281.08 C359,281.08 359,355.6 359,355.6 " fill="none" id="notProvider-callNotif" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="359,360.6,363,351.6,359,355.6,355,351.6,359,360.6" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="328.0813" y="301.2563">0..1</text><!--link notProvider to notif--><path d="M436,294.14 C436,294.14 436,546 436,546 C436,546 425.09,546 411.53,546 " fill="none" id="notProvider-notif" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="436,281.14,432,287.14,436,293.14,440,287.14,436,281.14" style="stroke: #A80036; stroke-width: 1.0;"/><!--link params to notif--><path d="M473.25,125.16 C473.25,125.16 473.25,562 473.25,562 C473.25,562 424.65,562 424.65,562 " fill="none" id="params-notif" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="411.65,562,420.65,566,416.65,562,420.65,558,411.65,562" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="416.65" x2="424.65" y1="562" y2="562"/><polygon fill="#A80036" points="473.25,112.16,469.25,118.16,473.25,124.16,477.25,118.16,473.25,112.16" style="stroke: #A80036; stroke-width: 1.0;"/><!--
@startuml
skinparam linetype ortho
node "Notifications" as notifs {
class "Notification" as notif
class "ConcreteNotification_A" as smsNotif
class "ConcreteNotification_B" as callNotif
notif <|-u- - smsNotif
notif <|-u- - callNotif
}
node "Provider" as provider {
class "NotificationProvider" as notProvider
class "NotificationsChangedParams" as params
notProvider -u..>params
}
notProvider "0..1"..> smsNotif
notProvider "0..1"..> callNotif
notProvider *- - notif
params *- ->notif
@enduml
PlantUML version 1.2018.13(Mon Nov 26 18:11:51 CET 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.11+9-Ubuntu-0ubuntu2.20.04
Operating System: Linux
OS Version: 5.8.0-50-generic
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>