From 806db5c6894ab80732f8ed179f72be56b36b9304 Mon Sep 17 00:00:00 2001 From: yanjustino Date: Tue, 16 Jul 2024 13:47:56 -0300 Subject: [PATCH 1/4] Update sample --- docs/images/8t4-c4-brand-2.png | Bin 5730 -> 0 bytes .../c4bank-deposit-area-c4container-bw.png | Bin 56343 -> 0 bytes .../c4bank-deposit-area-c4container.png | Bin 57156 -> 0 bytes docs/images/card-github.png | Bin 8157 -> 0 bytes ...or-internet-banking-system-c4component.png | Bin 44592 -> 0 bytes ...r-internet-banking-system-c4component.puml | 28 -------- ...or-internet-banking-system-c4component.svg | 1 - ...-for-internet-banking-system-c4context.png | Bin 44297 -> 0 bytes ...for-internet-banking-system-c4context.puml | 28 -------- ...-for-internet-banking-system-c4context.svg | 1 - ...or-internet-banking-system-c4container.png | Bin 104933 -> 0 bytes ...r-internet-banking-system-c4container.puml | 44 ------------ ...or-internet-banking-system-c4container.svg | 1 - ...internet-banking-system-v2-c4container.png | Bin 108213 -> 0 bytes ...nternet-banking-system-v2-c4container.puml | 44 ------------ ...internet-banking-system-v2-c4container.svg | 1 - docs/images/context-example.png | Bin 42826 -> 0 bytes docs/images/icon.png | Bin 1831 -> 0 bytes ...ing-system-api-application-c4component.png | Bin 95895 -> 0 bytes ...ng-system-api-application-c4component.puml | 39 ----------- ...ing-system-api-application-c4component.svg | 1 - ...for-internet-banking-system-c4sequence.png | Bin 36394 -> 0 bytes ...or-internet-banking-system-c4sequence.puml | 30 -------- ...for-internet-banking-system-c4sequence.svg | 1 - ...r-internet-banking-system-c4deployment.png | Bin 126563 -> 0 bytes ...-internet-banking-system-c4deployment.puml | 65 ------------------ ...r-internet-banking-system-c4deployment.svg | 1 - ...or-internet-banking-system-c4component.png | Bin 72202 -> 0 bytes ...r-internet-banking-system-c4component.puml | 44 ------------ ...or-internet-banking-system-c4component.svg | 1 - ...-for-internet-banking-system-c4context.png | Bin 71913 -> 0 bytes ...for-internet-banking-system-c4context.puml | 44 ------------ ...-for-internet-banking-system-c4context.svg | 1 - .../Diagrams/ComponentDiagramSample.cs | 2 + samples/ModelDiagrams/IPersonController.cs | 6 ++ samples/ModelDiagrams/Structures/People.cs | 2 +- 36 files changed, 9 insertions(+), 376 deletions(-) delete mode 100644 docs/images/8t4-c4-brand-2.png delete mode 100644 docs/images/c4bank-deposit-area-c4container-bw.png delete mode 100644 docs/images/c4bank-deposit-area-c4container.png delete mode 100644 docs/images/card-github.png delete mode 100644 docs/images/component-diagram-for-internet-banking-system-c4component.png delete mode 100644 docs/images/component-diagram-for-internet-banking-system-c4component.puml delete mode 100644 docs/images/component-diagram-for-internet-banking-system-c4component.svg delete mode 100644 docs/images/component-diagram-for-internet-banking-system-c4context.png delete mode 100644 docs/images/component-diagram-for-internet-banking-system-c4context.puml delete mode 100644 docs/images/component-diagram-for-internet-banking-system-c4context.svg delete mode 100644 docs/images/container-diagram-for-internet-banking-system-c4container.png delete mode 100644 docs/images/container-diagram-for-internet-banking-system-c4container.puml delete mode 100644 docs/images/container-diagram-for-internet-banking-system-c4container.svg delete mode 100644 docs/images/container-diagram-for-internet-banking-system-v2-c4container.png delete mode 100644 docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml delete mode 100644 docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg delete mode 100644 docs/images/context-example.png delete mode 100644 docs/images/icon.png delete mode 100644 docs/images/internet-banking-system-api-application-c4component.png delete mode 100644 docs/images/internet-banking-system-api-application-c4component.puml delete mode 100644 docs/images/internet-banking-system-api-application-c4component.svg delete mode 100644 docs/images/sequence-diagram-for-internet-banking-system-c4sequence.png delete mode 100644 docs/images/sequence-diagram-for-internet-banking-system-c4sequence.puml delete mode 100644 docs/images/sequence-diagram-for-internet-banking-system-c4sequence.svg delete mode 100644 docs/images/system-context-diagram-for-internet-banking-system-c4deployment.png delete mode 100644 docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml delete mode 100644 docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg delete mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.png delete mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.puml delete mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.svg delete mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.png delete mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml delete mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg create mode 100644 samples/ModelDiagrams/IPersonController.cs diff --git a/docs/images/8t4-c4-brand-2.png b/docs/images/8t4-c4-brand-2.png deleted file mode 100644 index 403054f99612b757e69699f4961a7dd061cd996f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5730 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�){+=dzpc!h_izVjC!3 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 z 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 diagram for Internet Banking SystemPersonal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.«external_system»Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.«external_system»E-mail system The internal MicrosoftExchange e-mail system.usesSends e-mails toSends e-mails[SMTP]uses \ No newline at end of file diff --git a/docs/images/component-diagram-for-internet-banking-system-c4context.png b/docs/images/component-diagram-for-internet-banking-system-c4context.png deleted file mode 100644 index 43683b14d961ba3a7f5c578682e68a37e1f66a1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44297 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 diff --git a/docs/images/component-diagram-for-internet-banking-system-c4context.puml b/docs/images/component-diagram-for-internet-banking-system-c4context.puml deleted file mode 100644 index 0d9bc0a..0000000 --- a/docs/images/component-diagram-for-internet-banking-system-c4context.puml +++ /dev/null @@ -1,28 +0,0 @@ -@startuml component-diagram-for-internet-banking-system-c4context -!include ../.c4s/C4_Context.puml - -UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -SHOW_PERSON_PORTRAIT() -LAYOUT_TOP_DOWN() - -title Component diagram for Internet Banking System - -Person_Ext(customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") -System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") -System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") -System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") - -Rel(customer, BankingSystem, "uses") -Rel_Back(customer, MailSystem, "Sends e-mails to") -Rel_Neighbor(BankingSystem, MailSystem, "Sends e-mails", "SMTP") -Rel(BankingSystem, Mainframe, "uses") -@enduml diff --git a/docs/images/component-diagram-for-internet-banking-system-c4context.svg b/docs/images/component-diagram-for-internet-banking-system-c4context.svg deleted file mode 100644 index ef10e10..0000000 --- a/docs/images/component-diagram-for-internet-banking-system-c4context.svg +++ /dev/null @@ -1 +0,0 @@ -Component diagram for Internet Banking SystemPersonal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.«external_system»Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.«external_system»E-mail system The internal MicrosoftExchange e-mail system.usesSends e-mails toSends e-mails[SMTP]uses \ No newline at end of file diff --git a/docs/images/container-diagram-for-internet-banking-system-c4container.png b/docs/images/container-diagram-for-internet-banking-system-c4container.png deleted file mode 100644 index d24471366fcc4cd4ad8e24f7337a9c0f786e5138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104933 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 diff --git a/docs/images/container-diagram-for-internet-banking-system-c4container.puml b/docs/images/container-diagram-for-internet-banking-system-c4container.puml deleted file mode 100644 index 7ad8703..0000000 --- a/docs/images/container-diagram-for-internet-banking-system-c4container.puml +++ /dev/null @@ -1,44 +0,0 @@ -@startuml container-diagram-for-internet-banking-system-c4container -!include ../.c4s/C4_Container.puml - -UpdateElementStyle("system", $bgColor=#1a67be,$fontColor=#FFFFFF,$borderColor=#175eaa,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_system", $bgColor=#999999,$fontColor=#FFFFFF,$borderColor=#8a8a8a,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("person", $bgColor=#0d437b,$fontColor=#FFFFFF,$borderColor=#0d437b,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("component", $bgColor=#85bbf0,$fontColor=#000000,$borderColor=#78a8d9,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_component", $bgColor=#999999,$fontColor=#FFFFFF,$borderColor=#8a8a8a,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("container", $bgColor=#438dd4,$fontColor=#FFFFFF,$borderColor=#3e82c5,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_container", $bgColor=#999999,$fontColor=#FFFFFF,$borderColor=#8a8a8a,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateBoundaryStyle($elementName=system,$bgColor=#FFFFFF,$fontColor=#000000,$borderColor=#000000,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=container,$bgColor=#FFFFFF,$fontColor=#000000,$borderColor=#000000,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=enterprise,$bgColor=#FFFFFF,$fontColor=#000000,$borderColor=#000000,$shadowing="false",$shape=RoundedBoxShape()) -SHOW_PERSON_PORTRAIT() -LAYOUT_TOP_DOWN() - -title Container diagram for Internet Banking System - -Person_Ext(Customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") -System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") -System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") - -System_Boundary(c1, "Internet Banking") { - Container(WebApp, "WebApp", "Web Application:C#, WebApi", "Delivers the static content and the Internet banking SPA") - Container(Spa, "Spa", "Spa:JavaScript, Angular", "Delivers the static content and the Internet banking SPA") - Container(MobileApp, "Mobile App", "Mobile:C#, Xamarin", "Provides a mobile banking experience") - ContainerDb(SqlDatabase, "SqlDatabase", "Database:SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.") - ContainerQueue(RabbitMQ, "RabbitMQ", "Queue:RabbitMQ", "Stores user registration information, hashed auth credentials, access logs, etc.") - Container(BackendApi, "BackendApi", "Api:Dotnet, Docker Container", "Provides Internet banking functionality via API.") -} - - -Rel(Customer, WebApp, "Uses", "HTTPS") -Rel(Customer, Spa, "Uses", "HTTPS") -Rel(Customer, MobileApp, "Uses") -Rel_Neighbor(WebApp, Spa, "Delivers") -Rel(Spa, BackendApi, "Uses", "async, JSON/HTTPS") -Rel(MobileApp, BackendApi, "Uses", "async, JSON/HTTPS") -Rel_Back_Neighbor(SqlDatabase, BackendApi, "Uses", "async, JSON/HTTPS") -Rel_Back(RabbitMQ, BackendApi, "Uses", "async, JSON") -Rel_Back(Customer, MailSystem, "Sends e-mails to") -Rel_Back(MailSystem, BackendApi, "Sends e-mails using", "sync, SMTP") -Rel_Neighbor(BackendApi, BankingSystem, "Uses", "sync/async, XML/HTTPS") -@enduml diff --git a/docs/images/container-diagram-for-internet-banking-system-c4container.svg b/docs/images/container-diagram-for-internet-banking-system-c4container.svg deleted file mode 100644 index 1fc4e43..0000000 --- a/docs/images/container-diagram-for-internet-banking-system-c4container.svg +++ /dev/null @@ -1 +0,0 @@ -Container diagram for Internet Banking System«system_boundary»«boundary»Internet Banking[System]Personal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.«external_system»E-mail system The internal MicrosoftExchange e-mail system.«container»WebApp[Web Application:C#, WebApi] Delivers the static contentand the Internet banking SPA«container»Spa[Spa:JavaScript, Angular] Delivers the static contentand the Internet banking SPA«container»Mobile App[Mobile:C#, Xamarin] Provides a mobile bankingexperience«container»SqlDatabase[Database:SQL Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»RabbitMQ[Queue:RabbitMQ] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»BackendApi[Api:Dotnet, Docker Container] Provides Internet bankingfunctionality via API.Uses[HTTPS]Uses[HTTPS]UsesDeliversUses[async, JSON/HTTPS]Uses[async, JSON/HTTPS]Uses[async, JSON/HTTPS]Uses[async, JSON]Sends e-mails toSends e-mails using[sync, SMTP]Uses[sync/async, XML/HTTPS] \ No newline at end of file diff --git a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.png b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.png deleted file mode 100644 index 5d038ee090c7b3786d4575a10354d3c1270eca9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108213 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 XP7t_)1@ie9z)wm{PP9VU!2kaPc=ll5 diff --git a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml deleted file mode 100644 index af96ac7..0000000 --- a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml +++ /dev/null @@ -1,44 +0,0 @@ -@startuml container-diagram-for-internet-banking-system-v2-c4container -!include ../.c4s/C4_Container.puml - -UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -SHOW_PERSON_PORTRAIT() -LAYOUT_TOP_DOWN() - -title Container diagram for Internet Banking System v2 - -Person_Ext(Customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") -System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") -System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") - -System_Boundary(c1, "Internet Banking") { - Container(WebApp, "WebApp", "Web Application:C#, WebApi", "Delivers the static content and the Internet banking SPA") - Container(Spa, "Spa", "Spa:JavaScript, Angular", "Delivers the static content and the Internet banking SPA") - Container(MobileApp, "Mobile App", "Mobile:C#, Xamarin", "Provides a mobile banking experience") - ContainerDb(SqlDatabase, "SqlDatabase", "Database:SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.") - ContainerQueue(RabbitMQ, "RabbitMQ", "Queue:RabbitMQ", "Stores user registration information, hashed auth credentials, access logs, etc.") - Container(BackendApi, "BackendApi", "Api:Dotnet, Docker Container", "Provides Internet banking functionality via API.") -} - - -Rel(Customer, WebApp, "Uses", "HTTPS") -Rel(Customer, Spa, "Uses", "HTTPS") -Rel(Customer, MobileApp, "Uses") -Rel_Neighbor(WebApp, Spa, "Delivers") -Rel(Spa, BackendApi, "Uses", "async, JSON/HTTPS") -Rel(MobileApp, BackendApi, "Uses", "async, JSON/HTTPS") -Rel_Back_Neighbor(SqlDatabase, BackendApi, "Uses", "async, JSON/HTTPS") -Rel_Back(RabbitMQ, BackendApi, "Uses", "async, JSON") -Rel_Back(Customer, MailSystem, "Sends e-mails to") -Rel_Back(MailSystem, BackendApi, "Sends e-mails using", "sync, SMTP") -Rel_Neighbor(BackendApi, BankingSystem, "Uses", "sync/async, XML/HTTPS") -@enduml diff --git a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg deleted file mode 100644 index 0a13ae6..0000000 --- a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg +++ /dev/null @@ -1 +0,0 @@ -Container diagram for Internet Banking System v2«system_boundary»«boundary»Internet Banking[System]Personal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.«external_system»E-mail system The internal MicrosoftExchange e-mail system.«container»WebApp[Web Application:C#, WebApi] Delivers the static contentand the Internet banking SPA«container»Spa[Spa:JavaScript, Angular] Delivers the static contentand the Internet banking SPA«container»Mobile App[Mobile:C#, Xamarin] Provides a mobile bankingexperience«container»SqlDatabase[Database:SQL Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»RabbitMQ[Queue:RabbitMQ] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»BackendApi[Api:Dotnet, Docker Container] Provides Internet bankingfunctionality via API.Uses[HTTPS]Uses[HTTPS]UsesDeliversUses[async, JSON/HTTPS]Uses[async, JSON/HTTPS]Uses[async, JSON/HTTPS]Uses[async, JSON]Sends e-mails toSends e-mails using[sync, SMTP]Uses[sync/async, XML/HTTPS] \ No newline at end of file diff --git a/docs/images/context-example.png b/docs/images/context-example.png deleted file mode 100644 index a7f216892287dc285be5505e9c5df5fc4fec440e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42826 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 diff --git a/docs/images/icon.png b/docs/images/icon.png deleted file mode 100644 index 2b8ec809fcf07ab39bc19f1fc27251d172345faa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1831 zcmb_d_gB*g5dS6yf`otq4Kbh$sj`Pfc@`yLh(K8~f?y+i1O!S5GqMT>kO&wBK_LWC zhEXV6K*Ka4YGqVGC|f`oLW%)`5U}YVQ2R^YySvZbecrpfAMV{u*b&My;M-VB3E8;*Q_Ldw$y9Rd2fyw@Pth z7_5ktT@o)-bi(b|aDtX74rG-?1A#rO2q?~qh}*AeU3m=m0L;6>p2n}PPMCDWH1hd+O*Y?Id|kx2m;znH?Ow0L*+tr1pdxe3?+ak*k8yx|J@b z8mrecEA7wG(Ym&P+6x-O08$rWZC}&Ymm(1(xL8v~W`#w;E5BLu8}0s$l49!BHZ_$8 zJ203Vhc({y=He;F;6BBdPQyGP--;>^&>efI|Uw$xo z@a2<{pB8`;cCoI~pvXdWabor7Icq+HQB>^OKqAr59+l&)grBQjwP?RFiWnDg6MqGz?`jy(g^{yqOOVaI)YzXPWly#N8l)_vk$Ntl zr93D(tg&K2$-5bLR(*Rk1F2d_bDDnIw~)b&A}nB&Ih^xlSBK&sW9UJLmsB?`d7MmT zxF71nTJh)4_4Vv1p63u)opoHsuMSiXp_nJC>*Rid=sTO;N6%Pmj2`RWs z&q_F~IrHM-!w~`GqlX-F`^^nhTrU-ff;+ujf{uWpLFA%EcAj$vEwnNXv};}P1)4+VjBolDRN zMX>^M2Q@UH;w)vwjANi0qgK;9CEY&NJKTbo^jg}j(D8LjY>Cz-8ZHdKE_|70sjdCm z(!_B`(nK}ixii?-@TDcTn(=}TRPTZvpHuG0id-TI{YSI>v`VWifMv8y=CC&BR9Y`V z0w#9qv}9_24|Nb%&6Id`Ud`tE8}qJ@_}hvg+c8%B`W~gc9MfNlls{(952s=cCD=z1 zsXEi+jBLDwXp*4W#QnJE#dPpM)v_V1?TSEpb@vF6?Gx54R(s%{g!~f}CM;lqS|!nXHPb2V3W;kJS#p8}{*(Ic9D3V-YMl zBrhnhXzp$8;+%u#%w~jaPCm9|aT>ZbPBc8VD(;inW%m(ked5_;PGV2{0FI>PkjD)1OS3H&st;Zl)5MFBLRLg2Qv9tqr00c9sQrSZw# z&K(WEHc7PYO!z5L$r8q(2@e$9LJu^IjIwNG}R-{$LHKZ<5(NW>)5sq z@AYUK= diff --git a/docs/images/internet-banking-system-api-application-c4component.png b/docs/images/internet-banking-system-api-application-c4component.png deleted file mode 100644 index 9d0144b34abd824cc4aed034d4d1b3d053e6a070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95895 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 z 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

1u3%8b|Ln+3Tm4Lccermy~ul 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 + +UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +SHOW_PERSON_PORTRAIT() +LAYOUT_TOP_DOWN() + +title Component diagram for Internet Banking System + +Person_Ext(customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") +System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") +System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") +System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") + +Rel(customer, BankingSystem, "uses") +Rel_Back(customer, MailSystem, "Sends e-mails to") +Rel_Neighbor(BankingSystem, MailSystem, "Sends e-mails", "SMTP") +Rel(BankingSystem, Mainframe, "uses") +@enduml diff --git a/docs/images/component-diagram-for-internet-banking-system-c4context.svg b/docs/images/component-diagram-for-internet-banking-system-c4context.svg new file mode 100644 index 0000000..84de661 --- /dev/null +++ b/docs/images/component-diagram-for-internet-banking-system-c4context.svg @@ -0,0 +1 @@ +Component diagram for Internet Banking SystemPersonal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.«external_system»Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.«external_system»E-mail system The internal MicrosoftExchange e-mail system.usesSends e-mails toSends e-mails[SMTP]uses \ No newline at end of file diff --git a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.png b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.png new file mode 100644 index 0000000000000000000000000000000000000000..405cbb6d6001385e4bb70cb5939d1e5fcd6f1013 GIT binary patch literal 108086 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 ae}-{%?13p*B3pa~{3JzXMJj~!{r(s2JmkRu literal 0 HcmV?d00001 diff --git a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml new file mode 100644 index 0000000..a49ccbc --- /dev/null +++ b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml @@ -0,0 +1,44 @@ +@startuml container-diagram-for-internet-banking-system-v2-c4container +!include + +UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +SHOW_PERSON_PORTRAIT() +LAYOUT_TOP_DOWN() + +title Container diagram for Internet Banking System v2 + +Person_Ext(Customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") +System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") +System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") + +System_Boundary(c1, "Internet Banking") { + Container(WebApp, "WebApp", "Web Application:C#, WebApi", "Delivers the static content and the Internet banking SPA") + Container(Spa, "Spa", "Spa:JavaScript, Angular", "Delivers the static content and the Internet banking SPA") + Container(MobileApp, "Mobile App", "Mobile:C#, Xamarin", "Provides a mobile banking experience") + ContainerDb(SqlDatabase, "SqlDatabase", "Database:SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.") + ContainerQueue(RabbitMQ, "RabbitMQ", "Queue:RabbitMQ", "Stores user registration information, hashed auth credentials, access logs, etc.") + Container(BackendApi, "BackendApi", "Api:Dotnet, Docker Container", "Provides Internet banking functionality via API.") +} + + +Rel(Customer, WebApp, "Uses", "HTTPS") +Rel(Customer, Spa, "Uses", "HTTPS") +Rel(Customer, MobileApp, "Uses") +Rel_Neighbor(WebApp, Spa, "Delivers") +Rel(Spa, BackendApi, "Uses", "async, JSON/HTTPS") +Rel(MobileApp, BackendApi, "Uses", "async, JSON/HTTPS") +Rel_Back_Neighbor(SqlDatabase, BackendApi, "Uses", "async, JSON/HTTPS") +Rel_Back(RabbitMQ, BackendApi, "Uses", "async, JSON") +Rel_Back(Customer, MailSystem, "Sends e-mails to") +Rel_Back(MailSystem, BackendApi, "Sends e-mails using", "sync, SMTP") +Rel_Neighbor(BackendApi, BankingSystem, "Uses", "sync/async, XML/HTTPS") +@enduml diff --git a/docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg new file mode 100644 index 0000000..9b970b2 --- /dev/null +++ b/docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg @@ -0,0 +1 @@ +Container diagram for Internet Banking System v2«system_boundary»«boundary»Internet Banking[System]Personal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.«external_system»E-mail system The internal MicrosoftExchange e-mail system.«container»WebApp[Web Application:C#, WebApi] Delivers the static contentand the Internet banking SPA«container»Spa[Spa:JavaScript, Angular] Delivers the static contentand the Internet banking SPA«container»Mobile App[Mobile:C#, Xamarin] Provides a mobile bankingexperience«container»SqlDatabase[Database:SQL Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»RabbitMQ[Queue:RabbitMQ] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»BackendApi[Api:Dotnet, Docker Container] Provides Internet bankingfunctionality via API.Uses[HTTPS]Uses[HTTPS]UsesDeliversUses[async, JSON/HTTPS]Uses[async, JSON/HTTPS]Uses[async, JSON/HTTPS]Uses[async, JSON]Sends e-mails toSends e-mails using[sync, SMTP]Uses[sync/async, XML/HTTPS] \ No newline at end of file diff --git a/docs/images/internet-banking-system-api-application-c4component.png b/docs/images/internet-banking-system-api-application-c4component.png new file mode 100644 index 0000000000000000000000000000000000000000..8f654222c0f94d9645fd57f77d0af0086a7bdb17 GIT binary patch literal 107198 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

?kR7M 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 literal 0 HcmV?d00001 diff --git a/docs/images/internet-banking-system-api-application-c4component.puml b/docs/images/internet-banking-system-api-application-c4component.puml new file mode 100644 index 0000000..d5a710d --- /dev/null +++ b/docs/images/internet-banking-system-api-application-c4component.puml @@ -0,0 +1,42 @@ +@startuml internet-banking-system-api-application-c4component +!include + +UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +SHOW_PERSON_PORTRAIT() +LAYOUT_LEFT_RIGHT() + +title Internet Banking System API Application + +Container(ModelDiagrams.PersonController, "Person Controller", "Api", "Person Controller") +Container(MobileApp, "MobileApp", "Mobile:C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device") +ContainerDb(Database, "SqlDatabase", "Database:SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.") +System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + +Container_Boundary(c1, "API Application") { + Component(sign, "Sign In Controller", "MVC Controller", "Allows users to sign in to the internet banking system") + Component(accounts, "Accounts Summary Controller", "MVC Controller", "Provides customers with a summary of their bank accounts") + Component(security, "Security Component", "Spring Bean", "Provides functionality related to singing in, changing passwords, etc.") + Component(mbsfacade, "Mainframe Banking System Facade", "Spring Bean", "A facade onto the mainframe banking system.") +} + + +Rel(sign, security, "uses") +Rel(accounts, mbsfacade, "uses") +Rel(security, Database, "Read & write to", "JDBC") +Rel(mbsfacade, Mainframe, "Uses", "XML/HTTPS") +Rel(Spa, sign, "Uses", "JSON/HTTPS") +Rel(Spa, accounts, "Uses", "JSON/HTTPS") +Rel(MobileApp, sign, "Uses", "JSON/HTTPS") +Rel(MobileApp, accounts, "Uses", "JSON/HTTPS") + +SHOW_LEGEND() +@enduml diff --git a/docs/images/internet-banking-system-api-application-c4component.svg b/docs/images/internet-banking-system-api-application-c4component.svg new file mode 100644 index 0000000..1898f2e --- /dev/null +++ b/docs/images/internet-banking-system-api-application-c4component.svg @@ -0,0 +1 @@ +Internet Banking System API ApplicationAPI Application[Container]Person Controller[Api] Person ControllerMobileApp[Mobile:C#, Xamarin] Provides a limited subset ofthe Internet bankingfunctionality to customersvia their mobile deviceSqlDatabase[Database:SQL Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.SpaSign In Controller[MVC Controller] Allows users to sign in to theinternet banking systemAccounts SummaryController[MVC Controller] Provides customers with asummary of their bankaccountsSecurity Component[Spring Bean] Provides functionality relatedto singing in, changingpasswords, etc.Mainframe BankingSystem Facade[Spring Bean] A facade onto the mainframebanking system.usesusesRead & write to[JDBC]Uses[XML/HTTPS]Uses[JSON/HTTPS]Uses[JSON/HTTPS]Uses[JSON/HTTPS]Uses[JSON/HTTPS]Legend  container(no shadow, rounded box, solid, thickness 2)  component(no shadow, rounded box, solid, thickness 2)  external_system(no shadow, rounded box, solid, thickness 1)  container boundary(no shadow, rounded box, dashed)  \ No newline at end of file diff --git a/docs/images/sequence-diagram-for-internet-banking-system-c4sequence.png b/docs/images/sequence-diagram-for-internet-banking-system-c4sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..5449f632cdb68d3b5de2f0d5613f76d19d32b8f2 GIT binary patch literal 36216 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 + +UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +SHOW_PERSON_PORTRAIT() + +title Sequence diagram for Internet Banking System + +Container(cA, "Single-Page Application", "None:JavaScript and Angular", "Provides all of the Internet banking functionality to customers via their web browser.") + +Container_Boundary(b, "Api Application") + Component(cB, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.") + Component(cC, "Security Component", "Spring Bean", "Provides functionality Related to signing in, changing passwords, etc.") +Boundary_End() + +ContainerDb(cD, "Database", "Database:Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.") + +Rel(cA, cB, "Submits credentials to", "JSON/HTTPS") +Rel(cB, cC, "Calls isAuthenticated() on") +Rel(cC, cD, "select * from users where username = ?o", "JDBCS") +@enduml diff --git a/docs/images/sequence-diagram-for-internet-banking-system-c4sequence.svg b/docs/images/sequence-diagram-for-internet-banking-system-c4sequence.svg new file mode 100644 index 0000000..e91ea78 --- /dev/null +++ b/docs/images/sequence-diagram-for-internet-banking-system-c4sequence.svg @@ -0,0 +1 @@ +Api Application[Container]Sequence diagram for Internet Banking System«container»Single-Page Application[None:JavaScript and Angular]«component»Sign In Controller[Spring MVC Rest Controller]«component»Security Component[Spring Bean]«container»Database[Database:Relational Database Schema]Submits credentials to[JSON/HTTPS]Calls isAuthenticated()onselect * from userswhere username = ?o[JDBCS] \ No newline at end of file diff --git a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.png b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.png new file mode 100644 index 0000000000000000000000000000000000000000..96bf25951cc2228e32b151e05357785ae4445f99 GIT binary patch literal 126422 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á-e~;+h+%BM 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 literal 0 HcmV?d00001 diff --git a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml new file mode 100644 index 0000000..a263036 --- /dev/null +++ b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml @@ -0,0 +1,65 @@ +@startuml system-context-diagram-for-internet-banking-system-c4deployment +!include + +UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +SHOW_PERSON_PORTRAIT() +LAYOUT_TOP_DOWN() + +title System Context diagram for Internet Banking System + + +Deployment_Node(plc, "Big Bank plc", "Big Bank plc data center") { + Deployment_Node(dn, "bigbank-api*** x8", "Ubuntu 16.04 LTS") { + AddProperty("Java Version", "8") + AddProperty("Xmx", "512M") + AddProperty("Xms", "1024M") + Deployment_Node(apache, "Apache Tomcat", "Apache Tomcat 8.x") { + Container(BackendApi, "BackendApi", "Api:Dotnet, Docker Container", "Provides Internet banking functionality via API.") + } + } + Deployment_Node(bigbankdb01, "bigbank-db01", "Ubuntu 16.04 LTS") { + Deployment_Node(oracle, "Oracle - Primary", "Oracle 12c") { + ContainerDb(Database.1, "OracleDatabase", "Database:Oracle Database", "Stores user registration information, hashed auth credentials, access logs, etc.") + } + } + Deployment_Node(bigbankdb02, "bigbank-db02", "Ubuntu 16.04 LTS") { + Deployment_Node(oracle2, "Oracle - Primary", "Oracle 12c") { + ContainerDb(Database.data.reader, "OracleDatabase", "Database:Oracle Database", "Stores user registration information, hashed auth credentials, access logs, etc.") + } + } + Deployment_Node(bb2, "bigbank-web*** x4", "Ubuntu 16.04 LTS") { + AddProperty("Java Version", "8") + AddProperty("Xmx", "512M") + AddProperty("Xms", "1024M") + Deployment_Node(apache2, "Apache Tomcat", "Apache Tomcat 8.x") { + Container(Corporate.Finance.Limits.Service.ServiceBus, "WebApp", "Web Application:C#, WebApi", "Delivers the static content and the Internet banking SPA") + } + } +} + +Deployment_Node(ios, "Customer's mobile device", "Apple IOS") { +Container(MobileApp, "MobileApp", "Mobile:C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device") +} + +Deployment_Node(computer, "Customer's computer", "Mircosoft Windows and Apple macOS") { + Deployment_Node(browser, "Web Browser", "Google Chrome, Mozilla Firefox, Apple Safari or Microsoft Edge") { + Container(Spa, "SPA", "Spa:JavaScript, Angular", "Provides all the Internet banking functionality to customers via their web browser") + } +} + +Rel(MobileApp, BackendApi, "Makes API calls to", "json/HTTPS") +Rel(Spa, BackendApi, "Makes API calls to", "json/HTTPS") +Rel_U(Corporate.Finance.Limits.Service.ServiceBus, Spa, "Delivers to the customer's web browser") +Rel(BackendApi, Database.1, "Writes to", "JDBC") +Rel_Back(BackendApi, Database.data.reader, "Reads from", "JDBC") +Rel_R(Database.1, Database.data.reader, "Replicates data to", "JDBC") +@enduml diff --git a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg new file mode 100644 index 0000000..c8b86c3 --- /dev/null +++ b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg @@ -0,0 +1 @@ +System Context diagram for Internet Banking System«node»Big Bank plc[Big Bank plc data center]«node»bigbank-api***x8[Ubuntu 16.04 LTS]«node»Apache Tomcat[Apache Tomcat 8.x]PropertyValueJava Version8Xmx512MXms1024M«node»bigbank-db01[Ubuntu 16.04 LTS]«node»Oracle - Primary[Oracle 12c]«node»bigbank-db02[Ubuntu 16.04 LTS]«node»Oracle - Primary[Oracle 12c]«node»bigbank-web***x4[Ubuntu 16.04 LTS]«node»Apache Tomcat[Apache Tomcat 8.x]PropertyValueJava Version8Xmx512MXms1024M«node»Customer's mobile device[Apple IOS]«node»Customer's computer[Mircosoft Windows and Apple macOS]«node»Web Browser[Google Chrome, Mozilla Firefox,Apple Safari or Microsoft Edge]«container»BackendApi[Api:Dotnet, Docker Container] Provides Internet bankingfunctionality via API.«container»OracleDatabase[Database:Oracle Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»OracleDatabase[Database:Oracle Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»WebApp[Web Application:C#, WebApi] Delivers the static contentand the Internet banking SPA«container»MobileApp[Mobile:C#, Xamarin] Provides a limited subset ofthe Internet bankingfunctionality to customersvia their mobile device«container»SPA[Spa:JavaScript, Angular] Provides all the Internetbanking functionality tocustomers via their webbrowserMakes API calls to[json/HTTPS]Makes API calls to[json/HTTPS]Delivers to the customer's web browserWrites to[JDBC]Reads from[JDBC]Replicates data to[JDBC] \ No newline at end of file diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.png b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.png new file mode 100644 index 0000000000000000000000000000000000000000..d227979ee828cc981a60625e76c1a380728e94a9 GIT binary patch literal 71823 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 literal 0 HcmV?d00001 diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml new file mode 100644 index 0000000..98c543e --- /dev/null +++ b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml @@ -0,0 +1,44 @@ +@startuml system-enterprise-diagram-for-internet-banking-system-c4context +!include + +UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) +UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) +UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) +SHOW_PERSON_PORTRAIT() +LAYOUT_TOP_DOWN() + +title System Enterprise diagram for Internet Banking System + +Person_Ext(customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") + +Enterprise_Boundary(enterprise.boundary, "Domain A") { + System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + +Enterprise_Boundary(enterprise.boundary.1, "Domain Internal Users") { + Person(internalcustomer, "Personal Banking Customer", "An customer of the bank, with personal bank accounts.") +} + + +Enterprise_Boundary(enterprise.boundary.2, "Domain Managers") { + Person(manager, "Manager Banking Customer", "A manager of the bank, with personal bank accounts.") +} + +} + +System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") +System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") + +Rel(customer, BankingSystem, "uses") +Rel(internalcustomer, BankingSystem, "uses") +Rel(manager, BankingSystem, "uses") +Rel_Back(customer, MailSystem, "Sends e-mails to") +Rel_Neighbor(BankingSystem, MailSystem, "Sends e-mails", "SMTP") +Rel(BankingSystem, Mainframe, "uses") +@enduml diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg new file mode 100644 index 0000000..fb8d6ea --- /dev/null +++ b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg @@ -0,0 +1 @@ +System Enterprise diagram for Internet Banking System«enterprise_boundary»«boundary»Domain A[Enterprise]«enterprise_boundary»«boundary»Domain Internal Users[Enterprise]«enterprise_boundary»«boundary»Domain Managers[Enterprise]Personal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«external_system»Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.«external_system»E-mail system The internal MicrosoftExchange e-mail system.«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.Personal BankingCustomer An customer of the bank,with personal bank accounts.«person»Manager BankingCustomer A manager of the bank, withpersonal bank accounts.«person»usesusesusesSends e-mails toSends e-mails[SMTP]uses \ No newline at end of file diff --git a/docs/system-enterprise-diagram-for-internet-banking-system-c4context.mermaid.md b/docs/system-enterprise-diagram-for-internet-banking-system-c4context.mermaid.md deleted file mode 100644 index 7935dd8..0000000 --- a/docs/system-enterprise-diagram-for-internet-banking-system-c4context.mermaid.md +++ /dev/null @@ -1,31 +0,0 @@ -```mermaid -C4Context - -title System Enterprise diagram for Internet Banking System - -Person_Ext(customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") - -Enterprise_Boundary(enterprise.boundary, "Domain A") { - System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.", $tags="services") - -Enterprise_Boundary(enterprise.boundary.1, "Domain Internal Users") { - Person(internalcustomer, "Personal Banking Customer", "An internal customer of the bank, with personal bank accounts.") -} - - -Enterprise_Boundary(enterprise.boundary.2, "Domain Managers") { - Person(manager, "Manager Banking Customer", "A manager of the bank, with personal bank accounts.") -} - -} - -System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") -System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") - -Rel(customer, BankingSystem, "uses") -Rel(internalcustomer, BankingSystem, "uses") -Rel(manager, BankingSystem, "uses") -Rel_Back(customer, MailSystem, "Sends e-mails to") -Rel(BankingSystem, MailSystem, "Sends e-mails", "SMTP") -Rel(BankingSystem, Mainframe, "uses") -``` diff --git a/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs b/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs index 13397ac..097d75a 100644 --- a/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs @@ -3,7 +3,6 @@ using C4Sharp.Elements; using C4Sharp.Elements.Containers; using C4Sharp.Elements.Relationships; -using static C4Sharp.Elements.Relationships.Boundary; using static ModelDiagrams.Structures.Systems; using static ModelDiagrams.Structures.Containers; using static ModelDiagrams.Structures.Components; @@ -16,8 +15,8 @@ public class ComponentDiagramSample : ComponentDiagram protected override DiagramLayout FlowVisualization => DiagramLayout.LeftRight; protected override bool ShowLegend => true; - protected override IEnumerable Structures => new Structure[] - { + protected override IEnumerable Structures => + [ new Api(), MobileApp, SqlDatabase, @@ -27,19 +26,18 @@ public class ComponentDiagramSample : ComponentDiagram Accounts, Security, MainframeFacade - ), - }; + ) + ]; - protected override IEnumerable Relationships => new Relationship[] - { + protected override IEnumerable Relationships => + [ Sign > Security, Accounts > MainframeFacade, Security > SqlDatabase | ("Read & write to", "JDBC"), MainframeFacade > Mainframe | ("Uses", "XML/HTTPS"), - SpaApp > Sign | ("Uses", "JSON/HTTPS"), SpaApp > Accounts | ("Uses", "JSON/HTTPS"), MobileApp > Sign | ("Uses", "JSON/HTTPS"), MobileApp > Accounts | ("Uses", "JSON/HTTPS") - }; + ]; } \ No newline at end of file diff --git a/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs b/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs index d10ba0a..24154a2 100644 --- a/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs @@ -9,50 +9,84 @@ public class ContainerDiagramSample : ContainerDiagram { protected override string Title => "Container diagram for Internet Banking System v2"; - protected override IEnumerable Structures => new Structure[] - { - Person.None | Boundary.External - | ("Customer", "Personal Banking Customer", "A customer of the bank, with personal bank accounts."), - - SoftwareSystem.None | ("BankingSystem", "Internet Banking System", - "Allows customers to view information about their bank accounts, and make payments."), - - SoftwareSystem.None | Boundary.External - | ("MailSystem", "E-mail system", "The internal Microsoft Exchange e-mail system."), - + protected override IEnumerable Structures => + [ + Person.None | Boundary.External | ( + alias: "Customer", + label: "Personal Banking Customer", + description: "A customer of the bank, with personal bank accounts." + ), + + SoftwareSystem.None | ( + alias: "BankingSystem", + label: "Internet Banking System", + description: "Allows customers to view information about their bank accounts, and make payments." + ), + + SoftwareSystem.None | Boundary.External | ( + alias: "MailSystem", + label: "E-mail system", + description: "The internal Microsoft Exchange e-mail system." + ), + Bound("c1", "Internet Banking", - Container.None | (WebApplication, "WebApp", "WebApp", "C#, WebApi", - "Delivers the static content and the Internet banking SPA"), - - Container.None | (Spa, "Spa", "Spa", "JavaScript, Angular", - "Delivers the static content and the Internet banking SPA"), - - Container.None | (Mobile, "MobileApp", "Mobile App", "C#, Xamarin", - "Provides a mobile banking experience"), - - Container.None | (Database, "SqlDatabase", "SqlDatabase", "SQL Database", - "Stores user registration information, hashed auth credentials, access logs, etc."), - - Container.None | (Queue, "RabbitMQ", "RabbitMQ", "RabbitMQ", - "Stores user registration information, hashed auth credentials, access logs, etc."), - - Container.None | (Api, "BackendApi", "BackendApi", "Dotnet, Docker Container", - "Provides Internet banking functionality via API.") + Container.Undefined | ( + type: WebApplication, + alias: "WebApp", + label: "WebApp", + technology: "C#, WebApi", + description: "Delivers the static content and the Internet banking SPA" + ), + Container.None | ( + type: Spa, + alias: "Spa", + label: "Spa", + technology: "JavaScript, Angular", + description: "Delivers the static content and the Internet banking SPA" + ), + Container.None | ( + type: Mobile, + alias: "MobileApp", + label: "Mobile App", + technology: "C#, Xamarin", + description: "Provides a mobile banking experience" + ), + Container.None | ( + type: Database, + alias: "SqlDatabase", + label: "SqlDatabase", + technology: "SQL Database", + description: "Stores user registration information, hashed auth credentials, access logs, etc." + ), + Container.None | ( + type: Queue, + alias: "RabbitMQ", + label: "RabbitMQ", + technology: "RabbitMQ", + description: "Stores user registration information, hashed auth credentials, access logs, etc." + ), + Container.None | ( + type: Api, + alias: "BackendApi", + label: "BackendApi", + technology: "Dotnet, Docker Container", + description: "Provides Internet banking functionality via API." + ) ) - }; + ]; protected override IEnumerable Relationships => new[] { this["Customer"] > this["WebApp"] | ("Uses", "HTTPS"), this["Customer"] > this["Spa"] | ("Uses", "HTTPS"), this["Customer"] > this["MobileApp"] | "Uses", - + this["WebApp"] > this["Spa"] | "Delivers" | Position.Neighbor, this["Spa"] > this["BackendApi"] | ("Uses", "async, JSON/HTTPS"), this["MobileApp"] > this["BackendApi"] | ("Uses", "async, JSON/HTTPS"), this["SqlDatabase"] < this["BackendApi"] | ("Uses", "async, JSON/HTTPS") | Position.Neighbor, this["RabbitMQ"] < this["BackendApi"] | ("Uses", "async, JSON"), - + this["Customer"] < this["MailSystem"] | "Sends e-mails to", this["MailSystem"] < this["BackendApi"] | ("Sends e-mails using", "sync, SMTP"), this["BackendApi"] > this["BankingSystem"] | ("Uses", "sync/async, XML/HTTPS") | Position.Neighbor diff --git a/samples/ModelDiagrams/Diagrams/ContextDiagramSample.cs b/samples/ModelDiagrams/Diagrams/ContextDiagramSample.cs index 5a3911c..bb3bb7b 100644 --- a/samples/ModelDiagrams/Diagrams/ContextDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/ContextDiagramSample.cs @@ -11,19 +11,19 @@ public class ContextDiagramSample : ContextDiagram { protected override string Title => "Component diagram for Internet Banking System"; - protected override IEnumerable Structures => new Structure[] - { + protected override IEnumerable Structures => + [ Customer, BankingSystem, Mainframe, MailSystem - }; + ]; - protected override IEnumerable Relationships => new[] - { + protected override IEnumerable Relationships => + [ Customer > BankingSystem, Customer < MailSystem | "Sends e-mails to", BankingSystem > MailSystem | ("Sends e-mails", "SMTP") | Neighbor, BankingSystem > Mainframe - }; + ]; } \ No newline at end of file diff --git a/samples/ModelDiagrams/Diagrams/DeploymentDiagramSample.cs b/samples/ModelDiagrams/Diagrams/DeploymentDiagramSample.cs index ec232f3..4674f08 100644 --- a/samples/ModelDiagrams/Diagrams/DeploymentDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/DeploymentDiagramSample.cs @@ -6,28 +6,30 @@ namespace ModelDiagrams.Diagrams; -public class DeploymentDiagramSample: DeploymentDiagram +public class DeploymentDiagramSample : DeploymentDiagram { protected override string Title => "System Context diagram for Internet Banking System"; - protected override IEnumerable Structures => new Structure[] - { + protected override IEnumerable Structures => + [ Node("plc", "Big Bank plc", "Big Bank plc data center", + [ Nodes.Ubuntu("dn", "bigbank-api***\tx8", Nodes.ApacheTomCat("apache", Containers.BackendApi)), Nodes.Ubuntu("bigbankdb01", "bigbank-db01", Nodes.OracleNode("oracle", Containers.OracleDatabase[1])), Nodes.Ubuntu("bigbankdb02", "bigbank-db02", Nodes.OracleNode("oracle2", Containers.OracleDatabase["Data Reader"])), - Nodes.Ubuntu("bb2", "bigbank-web***\tx4", Nodes.ApacheTomCat("apache2", Containers.WebApp))), + Nodes.Ubuntu("bb2", "bigbank-web***\tx4", Nodes.ApacheTomCat("apache2", Containers.WebApp)) + ]), Nodes.Ios("ios", Containers.MobileApp), Nodes.PersonalComputer("computer", Nodes.Browser("browser", Containers.SpaApp)) - }; + ]; - protected override IEnumerable Relationships => new[] - { + protected override IEnumerable Relationships => + [ Containers.MobileApp > Containers.BackendApi | ("Makes API calls to", "json/HTTPS"), Containers.SpaApp > Containers.BackendApi | ("Makes API calls to", "json/HTTPS"), - Containers.WebApp > Containers.SpaApp | "Delivers to the customer's web browser"| Position.Up, + Containers.WebApp > Containers.SpaApp | "Delivers to the customer's web browser" | Position.Up, Containers.BackendApi > Containers.OracleDatabase[1] | ("Writes to", "JDBC"), Containers.BackendApi < Containers.OracleDatabase["Data Reader"] | ("Reads from", "JDBC"), - Containers.OracleDatabase[1] > Containers.OracleDatabase["Data Reader"] | ("Replicates data to", "JDBC") | Position.Right, - }; + Containers.OracleDatabase[1] > Containers.OracleDatabase["Data Reader"] | ("Replicates data to", "JDBC") | Position.Right + ]; } \ No newline at end of file diff --git a/samples/ModelDiagrams/Diagrams/EnterpriseDiagramSample.cs b/samples/ModelDiagrams/Diagrams/EnterpriseDiagramSample.cs index b4be0c4..3c55745 100644 --- a/samples/ModelDiagrams/Diagrams/EnterpriseDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/EnterpriseDiagramSample.cs @@ -13,8 +13,8 @@ public class EnterpriseDiagramSample: ContextDiagram { protected override string Title => "System Enterprise diagram for Internet Banking System"; - protected override IEnumerable Structures => new Structure[] - { + protected override IEnumerable Structures => + [ Customer, Bound("enterprise.boundary", "Domain A", BankingSystem, @@ -23,15 +23,15 @@ public class EnterpriseDiagramSample: ContextDiagram ), Mainframe, MailSystem - }; + ]; - protected override IEnumerable Relationships => new[] - { + protected override IEnumerable Relationships => + [ Customer > BankingSystem, InternalCustomer > BankingSystem, Manager > BankingSystem, Customer < MailSystem | "Sends e-mails to", BankingSystem > MailSystem | ("Sends e-mails", "SMTP") | Neighbor, - BankingSystem > Mainframe, - }; + BankingSystem > Mainframe + ]; } \ No newline at end of file diff --git a/samples/ModelDiagrams/Diagrams/SequenceDiagramSample.cs b/samples/ModelDiagrams/Diagrams/SequenceDiagramSample.cs index 31c31d1..ff8e4bc 100644 --- a/samples/ModelDiagrams/Diagrams/SequenceDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/SequenceDiagramSample.cs @@ -8,26 +8,46 @@ public class SequenceDiagramSample : SequenceDiagram { protected override string Title => "Sequence diagram for Internet Banking System"; - protected override IEnumerable Structures => new Structure[] - { - new Container("cA", "Single-Page Application", ContainerType.None, "JavaScript and Angular", - "Provides all of the Internet banking functionality to customers via their web browser."), + protected override IEnumerable Structures => + [ + new Container( + alias: "cA", + label: "Single-Page Application", + type: ContainerType.None, + technology: "JavaScript and Angular", + description: "Provides all of the Internet banking functionality to customers via their web browser." + ), - Bound("b", "Api Application", - new("cB", "Sign In Controller", ComponentType.None, "Spring MVC Rest Controller", - "Allows users to sign in to the Internet Banking System."), - new("cC", "Security Component", ComponentType.None, "Spring Bean", - "Provides functionality Related to signing in, changing passwords, etc.") + Bound(alias: "b", label: "Api Application", + new Component( + alias: "cB", + label: "Sign In Controller", + type: ComponentType.None, + technology: "Spring MVC Rest Controller", + description: "Allows users to sign in to the Internet Banking System." + ), + new Component( + alias: "cC", + label: "Security Component", + type: ComponentType.None, + technology: "Spring Bean", + description: "Provides functionality Related to signing in, changing passwords, etc." + ) ), - - new Container("cD", "Database", ContainerType.Database, "Relational Database Schema", - "Stores user registration information, hashed authentication credentials, access logs, etc.") - }; - protected override IEnumerable Relationships => new[] - { + new Container( + alias: "cD", + label: "Database", + type: ContainerType.Database, + technology: "Relational Database Schema", + description: "Stores user registration information, hashed authentication credentials, access logs, etc." + ) + ]; + + protected override IEnumerable Relationships => + [ It("cA") > It("cB") | ("Submits credentials to", "JSON/HTTPS"), It("cB") > It("cC") | "Calls isAuthenticated() on", It("cC") > It("cD") | ("select * from users where username = ?o", "JDBCS") - }; + ]; } \ No newline at end of file diff --git a/samples/ModelDiagrams/Program.cs b/samples/ModelDiagrams/Program.cs index f2f7930..9333881 100644 --- a/samples/ModelDiagrams/Program.cs +++ b/samples/ModelDiagrams/Program.cs @@ -20,4 +20,4 @@ new PlantumlContext() .UseDiagramImageBuilder() .UseDiagramSvgImageBuilder() - .Export(path, diagrams, new ParadisoTheme()); \ No newline at end of file + .Export(path, diagrams, new ParadisoTheme()); diff --git a/samples/ModelDiagrams/Structures/People.cs b/samples/ModelDiagrams/Structures/People.cs index ddf68af..58f1762 100644 --- a/samples/ModelDiagrams/Structures/People.cs +++ b/samples/ModelDiagrams/Structures/People.cs @@ -5,12 +5,22 @@ namespace ModelDiagrams.Structures; public static class People { - public static Person Customer => new ("customer", "Personal Banking Customer", - "A customer of the bank, with personal bank accounts.", Boundary.External); + public static Person Customer => new( + alias: "customer", + label: "Personal Banking Customer", + description: "A customer of the bank, with personal bank accounts.", + boundary: Boundary.External + ); - public static Person InternalCustomer => new ("internalcustomer", "Personal Banking Customer", - "An customer of the bank, with personal bank accounts."); + public static Person InternalCustomer => new( + alias: "internalcustomer", + label: "Personal Banking Customer", + description: "An customer of the bank, with personal bank accounts." + ); - public static Person Manager => new ("manager", "Manager Banking Customer", - "A manager of the bank, with personal bank accounts."); -} + public static Person Manager => new( + alias: "manager", + label: "Manager Banking Customer", + description: "A manager of the bank, with personal bank accounts." + ); +} \ No newline at end of file diff --git a/samples/ModelDiagrams/Structures/Systems.cs b/samples/ModelDiagrams/Structures/Systems.cs index 11a8097..614f113 100644 --- a/samples/ModelDiagrams/Structures/Systems.cs +++ b/samples/ModelDiagrams/Structures/Systems.cs @@ -5,14 +5,23 @@ namespace ModelDiagrams.Structures; public static class Systems { - public static SoftwareSystem BankingSystem => - new("BankingSystem", "Internet Banking System", - "Allows customers to view information about their bank accounts, and make payments."); + public static SoftwareSystem BankingSystem => new( + alias: "BankingSystem", + label: "Internet Banking System", + description: "Allows customers to view information about their bank accounts, and make payments." + ); - public static SoftwareSystem Mainframe => - new("Mainframe", "Mainframe Banking System", - "Stores all of the core banking information about customers, accounts, transactions, etc.", Boundary.External); + public static SoftwareSystem Mainframe => new( + alias: "Mainframe", + label: "Mainframe Banking System", + description: "Stores all of the core banking information about customers, accounts, transactions, etc.", + boundary: Boundary.External + ); - public static SoftwareSystem MailSystem => - new ("MailSystem", "E-mail system", "The internal Microsoft Exchange e-mail system.", Boundary.External); -} + public static SoftwareSystem MailSystem => new( + alias: "MailSystem", + label: "E-mail system", + description: "The internal Microsoft Exchange e-mail system.", + boundary: Boundary.External + ); +} \ No newline at end of file diff --git a/src/C4Sharp.Tools/C4Sharp.Tools.csproj b/src/C4Sharp.Tools/C4Sharp.Tools.csproj index 25fda1f..08718e0 100644 --- a/src/C4Sharp.Tools/C4Sharp.Tools.csproj +++ b/src/C4Sharp.Tools/C4Sharp.Tools.csproj @@ -4,7 +4,7 @@ Exe enable c4scli - net6.0;net7.0;net8.0 + net8.0;net9.0 true C4SCLI - Tool for C4Sharp yanjustino, albertomonteiro @@ -14,7 +14,7 @@ https://github.com/8T4/c4sharp git c4, diagrams - 3.0.0 + 4.0.0 https://github.com/8T4/c4sharp/blob/main/LICENSE true true diff --git a/src/C4Sharp/C4Sharp.csproj b/src/C4Sharp/C4Sharp.csproj index c1da2af..14d8927 100644 --- a/src/C4Sharp/C4Sharp.csproj +++ b/src/C4Sharp/C4Sharp.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0;net8.0 + net8.0;net9.0 true C4Sharp - simple .NET superset of C4-PlantUML yanjustino, leisiamedeiros @@ -11,12 +11,13 @@ https://github.com/8T4/c4sharp git c4, diagrams - 7.0.0 + 8.0.0 https://github.com/8T4/c4sharp/blob/main/LICENSE true true snupkg enable + 13 @@ -32,7 +33,7 @@ - + diff --git a/src/C4Sharp/Commons/FileSystem/C4FileException.cs b/src/C4Sharp/Commons/FileSystem/C4FileException.cs index 42fe43a..5df21cd 100644 --- a/src/C4Sharp/Commons/FileSystem/C4FileException.cs +++ b/src/C4Sharp/Commons/FileSystem/C4FileException.cs @@ -5,7 +5,6 @@ namespace C4Sharp.Commons.FileSystem; /// /// C4File Exception /// -[Serializable] [ExcludeFromCodeCoverage] public class C4FileException : Exception { @@ -25,16 +24,4 @@ public C4FileException(string message) : base(message) public C4FileException(string message, Exception innerException) : base(message, innerException) { } - - -#if NET6 - /// - /// Constructor - /// - /// - /// - public C4FileException([NotNull] SerializationInfo info, StreamingContext context) : base(info, context) - { - } -#endif } diff --git a/src/C4Sharp/Commons/FileSystem/C4SharpDirectory.cs b/src/C4Sharp/Commons/FileSystem/C4SharpDirectory.cs index 05ef9b5..1047084 100644 --- a/src/C4Sharp/Commons/FileSystem/C4SharpDirectory.cs +++ b/src/C4Sharp/Commons/FileSystem/C4SharpDirectory.cs @@ -9,8 +9,4 @@ internal static class C4SharpDirectory /// Default Directory Name /// public static string DirectoryName => "c4"; - /// - /// Default Resource Folder Name - /// - public static string ResourcesFolderName => Path.Join("..", ".c4s"); } diff --git a/src/C4Sharp/Commons/TabIndentation.cs b/src/C4Sharp/Commons/TabIndentation.cs index 2c1c9ac..cdd3de0 100644 --- a/src/C4Sharp/Commons/TabIndentation.cs +++ b/src/C4Sharp/Commons/TabIndentation.cs @@ -6,7 +6,7 @@ namespace C4Sharp.Commons; /// Indentation methods /// [ExcludeFromCodeCoverage] -internal static class TabIndentation +internal readonly record struct TabIndentation { /// /// Default indentation. diff --git a/src/C4Sharp/Diagrams/Builders/ComponentDiagram.cs b/src/C4Sharp/Diagrams/Builders/ComponentDiagram.cs index 63496d3..a00d5d6 100644 --- a/src/C4Sharp/Diagrams/Builders/ComponentDiagram.cs +++ b/src/C4Sharp/Diagrams/Builders/ComponentDiagram.cs @@ -6,9 +6,9 @@ namespace C4Sharp.Diagrams.Builders; public abstract class ComponentDiagram: DiagramBuilder { - protected override string Title { get; } = "Component Diagram"; + protected override string Title => "Component Diagram"; protected override DiagramType DiagramType { get; } = DiagramType.Component; - protected ContainerBoundary Bound(string tag, string name, params Component[] components) + protected static ContainerBoundary Bound(string tag, string name, params Component[] components) => new(tag, name, components); } \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Builders/ContainerDiagram.cs b/src/C4Sharp/Diagrams/Builders/ContainerDiagram.cs index 51c3734..8798f19 100644 --- a/src/C4Sharp/Diagrams/Builders/ContainerDiagram.cs +++ b/src/C4Sharp/Diagrams/Builders/ContainerDiagram.cs @@ -5,9 +5,9 @@ namespace C4Sharp.Diagrams.Builders; public abstract class ContainerDiagram: DiagramBuilder { - protected override string Title { get; } = "Container Diagram"; + protected override string Title => "Container Diagram"; protected override DiagramType DiagramType { get; } = DiagramType.Container; - protected SoftwareSystemBoundary Bound(string tag, string name, params Container[] components) + protected static SoftwareSystemBoundary Bound(string tag, string name, params Container[] components) => new(tag, name, components); } \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Builders/ContextDiagram.cs b/src/C4Sharp/Diagrams/Builders/ContextDiagram.cs index aa48da8..2fbd6da 100644 --- a/src/C4Sharp/Diagrams/Builders/ContextDiagram.cs +++ b/src/C4Sharp/Diagrams/Builders/ContextDiagram.cs @@ -5,9 +5,9 @@ namespace C4Sharp.Diagrams.Builders; public abstract class ContextDiagram: DiagramBuilder { - protected override string Title { get; } = "Context Diagram"; + protected override string Title => "Context Diagram"; protected override DiagramType DiagramType { get; } = DiagramType.Context; - protected EnterpriseBoundary Bound(string alias, string label, params Structure[] structures) => + protected static EnterpriseBoundary Bound(string alias, string label, params Structure[] structures) => new(alias, label, structures); } \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Builders/DeploymentDiagram.cs b/src/C4Sharp/Diagrams/Builders/DeploymentDiagram.cs index 6a77e68..5cca105 100644 --- a/src/C4Sharp/Diagrams/Builders/DeploymentDiagram.cs +++ b/src/C4Sharp/Diagrams/Builders/DeploymentDiagram.cs @@ -2,14 +2,14 @@ namespace C4Sharp.Diagrams.Builders; -public abstract class DeploymentDiagram: DiagramBuilder +public abstract class DeploymentDiagram : DiagramBuilder { - protected override string Title { get; } = "Deployment Diagram"; + protected override string Title => "Deployment Diagram"; protected override DiagramType DiagramType { get; } = DiagramType.Deployment; - - protected DeploymentNode Node(string alias, string label, params DeploymentNode[] nodes) => + + protected static DeploymentNode Node(string alias, string label, params DeploymentNode[] nodes) => new(alias, label, nodes); - - protected DeploymentNode Node(string alias, string label, string description, params DeploymentNode[] nodes) => - new(alias, label, nodes) {Description = description}; + + protected static DeploymentNode Node(string alias, string label, string description, params DeploymentNode[] nodes) => + new(alias, label, nodes) { Description = description }; } \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Builders/SequenceDiagram.cs b/src/C4Sharp/Diagrams/Builders/SequenceDiagram.cs index 6aceb14..760911e 100644 --- a/src/C4Sharp/Diagrams/Builders/SequenceDiagram.cs +++ b/src/C4Sharp/Diagrams/Builders/SequenceDiagram.cs @@ -5,9 +5,9 @@ namespace C4Sharp.Diagrams.Builders; public abstract class SequenceDiagram: DiagramBuilder { - protected override string Title { get; } = "Sequence Diagram"; + protected override string Title => "Sequence Diagram"; protected override DiagramType DiagramType { get; } = DiagramType.Sequence; - protected SequenceContainerBoundary Bound(string alias, string label, params Component[] structures) => + protected static SequenceContainerBoundary Bound(string alias, string label, params Component[] structures) => new(alias, label, structures); } \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Diagram.cs b/src/C4Sharp/Diagrams/Diagram.cs index d96bbfb..9041737 100644 --- a/src/C4Sharp/Diagrams/Diagram.cs +++ b/src/C4Sharp/Diagrams/Diagram.cs @@ -8,38 +8,19 @@ namespace C4Sharp.Diagrams; /// Visualising this hierarchy of abstractions is then done by creating a collection of Context, Container, /// Component and (optionally) Code (e.g. UML class) diagrams. This is where the C4 model gets its name from. /// -public record Diagram +public record Diagram(DiagramType Type) { - internal string Name { get; } - public bool LayoutWithLegend { get; init; } - public bool ShowLegend { get; init; } - public bool LayoutAsSketch { get; init; } + internal string Name { get; } = Type.Value; + public bool LayoutWithLegend { get; init; } = true; + public bool ShowLegend { get; init; } = false; + public bool LayoutAsSketch { get; init; } = false; public string? Title { get; init; } - public string? Description { get; init; } - public DiagramLayout FlowVisualization { get; init; } - public DiagramType Type { get; } - public IEnumerable Structures { get; init; } - public IEnumerable Relationships { get; init; } + public string? Description { get; init; } = string.Empty; + public DiagramLayout FlowVisualization { get; init; } = DiagramLayout.TopDown; + public IEnumerable Structures { get; init; } = []; + public IEnumerable Relationships { get; init; } = []; public IElementStyle? Style { get; init; } public IBoundaryStyle? BoundaryStyle { get; init; } public IElementTag? Tags { get; init; } public IRelationshipTag? RelTags { get; init; } - - /// - /// Constructor - /// - /// - public Diagram(DiagramType type) - { - Type = type; - LayoutWithLegend = true; - Description = string.Empty; - Title = string.Empty; - LayoutAsSketch = false; - ShowLegend = false; - FlowVisualization = DiagramLayout.TopDown; - Name = type.Value; - Structures = Array.Empty(); - Relationships = Array.Empty(); - } } diff --git a/src/C4Sharp/Diagrams/DiagramBuilder.cs b/src/C4Sharp/Diagrams/DiagramBuilder.cs index ea4cf3f..aaabace 100644 --- a/src/C4Sharp/Diagrams/DiagramBuilder.cs +++ b/src/C4Sharp/Diagrams/DiagramBuilder.cs @@ -4,9 +4,6 @@ namespace C4Sharp.Diagrams; -[Obsolete("This class is obsolete, use DiagramBuilder instead.")] -public abstract class DiagramBuildRunner : DiagramBuilder { } - /// /// Base class to build diagrams /// diff --git a/src/C4Sharp/Diagrams/DiagramConstants.cs b/src/C4Sharp/Diagrams/DiagramConstants.cs index 087ef32..389e881 100644 --- a/src/C4Sharp/Diagrams/DiagramConstants.cs +++ b/src/C4Sharp/Diagrams/DiagramConstants.cs @@ -1,6 +1,6 @@ namespace C4Sharp.Diagrams; -public static class DiagramConstants +public readonly struct DiagramConstants { public const string Component = "C4_Component"; public const string Container = "C4_Container"; diff --git a/src/C4Sharp/Diagrams/Interfaces/IDiagramBuilder.cs b/src/C4Sharp/Diagrams/Interfaces/IDiagramBuilder.cs index 01098c6..ffe3906 100644 --- a/src/C4Sharp/Diagrams/Interfaces/IDiagramBuilder.cs +++ b/src/C4Sharp/Diagrams/Interfaces/IDiagramBuilder.cs @@ -1,11 +1,5 @@ namespace C4Sharp.Diagrams.Interfaces; -[Obsolete("This interface is obsolete, use IDiagramBuilder instead")] -public interface IDiagramBuildRunner -{ - Diagram Build(); -} - public interface IDiagramBuilder { Diagram Build(IDiagramTheme? theme); diff --git a/src/C4Sharp/Diagrams/Plantuml/Constants/BorderStyle.cs b/src/C4Sharp/Diagrams/Plantuml/Constants/BorderStyle.cs index e90448d..79180dc 100644 --- a/src/C4Sharp/Diagrams/Plantuml/Constants/BorderStyle.cs +++ b/src/C4Sharp/Diagrams/Plantuml/Constants/BorderStyle.cs @@ -1,20 +1,24 @@ namespace C4Sharp.Diagrams.Plantuml.Constants; -public class BorderStyle +public readonly record struct BorderStyle(string Value) { /// /// This call returns the name of the dashed line and can be used as ?lineStyle argument. /// - public static BorderStyle SolidLine => new() { Value = "SolidLine()" }; + public static BorderStyle SolidLine => new("SolidLine()"); + /// /// This call returns the name of the dotted line and can be used as ?lineStyle argument. /// - public static BorderStyle DashedLine => new() { Value = "DashedLine()" }; + public static BorderStyle DashedLine => new("DashedLine()"); + /// /// This call returns the name of the bold line and can be used as ?lineStyle argument. /// - public static BorderStyle DottedLine => new() { Value = "DottedLine()" }; - public static BorderStyle BoldLine => new() { Value = "BoldLine()" }; + public static BorderStyle DottedLine => new("DottedLine()"); - public string Value { get; private init; } = string.Empty; + /// + /// This call returns the name of the bold line and can be used as ?lineStyle argument. + /// + public static BorderStyle BoldLine => new("BoldLine()"); } \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs b/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs index a81803d..722a69e 100644 --- a/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs +++ b/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs @@ -1,16 +1,14 @@ namespace C4Sharp.Diagrams.Plantuml.Constants; -public record ElementName +public readonly record struct ElementName(string Name) { - public static ElementName Person => new() { Name = "person" }; - public static ElementName ExternalPerson => new() { Name = "external_person" }; - public static ElementName System => new() { Name = "system" }; - public static ElementName ExternalSystem => new() { Name = "external_system" }; - public static ElementName Component => new() { Name = "component" }; - public static ElementName ExternalComponent => new() { Name = "external_component" }; - public static ElementName Container => new() { Name = "container" }; - public static ElementName ExternalContainer => new() { Name = "external_container" }; - public static ElementName Enterprise => new() { Name = "enterprise" }; - - public string Name { get; private init; } = string.Empty; -} + public static ElementName Person => new("person"); + public static ElementName ExternalPerson => new("external_person"); + public static ElementName System => new("system"); + public static ElementName ExternalSystem => new("external_system"); + public static ElementName Component => new("component"); + public static ElementName ExternalComponent => new("external_component"); + public static ElementName Container => new("container"); + public static ElementName ExternalContainer => new("external_container"); + public static ElementName Enterprise => new("enterprise"); +} \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs b/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs index 602460d..d487112 100644 --- a/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs +++ b/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs @@ -8,7 +8,6 @@ namespace C4Sharp.Diagrams.Plantuml; public partial class PlantumlContext : IDisposable { - private bool StandardLibraryBaseUrl { get; set; } private bool GenerateDiagramImages { get; set; } private bool GenerateDiagramSvgImages { get; set; } private bool GenerateMermaidFiles { get; set; } @@ -21,7 +20,6 @@ public partial class PlantumlContext : IDisposable public PlantumlContext() { PlantumlJarPath = null; - StandardLibraryBaseUrl = false; GenerateDiagramImages = false; GenerateDiagramSvgImages = false; GenerateMermaidFiles = false; @@ -35,19 +33,6 @@ public PlantumlContext() }; } - /// - /// The C4Sharp has embedded the current version of C4-PluntUML. - /// But, if you want to use the C4-PlantUML up-to-date version from their repo, - /// use this method - /// - /// PlantumlSession instance - [Obsolete("Now, we are suporting just embended version")] - public PlantumlContext UseStandardLibraryBaseUrl() - { - StandardLibraryBaseUrl = false; - return this; - } - /// /// The C4Sharp will generate *.puml files of your diagram. /// Also, you could save the *.png files using this method @@ -169,37 +154,34 @@ public partial class PlantumlContext /// /// C4 Diagram /// Output path - private string SavePumlFiles(Diagram diagram, string path) + private void SavePumlFiles(Diagram diagram, string path) { try { var filePath = Path.Combine(path, diagram.PumlFileName()); Directory.CreateDirectory(path); - File.WriteAllText(filePath, diagram.ToPumlString(StandardLibraryBaseUrl)); - return filePath; + File.WriteAllText(filePath, diagram.ToPumlString()); } catch (Exception e) { throw new PlantumlException($"{nameof(PlantumlException)}: Could not save puml file.", e); } } - + /// /// Save puml file. It's creates path if non exists. /// /// C4 Diagram /// Output path - private string SaveMermaidFiles(Diagram diagram, string path) + private void SaveMermaidFiles(Diagram diagram, string path) { - if (!GenerateMermaidFiles || diagram.Type.Value == DiagramConstants.Deployment) - return string.Empty; - + if (!GenerateMermaidFiles || diagram.Type.Value == DiagramConstants.Deployment) return; + try { var filePath = Path.Combine(path, diagram.MermaidFileName()); Directory.CreateDirectory(path); File.WriteAllText(filePath, diagram.ToMermaidString()); - return filePath; } catch (Exception e) { @@ -217,7 +199,7 @@ private void SaveDiagramFiles(string path, string generatedImageFormat) { try { - PlantumlResources.LoadResources(path); + //PlantumlResources.LoadResources(path); PlantumlJarPath ??= PlantumlResources.LoadPlantumlJar(); var directory = new DirectoryInfo(path).FullName; @@ -229,7 +211,7 @@ private void SaveDiagramFiles(string path, string generatedImageFormat) var results = new StringBuilder(); - var jar = CalculateJarCommand(StandardLibraryBaseUrl, generatedImageFormat, directory); + var jar = CalculateJarCommand(generatedImageFormat, directory); ProcessInfo.Arguments = $"{jar} \"{path}\""; ProcessInfo.RedirectStandardOutput = true; @@ -248,17 +230,14 @@ private void SaveDiagramFiles(string path, string generatedImageFormat) } } - private string CalculateJarCommand(bool useStandardLibrary, string generatedImageFormat, string directory) + private string CalculateJarCommand(string generatedImageFormat, string directory) { - const string includeLocalFilesArg = "-DRELATIVE_INCLUDE=\".\""; - - var resourcesOriginArg = useStandardLibrary ? string.Empty : includeLocalFilesArg; var imageFormatOutputArg = string.IsNullOrWhiteSpace(generatedImageFormat) ? string.Empty : $"-t{generatedImageFormat}"; return - $"-jar \"{PlantumlJarPath}\" {resourcesOriginArg} {imageFormatOutputArg} -Playout=smetana -verbose -o \"{directory}\" -charset UTF-8"; + $"-jar \"{PlantumlJarPath}\" {imageFormatOutputArg} -Playout=smetana -verbose -o \"{directory}\" -charset UTF-8"; } /// diff --git a/src/C4Sharp/Diagrams/Plantuml/PlantumlDiagram.cs b/src/C4Sharp/Diagrams/Plantuml/PlantumlDiagram.cs index 0709658..33977f7 100644 --- a/src/C4Sharp/Diagrams/Plantuml/PlantumlDiagram.cs +++ b/src/C4Sharp/Diagrams/Plantuml/PlantumlDiagram.cs @@ -1,8 +1,5 @@ using System.Text; -using C4Sharp.Commons.FileSystem; using C4Sharp.Elements.Relationships; -using System.Collections.Generic; -using System.Linq; namespace C4Sharp.Diagrams.Plantuml; @@ -16,29 +13,19 @@ public static partial class PlantumlDiagram /// /// /// - public static string ToPumlString(this Diagram diagram) => ToPumlString(diagram, false); - - - /// - /// Create PUML content from Diagram - /// - /// - /// - /// - public static string ToPumlString(this Diagram diagram, bool useStandardLibrary) => new StringBuilder() - .BuildHeader(diagram, useStandardLibrary) + public static string ToPumlString(this Diagram diagram) => new StringBuilder() + .BuildHeader(diagram) .BuildBody(diagram) .BuildFooter(diagram) .ToString(); - private static StringBuilder BuildHeader(this StringBuilder stream, Diagram diagram, bool useStandardLibrary) + private static StringBuilder BuildHeader(this StringBuilder stream, Diagram diagram) { - var path = GetPumlFilePath(diagram, useStandardLibrary); stream.AppendLine($"@startuml {diagram.Slug()}"); - stream.AppendLine($"!include {path}"); + stream.AppendLine($"!include "); stream.AppendLine(); - BuildStyleSession(stream, diagram); + stream.BuildStyleSession(diagram); if (diagram.LayoutWithLegend && !diagram.ShowLegend) { @@ -68,14 +55,12 @@ private static StringBuilder BuildHeader(this StringBuilder stream, Diagram diag return stream; } - private static StringBuilder BuildStyleSession(this StringBuilder stream, Diagram diagram) + private static void BuildStyleSession(this StringBuilder stream, Diagram diagram) { diagram.Tags?.Items.ToList().ForEach(x => stream.AppendLine(x.Value)); diagram.Style?.Items.ToList().ForEach(x => stream.AppendLine(x.Value)); diagram.BoundaryStyle?.Items.ToList().ForEach(x => stream.AppendLine(x.Value)); diagram.RelTags?.Items.ToList().ForEach(x => stream.AppendLine(x.Value)); - - return stream; } private static StringBuilder BuildBody(this StringBuilder stream, Diagram diagram) @@ -107,16 +92,6 @@ private static StringBuilder BuildFooter(this StringBuilder stream, Diagram diag return stream; } - - private static string GetPumlFilePath(this Diagram diagram, bool useUrlInclude) - { - const string standardLibraryBaseUrl = "https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master"; - var pumlFileName = $"{diagram.Name}.puml"; - - return useUrlInclude - ? $"{standardLibraryBaseUrl}/{pumlFileName}" - : Path.Join(C4SharpDirectory.ResourcesFolderName, pumlFileName); - } } /// @@ -128,7 +103,6 @@ public static partial class PlantumlDiagram /// Create mermaid based on puml content from Diagram /// /// - /// /// public static string ToMermaidString(this Diagram diagram) => new StringBuilder() .AppendLine("```mermaid") diff --git a/src/C4Sharp/Diagrams/Plantuml/PlantumlResources.cs b/src/C4Sharp/Diagrams/Plantuml/PlantumlResources.cs index 1f7a2d9..33fecaa 100644 --- a/src/C4Sharp/Diagrams/Plantuml/PlantumlResources.cs +++ b/src/C4Sharp/Diagrams/Plantuml/PlantumlResources.cs @@ -5,23 +5,6 @@ namespace C4Sharp.Diagrams.Plantuml; internal static class PlantumlResources { - /// - /// Load all C4_Plantuml files - /// - public static void LoadResources(string path) - { - var local = string.IsNullOrEmpty(path) - ? Path.Join(C4SharpDirectory.DirectoryName, C4SharpDirectory.ResourcesFolderName) - : Path.Join(path, C4SharpDirectory.ResourcesFolderName); - - LoadResource(local, "C4.puml"); - LoadResource(local, "C4_Component.puml"); - LoadResource(local, "C4_Container.puml"); - LoadResource(local, "C4_Context.puml"); - LoadResource(local, "C4_Deployment.puml"); - LoadResource(local, "C4_Sequence.puml"); - } - /// /// Load all C4_Plantuml files /// diff --git a/src/C4Sharp/Diagrams/Plantuml/PlantumlStructure.cs b/src/C4Sharp/Diagrams/Plantuml/PlantumlStructure.cs index ada343d..6a46623 100644 --- a/src/C4Sharp/Diagrams/Plantuml/PlantumlStructure.cs +++ b/src/C4Sharp/Diagrams/Plantuml/PlantumlStructure.cs @@ -85,7 +85,7 @@ private static string ToPumlString(this EnterpriseBoundary boundary) private static string ToPumlString(this Component component) { var externalSuffix = GetExternalSuffix(component); - var procedureName = component.ComponentType switch + var procedureName = component.Type switch { ComponentType.Database => $"ComponentDb{externalSuffix}", ComponentType.Queue => $"ComponentQueue{externalSuffix}", diff --git a/src/C4Sharp/Diagrams/Plantuml/Style/BoundaryStyle.cs b/src/C4Sharp/Diagrams/Plantuml/Style/BoundaryStyle.cs index cca9dbf..992d1ef 100644 --- a/src/C4Sharp/Diagrams/Plantuml/Style/BoundaryStyle.cs +++ b/src/C4Sharp/Diagrams/Plantuml/Style/BoundaryStyle.cs @@ -24,33 +24,21 @@ public BoundaryStyle UpdateBoundaryStyle(ElementName elementName, string? bgColo string? borderColor = null, bool shadowing = false, Shape? shape = null, BorderStyle? borderStyle = null, int? borderThickness = null) { - if (elementName is null) - throw new ArgumentNullException(nameof(elementName), $"{nameof(elementName)} is required"); - - var styles = new List(); - styles.Add($"$elementName={elementName.Name}"); - - if (fontColor is not null) - styles.Add($"$bgColor={bgColor}"); - - if (bgColor is not null) - styles.Add($"$fontColor={fontColor}"); - - if (borderColor is not null) - styles.Add($"$borderColor={borderColor}"); - - styles.Add($"$shadowing=\"{shadowing.ToString().ToLower()}\""); - - if (shape is not null) - styles.Add($"$shape={shape.Value}"); - - if (borderStyle is not null) - styles.Add($"$borderStyle={borderStyle.Value}"); - - if (borderThickness is not null) - styles.Add($"$borderThickness={borderThickness}"); - - Items[elementName.Name] = $"UpdateBoundaryStyle({string.Join(",", styles)})"; + string?[] styles = + [ + $"$elementName={elementName.Name}", + fontColor is not null ? $"$fontColor={fontColor}" : null, + bgColor is not null ? $"$bgColor={bgColor}" : null, + borderColor is not null ? $"$borderColor={borderColor}" : null, + $"$shadowing=\"{shadowing.ToString().ToLower()}\"", + shape is not null ? $"$shape={shape.Value}" : null, + borderStyle is not null ? $"$borderStyle={borderStyle.Value}" : null, + borderThickness is not null ? $"$borderThickness={borderThickness}" : null + ]; + + var styleString = string.Join(",", styles.Where(x => x is not null)); + + Items[elementName.Name] = $"UpdateBoundaryStyle({styleString})"; return this; } } \ No newline at end of file diff --git a/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs b/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs index f2d8303..5a6350e 100644 --- a/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs +++ b/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs @@ -24,31 +24,21 @@ public ElementStyle UpdateElementStyle(ElementName elementName, string? bgColor string? borderColor = null, bool shadowing = false, Shape? shape = null, BorderStyle? borderStyle = null, int? borderThickness = null) { - if (elementName is null) - throw new ArgumentNullException(nameof(elementName), $"{nameof(elementName)} is required"); - - var styles = new List(); - if (fontColor is not null) - styles.Add($"$bgColor={bgColor}"); - - if (bgColor is not null) - styles.Add($"$fontColor={fontColor}"); - - if (borderColor is not null) - styles.Add($"$borderColor={borderColor}"); - - styles.Add($"$shadowing=\"{shadowing.ToString().ToLower()}\""); - - if (shape is not null) - styles.Add($"$shape={shape.Value}"); - - if (borderStyle is not null) - styles.Add($"$borderStyle={borderStyle.Value}"); - - if (borderThickness is not null) - styles.Add($"$borderThickness={borderThickness}"); - - Items[elementName.Name] = $"UpdateElementStyle(\"{elementName.Name}\", {string.Join(",", styles)})"; + string?[] styles = + [ + $"$elementName={elementName.Name}", + bgColor is not null ? $"$bgColor={bgColor}" : null, + fontColor is not null ? $"$fontColor={fontColor}" : null, + borderColor is not null ? $"$borderColor={borderColor}" : null, + $"$shadowing=\"{shadowing.ToString().ToLower()}\"", + shape is not null ? $"$shape={shape.Value}" : null, + borderStyle is not null ? $"$borderStyle={borderStyle.Value}" : null, + borderThickness is not null ? $"$borderThickness={borderThickness}" : null + ]; + + var styleString = string.Join(",", styles.Where(x => x is not null)); + + Items[elementName.Name] = $"UpdateElementStyle(\"{elementName.Name}\", {styleString})"; return this; } } \ No newline at end of file diff --git a/src/C4Sharp/Elements/Component.cs b/src/C4Sharp/Elements/Component.cs index 60e4095..6bb80fd 100644 --- a/src/C4Sharp/Elements/Component.cs +++ b/src/C4Sharp/Elements/Component.cs @@ -16,66 +16,68 @@ namespace C4Sharp.Elements; public record Component(string Alias, string Label) : Structure(Alias, Label) { public string? Technology { get; init; } - public ComponentType ComponentType { get; init; } = ComponentType.None; + public ComponentType Type { get; init; } = ComponentType.None; public static Component None => new("none", "None"); - - public Component(StructureIdentity alias, string label): this(alias.Value, label) + + public Component(StructureIdentity alias, string label) : this(alias.Value, label) { - ComponentType = ComponentType.None; - } + Type = ComponentType.None; + } - public Component(string alias, string label, string technology): this(alias, label) + public Component(string alias, string label, string technology) : this(alias, label) { Technology = technology; - } + } - public Component(string alias, string label, ComponentType componentType, string technology): this(alias, label, technology) + public Component(string alias, string label, ComponentType type, string technology) : this(alias, label, technology) { - ComponentType = componentType; + Type = type; } - - public Component(string alias, string label, string technology, string description): this(alias, label) + + public Component(string alias, string label, string technology, string description) : this(alias, label) { Technology = technology; Description = description; } - - public Component(string alias, string label, ComponentType componentType, string technology, string description): this(alias, label, technology, description) + + public Component(string alias, string label, ComponentType type, string technology, string description) : this(alias, label, technology, description) { - ComponentType = componentType; - } - - public static Component operator |(Component a, Boundary boundary) => a with{ Boundary = boundary}; - public static Component operator |(Component a, ComponentType b) => a with{ ComponentType = b }; - public static Component operator |(Component a, (string alias, string label) b) => new (b.alias, b.label) + Type = type; + } + + public static Component operator |(Component a, Boundary boundary) => a with { Boundary = boundary }; + public static Component operator |(Component a, ComponentType b) => a with { Type = b }; + + public static Component operator |(Component a, (string alias, string label) b) => new(b.alias, b.label) { Boundary = a.Boundary, - ComponentType = a.ComponentType + Type = a.Type }; - public static Component operator |(Component a, (string alias, string label, string technology) b) => new Component(b.alias, b.label, b.technology) + + public static Component operator |(Component a, (string alias, string label, string technology) b) => new (b.alias, b.label, b.technology) { Boundary = a.Boundary, - ComponentType = a.ComponentType + Type = a.Type }; - public static Component operator |(Component a, (string alias, string label, string technology , string description) b) => new (b.alias, b.label, b.technology, b.description) + + public static Component operator |(Component a, (string alias, string label, string technology, string description) b) => new(b.alias, b.label, b.technology, b.description) { Boundary = a.Boundary, - ComponentType = a.ComponentType - }; - + Type = a.Type + }; } public record Component : Component { - public Component():base(StructureIdentity.New(), typeof(T).ToNamingConvention()) + public Component() : base(StructureIdentity.New(), typeof(T).ToNamingConvention()) { } - public Component(string technology): base(StructureIdentity.New().Value, typeof(T).ToNamingConvention(), technology) + public Component(string technology) : base(StructureIdentity.New().Value, typeof(T).ToNamingConvention(), technology) { } - - public Component(string technology, string description): base(StructureIdentity.New().Value, typeof(T).ToNamingConvention(), technology, description) + + public Component(string technology, string description) : base(StructureIdentity.New().Value, typeof(T).ToNamingConvention(), technology, description) { - } -} + } +} \ No newline at end of file diff --git a/src/C4Sharp/Elements/Container.cs b/src/C4Sharp/Elements/Container.cs index c6b6ae6..6ae925d 100644 --- a/src/C4Sharp/Elements/Container.cs +++ b/src/C4Sharp/Elements/Container.cs @@ -24,6 +24,7 @@ public record Container : Structure public Container this[string instanceName] => GetInstance(instanceName); public static Container None => new("None", "None", ContainerType.None, "None"); + public static Container Undefined => new("None", "None", ContainerType.None, "None"); public Container(string alias, string label) : base(alias, label) diff --git a/src/C4Sharp/Elements/Relationships/Relationship.cs b/src/C4Sharp/Elements/Relationships/Relationship.cs index e5917cc..037e823 100644 --- a/src/C4Sharp/Elements/Relationships/Relationship.cs +++ b/src/C4Sharp/Elements/Relationships/Relationship.cs @@ -59,7 +59,7 @@ private Relationship(Structure @from, Direction direction, Structure to, string Direction = direction; Protocol = protocol; Position = position; - Tags = Array.Empty(); + Tags = []; } /// @@ -80,7 +80,7 @@ protected Relationship(string @from, Direction direction, string to, string labe Direction = direction; Protocol = protocol; Position = position; - Tags = Array.Empty(); + Tags = []; } /// @@ -107,7 +107,7 @@ public Relationship(Structure @from, Direction direction, Structure to, string l } public Relationship AddTags(params string[] values) => this with { Tags = values }; - public Relationship ClearTags() => this with { Tags = Array.Empty() }; + public Relationship ClearTags() => this with { Tags = [] }; public static Relationship operator |(Relationship a, string value) { diff --git a/src/C4Sharp/Elements/Structure.cs b/src/C4Sharp/Elements/Structure.cs index dddd31d..5cd05a4 100644 --- a/src/C4Sharp/Elements/Structure.cs +++ b/src/C4Sharp/Elements/Structure.cs @@ -23,7 +23,7 @@ public abstract record Structure /// Should be unique /// protected Structure(string alias, string label, string[]? tags = null) => - (Alias, Label, Tags) = (alias, label, tags ?? Array.Empty()); + (Alias, Label, Tags) = (alias, label, tags ?? []); protected Structure(StructureIdentity identity, string label, string[]? tags = null) : this(identity.Value, label, tags) diff --git a/src/C4Sharp/Elements/StructureCollection.cs b/src/C4Sharp/Elements/StructureCollection.cs index 282d213..e1e6397 100644 --- a/src/C4Sharp/Elements/StructureCollection.cs +++ b/src/C4Sharp/Elements/StructureCollection.cs @@ -9,7 +9,7 @@ internal class StructureCollection public void AddRange(IEnumerable structures) { var enumerable = structures as Structure[] ?? structures.ToArray(); - if (!enumerable.Any()) + if (enumerable.Length == 0) { return; } diff --git a/src/C4Sharp/Resources/C4.puml b/src/C4Sharp/Resources/C4.puml deleted file mode 100644 index 3d7e330..0000000 --- a/src/C4Sharp/Resources/C4.puml +++ /dev/null @@ -1,1658 +0,0 @@ -' C4-PlantUML - -' Global pre-settings -' ################################## -' ENABLE_ALL_PLANT_ELEMENTS -' If ENABLE_ALL_PLANT_ELEMENTS is set BEFORE the first C4_* file is loaded, nearly "all" PlantUML elements can be used like -' Component(StorageA, "Storage A ", $baseShape="storage") -' ENABLE_ALL_PLANT_ELEMENTS can be set via -' !ENABLE_ALL_PLANT_ELEMENTS = 1 -' or with additional command line argument -DENABLE_ALL_PLANT_ELEMENTS=1 - -'Version -' ################################## -!function C4Version() - ' 2 spaces and ' are used as unique marker, that the release scripts makes the correct version update - !$c4Version = "2.10.0beta1" - !return $c4Version -!end function - -!procedure C4VersionDetails() -rectangle C4VersionDetailsArea <> [ -| PlantUML | **%version()** | -| C4-PlantUML | **C4Version()** | -] -!end procedure - -' Colors -' ################################## -!$ELEMENT_FONT_COLOR ?= "#FFFFFF" - -!$ARROW_COLOR ?= "#666666" -!$ARROW_FONT_COLOR ?= $ARROW_COLOR - -!$BOUNDARY_COLOR ?= "#444444" -!$BOUNDARY_BG_COLOR ?= "transparent" -!$BOUNDARY_BORDER_STYLE ?= "dashed" - -!$LEGEND_TITLE_COLOR ?= "#000000" -!$LEGEND_FONT_COLOR ?= "#FFFFFF" -!$LEGEND_BG_COLOR ?= "transparent" -!$LEGEND_BORDER_COLOR ?= "transparent" -' %darken(darkkhaki,50), #khaki -!$LEGEND_DARK_COLOR ?= "#66622E" -!$LEGEND_LIGHT_COLOR ?= "#khaki" - -!$SKETCH_BG_COLOR ?= "#EEEBDC" -!$SKETCH_FONT_COLOR ?= "" -!$SKETCH_WARNING_COLOR ?= "red" -!$SKETCH_FONT_NAME ?= "Comic Sans MS" - -' Labels -' ################################## - -!$LEGEND_SHADOW_TEXT ?= "shadow" -!$LEGEND_NO_SHADOW_TEXT ?= "no shadow" -!$LEGEND_NO_FONT_BG_TEXT ?= "last text and back color" -!$LEGEND_NO_FONT_TEXT ?= "last text color" -!$LEGEND_NO_BG_TEXT ?= "last back color" -!$LEGEND_NO_LINE_TEXT ?= "last line color" -!$LEGEND_ROUNDED_BOX ?= "rounded box" -!$LEGEND_EIGHT_SIDED ?= "eight sided" -!$LEGEND_DOTTED_LINE ?= "dotted" -!$LEGEND_DASHED_LINE ?= "dashed" -!$LEGEND_BOLD_LINE ?= "bold" -!$LEGEND_SOLID_LINE ?= "solid" - -!$LEGEND_BOUNDARY ?= "boundary" -' ignore (boundary) transparent atm, that the legend is smaller -' !$LEGEND_BOUNDARY_TRANSPARENT_INCL_COMA ?= "transparent, " -!$LEGEND_BOUNDARY_TRANSPARENT_INCL_COMA ?= "" -' (boundary) dashed should not be ignored atm -!$LEGEND_BOUNDARY_DASHED_INCL_COMA ?= "dashed, " -' !$LEGEND_BOUNDARY_DASHED_INCL_COMA ?= "" - -!$LEGEND_THICKNESS ?= "thickness" - -!$SKETCH_FOOTER_WARNING ?= "Warning:" -!$SKETCH_FOOTER_TEXT ?= "Created for discussion, needs to be validated" - -' Styling -' ################################## - -!$STEREOTYPE_FONT_SIZE ?= 12 -!global $TRANSPARENT_STEREOTYPE_FONT_SIZE = $STEREOTYPE_FONT_SIZE/2 -!$TECHN_FONT_SIZE ?= 12 - -!$ARROW_FONT_SIZE ?= 12 - -!$LEGEND_DETAILS_SMALL_SIZE ?= 10 -!$LEGEND_DETAILS_NORMAL_SIZE ?= 14 -!global $LEGEND_DETAILS_SIZE = $LEGEND_DETAILS_SMALL_SIZE - -' element symbols typically 4 times too big in legend -!$LEGEND_IMAGE_SIZE_FACTOR ?= 0.25 - -!$ROUNDED_BOX_SIZE ?= 25 -!$EIGHT_SIDED_SIZE ?= 18 - -' Default element wrap width (of an element) -!$DEFAULT_WRAP_WIDTH ?= 200 -' Maximum size in pixels, of a message (in a sequence diagram?) -!$MAX_MESSAGE_SIZE ?= 150 -' PlantUML supports no DETERMINISTIC/automatic line breaks of "PlantUML line" (C4 Relationships) -' therefore Rel...() implements an automatic line break based on spaces (like in all other objects). -' If a $type contains \n then these are used (and no automatic space based line breaks are done) -' $REL_TECHN_MAX_CHAR_WIDTH defines the automatic line break position -!$REL_TECHN_MAX_CHAR_WIDTH ?= 35 -!$REL_DESCR_MAX_CHAR_WIDTH ?= 32 - -' internal -' ################################## - -!global $ROUNDED_BOX = "roundedBox" -!global $EIGHT_SIDED = "eightSided" - -!global $DOTTED_LINE = "dotted" -!global $DASHED_LINE = "dashed" -!global $BOLD_LINE = "bold" -' solid is not defined in plantUML, but works as reset of all other styles too -!global $SOLID_LINE = "solid" - -!global $LEGEND_DETAILS_NONE = "none" -!global $LEGEND_DETAILS_NORMAL = "normal" -!global $LEGEND_DETAILS_SMALL = "small" - -skinparam defaultTextAlignment center - -skinparam wrapWidth $DEFAULT_WRAP_WIDTH -skinparam maxMessageSize $MAX_MESSAGE_SIZE - -skinparam LegendFontColor $LEGEND_FONT_COLOR -skinparam LegendBackgroundColor $LEGEND_BG_COLOR -skinparam LegendBorderColor $LEGEND_BORDER_COLOR - -skinparam rectangle<> { - backgroundcolor $LEGEND_BG_COLOR - bordercolor $LEGEND_BORDER_COLOR -} - -skinparam rectangle { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam database { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam queue { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam participant { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam arrow { - Color $ARROW_COLOR - FontColor $ARROW_FONT_COLOR - FontSize $ARROW_FONT_SIZE -} - -skinparam person { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam actor { - StereotypeFontSize $STEREOTYPE_FONT_SIZE - style awesome -} - -!if %variable_exists("ENABLE_ALL_PLANT_ELEMENTS") -skinparam agent { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam artifact { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam boundary { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam card { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam circle { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam cloud { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam collections { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam control { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam entity { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam file { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam folder { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam frame { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam hexagon { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam interface { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam label { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam stack { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam storage { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam usecase { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam person { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -!endif - -' Some boundary skinparams have to be set as package skinparams too (PlantUML uses internal packages) -' UpdateBoundaryStyle() called in boundary section below -skinparam rectangle<> { - StereotypeFontSize $TRANSPARENT_STEREOTYPE_FONT_SIZE - StereotypeFontColor $BOUNDARY_BG_COLOR - BorderStyle $BOUNDARY_BORDER_STYLE -} - -skinparam package { - StereotypeFontSize $TRANSPARENT_STEREOTYPE_FONT_SIZE - StereotypeFontColor $BOUNDARY_BG_COLOR - FontStyle plain - BackgroundColor $BOUNDARY_BG_COLOR -} - -' Legend and Tags -' ################################## -!global $tagDefaultLegend = "" -!global $tagCustomLegend = "" - -' rel specific -!unquoted function $toStereos($tags) - !if (%strlen($tags) == 0) - !return '' - !endif - !$stereos = '' - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$stereos = $stereos + '<<' + $tag + '>>' -%set_variable_value("$" + $tag + "_LineLegend", %true()) - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$stereos = $stereos + '<<' + $tags + '>>' -%set_variable_value("$" + $tags + "_LineLegend", %true()) - !endif - !return $stereos -!endfunction - -' if $sprite/$techn is an empty argument, try to calculate it via the defined $tag -!unquoted function $toRelArg($arg, $tags, $varPostfix) - !if ($arg > "") - !return $arg - !endif - - !if (%strlen($tags) == 0) - !return $arg - !endif - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$newArg = %get_variable_value("$" + $tag + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$newArg = %get_variable_value("$" + $tags + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !endif - !return $arg -!endfunction - -' element specific (unused are hidden based on mask) -!unquoted function $toStereos($elementType, $tags) - !if (%strlen($tags) == 0) - !$stereos = '<<' + $elementType + '>>' -%set_variable_value("$" + $elementType + "Legend", %true()) - !return $stereos - !endif - !$stereos = '' - !$mask = $resetMask() - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$stereos = $stereos + '<<' + $tag + '>>' - !$mergedMask = $combineMaskWithTag($mask, $tag) - !if ($mergedMask != $mask) -%set_variable_value("$" + $tag + "Legend", %true()) - !$mask = $mergedMask - !endif - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$stereos = $stereos + '<<' + $tags + '>>' - !$mergedMask = $combineMaskWithTag($mask, $tags) - !if ($mergedMask != $mask) -%set_variable_value("$" + $tags + "Legend", %true()) - !$mask = $mergedMask - !endif - !endif - ' has to be last, otherwise PlantUML overwrites all tag specific skinparams - !$stereos = $stereos + '<<' + $elementType + '>>' - !$mergedMask = $combineMaskWithTag($mask, $elementType) - !if ($mergedMask != $mask) -%set_variable_value("$" + $elementType + "Legend", %true()) - !$mask = $mergedMask - !endif - !return $stereos -!endfunction - -' if $sprite/$techn is an empty argument, try to calculate it via the defined $tag -!unquoted function $toElementArg($arg, $tags, $varPostfix, $elementType) - !if ($arg > "") - !return $arg - !endif - - !if (%strlen($tags) == 0) - !$newArg = %get_variable_value("$" + $elementType + $varPostfix) - !if ($newArg > "") - !return $newArg - !else - !return $arg - !endif - !endif - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$newArg = %get_variable_value("$" + $tag + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$newArg = %get_variable_value("$" + $tags + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !$newArg = %get_variable_value("$" + $elementType + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !endif - !return $arg -!endfunction - -' if $value is empty try to load it via variable, optional can it store the calculated value -!function $restoreEmpty($elementType, $property, $value, $store) - !$var = "$" + $elementType + "Restore" + $property - !if ($value == "") - !$value = %get_variable_value($var) - !elseif ($store) - %set_variable_value($var, $value) - !endif - !return $value -!endfunction - -' clear the restore property -!function $clearRestore($elementType, $property) - !$var = "$" + $elementType + "Restore" + $property - %set_variable_value($var, "") - !return "" -!endfunction - -!function $elementTagSkinparams($element, $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !$elementSkin = "skinparam " + $element + "<<" + $tagStereo + ">> {" + %newline() - !if ($fontColor != "") - !if (%strpos($tagStereo, "boundary") < 0) - !$elementSkin = $elementSkin + " StereotypeFontColor " + $fontColor + %newline() - !endif - !$elementSkin = $elementSkin + " FontColor " + $fontColor + %newline() - !endif - !if ($bgColor != "") - !$elementSkin = $elementSkin + " BackgroundColor " + $bgColor + %newline() - !endif - !if ($borderColor != "") - !$elementSkin = $elementSkin + " BorderColor " + $borderColor+ %newline() - !endif - !if ($shadowing == "true") - !$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "true" + %newline() - !endif - !if ($shadowing == "false") - !$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "false" + %newline() - !endif - ' only rectangle supports shape(d corners), define both skinparam that overlays are working - !if ($shape != "" && $element == "rectangle") - !if ($shape == $ROUNDED_BOX) - !$elementSkin = $elementSkin + " RoundCorner " + $ROUNDED_BOX_SIZE+ %newline() - !$elementSkin = $elementSkin + " DiagonalCorner " + "0" + %newline() - !elseif ($shape == $EIGHT_SIDED) - !$elementSkin = $elementSkin + " RoundCorner " + "0" + %newline() - !$elementSkin = $elementSkin + " DiagonalCorner " + $EIGHT_SIDED_SIZE+ %newline() - !endif - !endif - !if ($borderStyle != "") - !$elementSkin = $elementSkin + " BorderStyle " + $borderStyle + %newline() - !endif - !if ($borderThickness != "") - !$elementSkin = $elementSkin + " BorderThickness " + $borderThickness + %newline() - !endif - !$elementSkin = $elementSkin + "}" + %newline() - !return $elementSkin -!endfunction - -!unquoted procedure $defineSkinparams($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - ' only rectangle supports shape(d corners) - !$tagSkin = $elementTagSkinparams("rectangle", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("database", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("queue", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' plantuml.jar bug - actor have to be after person - !$tagSkin = $tagSkin + $elementTagSkinparams("person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' actor has style awesome, therefore $fontColor is ignored and text uses $bgColor too - !$tagSkin = $tagSkin + $elementTagSkinparams("actor", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' sequence requires participant - !$tagSkin = $tagSkin + $elementTagSkinparams("participant", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("sequencebox", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !if (%strpos($tagStereo, "boundary") >= 0 && $bgColor != "") - !$tagSkin = $tagSkin + "skinparam package<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + %newline() - !$tagSkin = $tagSkin + "skinparam rectangle<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + %newline() - !endif - !if %variable_exists("ENABLE_ALL_PLANT_ELEMENTS") - !$tagSkin = $tagSkin + $elementTagSkinparams("agent", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("artifact", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("card", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("cloud", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("collections", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("file", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("folder", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("frame", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("hexagon", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("package", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("stack", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("storage", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("usecase", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' elements without background: font uses $bgColor - !$tagSkin = $tagSkin + $elementTagSkinparams("boundary", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("circle", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("control", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("entity", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("interface", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' label uses wrong font color? (should be $bgColor too) - !$tagSkin = $tagSkin + $elementTagSkinparams("label", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !endif -$tagSkin -!endprocedure - -' arrow colors cannot start with # (legend background has to start with #) -!function $colorWithoutHash($c) - !if (%substr($c, 0, 1) == "#") - !$c = %substr($c,1) - !endif - !return $c -!endfunction - -!unquoted procedure $defineRelSkinparams($tagStereo, $textColor, $lineColor, $lineStyle, $lineThickness) - !$elementSkin = "skinparam arrow<<" + $tagStereo + ">> {" + %newline() - !if ($lineColor != "") || ($textColor != "") || ($lineStyle != "") - !$elementSkin = $elementSkin + " Color " - !if ($lineColor != "") - !$elementSkin = $elementSkin + $colorWithoutHash($lineColor) - !endif - !if ($textColor != "") - !$elementSkin = $elementSkin + ";text:" + $colorWithoutHash($textColor) - !endif - !if ($lineStyle != "") - !$elementSkin = $elementSkin + ";line." + $lineStyle - !endif - !$elementSkin = $elementSkin + %newline() - !endif - !if ($lineThickness != "") - !$elementSkin = $elementSkin + " thickness " + $lineThickness + %newline() - !endif - !$elementSkin = $elementSkin + "}" + %newline() -$elementSkin -!endprocedure - -' %is_dark() requires PlantUML version >= 1.2021.6 -!if (%function_exists("%is_dark")) - !$PlantUMLSupportsDynamicLegendColor = %true() -!else - !$PlantUMLSupportsDynamicLegendColor = %false() - !log "dynamic undefined legend colors" requires PlantUML version >= 1.2021.6, therefore only static assigned colors are used -!endif - -!unquoted function $contrastLegend($color) - !if (%is_dark($color)) - !$value = $LEGEND_LIGHT_COLOR - !else - !$value = $LEGEND_DARK_COLOR - !endif - !return $value -!endfunction - -!unquoted function $flatLegend($color) - !if (%is_dark($color)) - !$value = $LEGEND_DARK_COLOR - !else - !$value = $LEGEND_LIGHT_COLOR - !endif - !return $value -!endfunction - -' legend background has to start with # -!function $colorWithHash($c) - !if (%substr($c, 0, 1) != "#") - !$c = "#" + $c - !endif - !return $c -!endfunction - -!function $addMaskFlag($mask, $attr) - !if ($attr == "") - !$mask = $mask + "0" - !else - !$mask = $mask + "1" - !endif - !return $mask -!endfunction - -!function $orFlags($flag1, $flag2) - !if ($flag1 == "0" && $flag2 == "0") - !return "0" - !endif - !return "1" -!endfunction - -!function $tagLegendMask($bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $borderStyle, $borderThickness) - !$mask = "" - !$mask = $addMaskFlag($mask, $bgColor) - !$mask = $addMaskFlag($mask, $fontColor) - !$mask = $addMaskFlag($mask, $borderColor) - !$mask = $addMaskFlag($mask, $shadowing) - !$mask = $addMaskFlag($mask, $shape) - !$mask = $addMaskFlag($mask, $sprite) - !$mask = $addMaskFlag($mask, $borderStyle) - !$mask = $addMaskFlag($mask, $borderThickness) - !return $mask -!endfunction - -!function $resetMask() - !return "00000000" -!endfunction - -!function $combineMasks($mask1, $mask2) - !$mask = "" - !$mask = $mask + $orFlags(%substr($mask1, 0, 1), %substr($mask2, 0, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 1, 1), %substr($mask2, 1, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 2, 1), %substr($mask2, 2, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 3, 1), %substr($mask2, 3, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 4, 1), %substr($mask2, 4, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 5, 1), %substr($mask2, 5, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 6, 1), %substr($mask2, 6, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 7, 1), %substr($mask2, 7, 1)) - !return $mask -!endfunction - -!function $combineMaskWithTag($mask1, $tag) - !$mask2 = %get_variable_value("$" + $tag+ "LegendMask") - !if ($mask2 == "") - ' !log combineMaskWithTag $mask1, $tag, ... only $mask1 - !return $mask1 - !endif - - ' !log combineMaskWithTag $mask1, $tag, $mask2 ... $combineMasks($mask1, $mask2) - !return $combineMasks($mask1, $mask2) -!endfunction - -' element symbols typically 4 times too big in legend -!function $smallVersionSprite($sprite) - ' ,scale= ... has to be first (...,color=black,scale=0.25... is invalid too) - !if (%strpos($sprite, "=") < 0) - !if (%substr($sprite, 0, 4) == "img:") - !$smallSprite = $sprite + "{scale=" + $LEGEND_IMAGE_SIZE_FACTOR + "}" - !else - !$smallSprite = $sprite + ",scale=" + $LEGEND_IMAGE_SIZE_FACTOR - !endif - !else - !$smallSprite = $sprite - !endif - !return $smallSprite -!endfunction - -' format sprite that it can be used in diagram -!function $getSprite($sprite) - ' if it starts with & it's a OpenIconic, details see https://useiconic.com/open/ - ' if it starts with img: it's an image, details see https://plantuml.com/creole - !if (%substr($sprite, 0, 1) != "&" && %substr($sprite, 0, 4) != "img:") - !$formatted = "<$" + $sprite + ">" - !else - !$formatted = "<" + $sprite + ">" - !endif - !return $formatted -!endfunction - -!function $setTagLegendVariables($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) - !$bg = $bgColor - !$fo = $fontColor - !$bo = $borderColor - - !if ($fo == "") - !if ($bg != "") -!if ($PlantUMLSupportsDynamicLegendColor) - !$fo = $contrastLegend($bg) -!else - !$fo = $LEGEND_DARK_COLOR -!endif - !else - !if ($bo == "") - !$fo = $LEGEND_DARK_COLOR - !$bg = $LEGEND_LIGHT_COLOR - !else -!if ($PlantUMLSupportsDynamicLegendColor) - !$fo = $flatLegend($bo) - !$bg = $contrastLegend($bo) -!else - !$fo = $LEGEND_DARK_COLOR - !$bg = $LEGEND_LIGHT_COLOR -!endif - !endif - !endif - !else - !if ($bg == "") -!if ($PlantUMLSupportsDynamicLegendColor) - !$bg = $contrastLegend($fo) -!else - !$bg = $LEGEND_LIGHT_COLOR -!endif - !endif - !endif - - !if ($bo == "") - !$bo = $bg - !endif - - !$tagEntry = "|" - !$tagDetails = "(" - !$tagEntry = $tagEntry + "<" + $colorWithHash($bg) +">" - ' ..white rectangle - !$tagEntry = $tagEntry + " " - !$tagEntry = $tagEntry + "" - !if ($legendSprite != "") - !$tagEntry = $tagEntry + $getSprite($legendSprite) + " " - !endif - - !$isBoundary = 0 - !if ($legendText == "") - !if (%strpos($tagStereo, "boundary") >= 0) - !if ($tagStereo == "boundary") - !$isBoundary = 1 - !$tagEntry = $tagEntry + " " + $LEGEND_BOUNDARY + " " - !else - ' if contains/ends with _boundary remove _boundary and add "boundary (dashed)" - !$pos = %strpos($tagStereo, "_boundary") - !if ($pos > 0) - !$isBoundary = 1 - !$tagEntry = $tagEntry + " " + %substr($tagStereo, 0 ,$pos) + " " +$LEGEND_BOUNDARY + " " - !endif - !endif - !endif - !if ($isBoundary == 0) - !$tagEntry = $tagEntry + " " + $tagStereo + " " - !endif - - !if ($isBoundary == 1 && ($bgColor == "#00000000" || %lower($bgColor) == "transparent")) - !$tagDetails = $tagDetails + $LEGEND_BOUNDARY_TRANSPARENT_INCL_COMA - !endif - !if ($shadowing == "true") - !$tagDetails = $tagDetails + $LEGEND_SHADOW_TEXT + ", " - !endif - !if ($shadowing == "false") - !$tagDetails = $tagDetails + $LEGEND_NO_SHADOW_TEXT + ", " - !endif - !if ($shape == $ROUNDED_BOX) - !$tagDetails = $tagDetails + $LEGEND_ROUNDED_BOX + ", " - !endif - !if ($shape == $EIGHT_SIDED) - !$tagDetails = $tagDetails + $LEGEND_EIGHT_SIDED + ", " - !endif - !if ($fontColor == "" && $bgColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_FONT_BG_TEXT + ", " - !else - !if ($fontColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_FONT_TEXT + ", " - !endif - !if ($bgColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_BG_TEXT + ", " - !endif - !endif - !if ($borderStyle != "") - !if ($borderStyle == $DOTTED_LINE) - !$tagDetails = $tagDetails + $LEGEND_DOTTED_LINE + ", " - !elseif ($borderStyle == $DASHED_LINE) - !if ($isBoundary == 1) - !$tagDetails = $tagDetails + $LEGEND_BOUNDARY_DASHED_INCL_COMA - !else - !$tagDetails = $tagDetails + $LEGEND_DASHED_LINE + ", " - !endif - !elseif ($borderStyle == $BOLD_LINE) - !$tagDetails = $tagDetails + $LEGEND_BOLD_LINE + ", " - !elseif ($borderStyle == $SOLID_LINE) - !$tagDetails = $tagDetails + $LEGEND_SOLID_LINE + ", " - !else - !$tagDetails = $tagDetails + $lineStyle + ", " - !endif - !endif - !if ($borderThickness != "") - !$tagDetails = $tagDetails + $LEGEND_THICKNESS + " " + $borderThickness + ", " - !endif - !if ($tagDetails=="(" || $tagDetails=="(, ") - !$tagDetails = "" - !else - !$tagDetails = %substr($tagDetails, 0, %strlen($tagDetails)-2) - !$tagDetails = $tagDetails + ")" - !endif - !else - !$brPos = %strpos($legendText, "\n") - !if ($brPos > 0) - !$tagEntry = $tagEntry + %substr($legendText, 0, $brPos) + " " - !$details = %substr($legendText, $brPos + 2) - !if ($details=="") - !$tagDetails = "" - !else - !$tagDetails = $tagDetails + $details + ")" - !endif - !else - !$tagEntry = $tagEntry + " " + $legendText + " " - !$tagDetails = "" - !endif - !endif - - !$tagDetails = $tagDetails + " " - !$tagDetails = $tagDetails + "|" -%set_variable_value("$" + $tagStereo + "LegendEntry", $tagEntry) -%set_variable_value("$" + $tagStereo + "LegendDetails", $tagDetails) - !return $tagEntry -!endfunction - -!function $setTagRelLegendVariables($tagStereo, $textColor, $lineColor, $lineStyle, $legendText, $legendSprite, $lineThickness) - !$tc = $textColor - !$lc = $lineColor - - !if ($tc == "") - !if ($PlantUMLSupportsDynamicLegendColor) - !$tc = $flatLegend($ARROW_FONT_COLOR) - !else - !$tc = $LEGEND_DARK_COLOR - !endif - !endif - !if ($lc == "") - !if ($PlantUMLSupportsDynamicLegendColor) - !$lc = $flatLegend($ARROW_COLOR) - !else - !$lc = $LEGEND_DARK_COLOR - !endif - !endif - - !$tagEntry = "|" - !$tagDetails = "(" - ' ..white line - !$tagEntry = $tagEntry + " " - !$tagEntry = $tagEntry + "" - !if ($legendSprite != "") - !$tagEntry = $tagEntry + $getSprite($legendSprite) + " " - !endif - !if ($legendText == "") - !$tagEntry = $tagEntry + " " + $tagStereo + " " - !if ($textColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_FONT_TEXT + ", " - !endif - !if ($lineColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_LINE_TEXT + ", " - !endif - !if ($lineStyle != "") - !if ($lineStyle == $DOTTED_LINE) - !$tagDetails = $tagDetails + $LEGEND_DOTTED_LINE + ", " - !elseif ($lineStyle == $DASHED_LINE) - !$tagDetails = $tagDetails + $LEGEND_DASHED_LINE + ", " - !elseif ($lineStyle == $BOLD_LINE) - !$tagDetails = $tagDetails + $LEGEND_BOLD_LINE + ", " - !else - !$tagDetails = $tagDetails + $lineStyle + ", " - !endif - !endif - !if ($lineThickness != "") - !$tagDetails = $tagDetails + $LEGEND_THICKNESS + " " + $lineThickness + ", " - !endif - !if ($tagDetails=="(") - !$tagDetails = "" - !else - !$tagDetails = %substr($tagDetails, 0, %strlen($tagDetails)-2) - !$tagDetails = $tagDetails + ")" - !endif - !else - !$brPos = %strpos($legendText, "\n") - !if ($brPos > 0) - !$tagEntry = $tagEntry + " " + %substr($legendText, 0, $brPos) + " " - !$details = %substr($legendText, $brPos + 2) - !if ($details=="") - !$tagDetails = "" - !else - !$tagDetails = $tagDetails + $details + ")" - !endif - !else - !$tagEntry = $tagEntry + " " + $legendText + " " - !$tagDetails = "" - !endif - !endif - - !$tagDetails = $tagDetails + " " - !$tagDetails = $tagDetails + "|" -%set_variable_value("$" + $tagStereo + "_LineLegendEntry", $tagEntry) -%set_variable_value("$" + $tagStereo + "_LineLegendDetails", $tagDetails) - !return $tagEntry -!endfunction - -!unquoted procedure $addTagToLegend($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") -'' if a combined element tag is defined (e.g. "v1.0&v1.1") then it is typically a merged color, -'' like a new $fontColor="#fdae61" therefore it should be added to the legend -'' and the & combined tags will be not removed -' !if (%strpos($tagStereo, "&") < 0) - !$dummyAlreadyVariables = $setTagLegendVariables($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) - !$tagCustomLegend = $tagCustomLegend + $tagStereo + "\n" - !$tagMask = $tagLegendMask( $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $borderStyle, $borderThickness) -%set_variable_value("$" + $tagStereo + "LegendMask", $tagMask) -' !endif -!endprocedure - -!unquoted procedure $addRelTagToLegend($tagStereo, $textColor="", $lineColor="", $lineStyle="", $legendText="", $legendSprite="", $lineThickness="") -'' Arrows have a bug with stereotype/skinparams and cannot combine text colors of one stereotype -'' and the line color of another stereotype. Therefore the text color of one tag and the line color -'' of another tag have to be combined via a "workaround" tag ("v1.0&v1.1"). -'' This workaround tag could be theoretically removed in the legend but after that there would -'' be an inconsistency between the element tags and the rel tags and therefore -'' & combined workaround tags are not removed too (and in unlikely cases the color itself could be changed) -' !if (%strpos($tagStereo, "&") < 0) - !$dummyAlreadyVariables = $setTagRelLegendVariables($tagStereo, $textColor, $lineColor, $lineStyle, $legendText, $legendSprite, $lineThickness) - !$tagCustomLegend = $tagCustomLegend + $tagStereo + "_Line\n" -' !endif -!endprocedure - -!procedure $showActiveLegendEntries($allDefined) - !$brPos = %strpos($allDefined, "\n") - !while ($brPos >= 0) - !$tagStereo = %substr($allDefined, 0, $brPos) - !$allDefined = %substr($allDefined, $brPos+2) - !$brPos = %strpos($allDefined, "\n") - !if (%variable_exists("$" + $tagStereo + "Legend")) - ' is part of legendDetails - !$part1 = %get_variable_value("$" + $tagStereo + "LegendEntry") - !$partSize = "" - !$part2 = %get_variable_value("$" + $tagStereo + "LegendDetails") - !$line = $part1 + $partSize + $part2 -$line - !endif - !endwhile - !if (%strlen($allDefined) > 0) - !$tagStereo = $allDefined - !if (%variable_exists("$" + $tagStereo + "Legend")) - ' is part of legendDetails - !$part1 = %get_variable_value("$" + $tagStereo + "LegendEntry") - !$partSize = "" - !$part2 = %get_variable_value("$" + $tagStereo + "LegendDetails") - !$line = $part1 + $partSize + $part2 -$line - !endif - !endif -!endprocedure - -!function RoundedBoxShape() -!return $ROUNDED_BOX -!endfunction - -!function EightSidedShape() -!return $EIGHT_SIDED -!endfunction - -!function DottedLine() -!return $DOTTED_LINE -!endfunction - -!function DashedLine() -!return $DASHED_LINE -!endfunction - -!function BoldLine() -!return $BOLD_LINE -!endfunction - -!function SolidLine() -!return $SOLID_LINE -!endfunction - -' used by new defined tags -!unquoted procedure AddElementTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") -$defineSkinparams($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !if ($sprite!="") -%set_variable_value("$" + $tagStereo + "ElementTagSprite", $sprite) - !if ($legendSprite == "") - !$legendSprite = $smallVersionSprite($sprite) - !endif - !endif - !if ($techn != "") -%set_variable_value("$" + $tagStereo + "ElementTagTechn", $techn) - !endif -$addTagToLegend($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -!unquoted procedure $addElementTagInclReuse($elementName, $tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - !$bgColor=$restoreEmpty($elementName, "bgColor", $bgColor, %false()) - !$fontColor=$restoreEmpty($elementName, "fontColor", $fontColor, %false()) - !$borderColor=$restoreEmpty($elementName, "borderColor", $borderColor, %false()) - !$shadowing=$restoreEmpty($elementName, "shadowing", $shadowing, %false()) - !$shape=$restoreEmpty($elementName, "shape", $shape, %false()) - !$sprite=$restoreEmpty($elementName, "sprite", $sprite, %false()) - !$techn=$restoreEmpty($elementName, "techn", $techn, %false()) - ' new style should has its own legend text - ' !$legendText=$restoreEmpty($elementName, "legendText", $legendText, %false()) - !$legendSprite=$restoreEmpty($elementName, "legendSprite", $legendSprite, %false()) - !$borderStyle=$restoreEmpty($elementName, "borderStyle", $borderStyle, %false()) - !$borderThickness=$restoreEmpty($elementName, "borderThickness", $borderThickness, %false()) - - AddElementTag($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -' used by new defined rel tags -!unquoted procedure AddRelTag($tagStereo, $textColor="", $lineColor="", $lineStyle="", $sprite="", $techn="", $legendText="", $legendSprite="", $lineThickness="") -$defineRelSkinparams($tagStereo, $textColor, $lineColor, $lineStyle, $lineThickness) - !if ($sprite != "") -%set_variable_value("$" + $tagStereo + "RelTagSprite", $sprite) - !if ($legendSprite == "") - ' relation symbols typically 1:1 no additional scale required - !$legendSprite = $sprite - !endif - !endif - !if ($techn != "") -%set_variable_value("$" + $tagStereo + "RelTagTechn", $techn) - !endif -$addRelTagToLegend($tagStereo, $textColor, $lineColor, $lineStyle, $legendText, $legendSprite, $lineThickness) -!endprocedure - -' update the style of existing elements like person, ... -!unquoted procedure UpdateElementStyle($elementName, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") -!$bgColor=$restoreEmpty($elementName, "bgColor", $bgColor, %true()) -!$fontColor=$restoreEmpty($elementName, "fontColor", $fontColor, %true()) -!$borderColor=$restoreEmpty($elementName, "borderColor", $borderColor, %true()) -!$shadowing=$restoreEmpty($elementName, "shadowing", $shadowing, %true()) -!$shape=$restoreEmpty($elementName, "shape", $shape, %true()) -!$sprite=$restoreEmpty($elementName, "sprite", $sprite, %true()) -!$techn=$restoreEmpty($elementName, "techn", $techn, %true()) -!$legendText=$restoreEmpty($elementName, "legendText", $legendText, %true()) -!$legendSprite=$restoreEmpty($elementName, "legendSprite", $legendSprite, %true()) -!$borderStyle=$restoreEmpty($elementName, "borderStyle", $borderStyle, %true()) -!$borderThickness=$restoreEmpty($elementName, "borderThickness", $borderThickness, %true()) - -$defineSkinparams($elementName, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !if ($sprite != "") -%set_variable_value("$" + $elementName + "ElementTagSprite", $sprite) - !if ($legendSprite == "") - !$legendSprite = $smallVersionSprite($sprite) - !endif - !endif - !if ($techn != "") -%set_variable_value("$" + $elementName + "ElementTagTechn", $techn) - !endif - !$dummyAlreadyVariables = $setTagLegendVariables($elementName, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) - ' default tags sets at least bgColor and fontColor - !$tagMask = $tagLegendMask("CHANGED", "CHANGED", $borderColor, $shadowing, $shape, $sprite, $borderStyle, $borderThickness) -%set_variable_value("$" + $elementName + "LegendMask", $tagMask) -!endprocedure - -/' @deprecated in favor of UpdateElementStyle '/ -!unquoted procedure UpdateSkinparamsAndLegendEntry($elementName, $bgColor="", $fontColor="", $borderColor="", $shadowing="") -UpdateElementStyle($elementName, $bgColor, $fontColor, $borderColor, $shadowing) -!endprocedure - -' update the style of default relation, it has to set both properties (combined statement not working) -!unquoted procedure UpdateRelStyle($textColor, $lineColor) - !$elementSkin = "skinparam arrow {" + %newline() - !$elementSkin = $elementSkin + " Color " + $lineColor + %newline() - !$elementSkin = $elementSkin + " FontColor " + $textColor + %newline() - !$elementSkin = $elementSkin + "}" + %newline() -$elementSkin -!endprocedure - -' tags/stereotypes have to be delimited with \n -!unquoted procedure SetDefaultLegendEntries($tagStereoEntries) - !$tagDefaultLegend = $tagStereoEntries -!endprocedure - -' Links -' ################################## - -!function $getLink($link) - !if ($link != "") - !return "[[" + $link + "]]" - !else - !return "" - !endif -!endfunction - -' Line breaks -' ################################## - -!unquoted function $breakText($text, $usedNewLine, $widthStr="-1") -!$width = %intval($widthStr) -!$multiLine = "" -!if (%strpos($text, "\n") >= 0) - !while (%strpos($text, "\n") >= 0) - !$brPos = %strpos($text, "\n") - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $usedNewLine - !else - ' non breaking change that newLine breaks with formats can be used with \n\n - !$multiLine = $multiLine + "" + $usedNewLine - !endif - !$text = %substr($text, $brPos+2) - !if (%strlen($text) == 0) - !$text = "" - !endif - !endwhile -!else - !while ($width>0 && %strlen($text) > $width) - !$brPos = $width - !while ($brPos > 0 && %substr($text, $brPos, 1) != ' ') - !$brPos = $brPos - 1 - !endwhile - - !if ($brPos < 1) - !$brPos = %strpos($text, " ") - !else - !endif - - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $usedNewLine - !$text = %substr($text, $brPos + 1) - !else - !$multiLine = $multiLine+ $text - !$text = "" - !endif - !endwhile -!endif -!if (%strlen($text) > 0) - !$multiLine = $multiLine + $text -!endif -!return $multiLine -!endfunction - -!unquoted function $breakLabel($text) -!$usedNewLine = "\n== " -!$multiLine = $breakText($text, $usedNewLine) -!return $multiLine -!endfunction - -!unquoted function $breakDescr($text, $widthStr) - !$usedNewLine = "\n" - !return $breakText($text, $usedNewLine, $widthStr) -!endfunction - -' $breakTechn() supports //...//; $breakNode() in C4_Deployment supports no //....// -!unquoted function $breakTechn($text, $widthStr) - !$usedNewLine = '//\n//' - !return $breakText($text, $usedNewLine, $widthStr) -!endfunction - -' Element base layout -' ################################## - -!function $getElementBase($label, $techn, $descr, $sprite) - !$element = "" - !if ($sprite != "") - !$element = $element + $getSprite($sprite) - !if ($label != "") - !$element = $element + '\n' - !endif - !endif - !if ($label != "") - !$element = $element + '== ' + $breakLabel($label) - !else - !$element = $element + '.' - !endif - !if ($techn != "") - !$element = $element + '\n//[' + $breakTechn($techn, '-1') + ']//' - !endif - !if ($descr != "") - !$element = $element + '\n\n' + $descr - !endif - !return $element -!endfunction - -!function $getElementLine($umlShape, $elementType, $alias, $label, $techn, $descr, $sprite, $tags, $link) - !$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", $elementType) - !$techn=$toElementArg($techn, $tags, "ElementTagTechn", $elementType) - !$baseProp = $getElementBase($label, $techn, $descr, $sprite) + $getProps() - !$stereo = $toStereos($elementType,$tags) - !$calcLink = $getLink($link) - - !$line = $umlShape + " " + %chr(34) + $baseProp + %chr(34) +" " + $stereo + " as " + $alias + $calcLink - !return $line -!endfunction - -' Element properties -' ################################## - -' collect all defined properties as table rows -!global $propTable = "" -!global $propTableCaption = "" -!global $propColCaption = "=" - -!unquoted function SetPropertyHeader($col1Name, $col2Name, $col3Name = "", $col4Name = "") - !$propColCaption = "" - !$propTableCaption = "|= " + $col1Name + " |= " + $col2Name + " |" - !if ($col3Name != "") - !$propTableCaption = $propTableCaption + "= " + $col3Name + " |" - !endif - !if ($col4Name != "") - !$propTableCaption = $propTableCaption + "= " + $col4Name + " |" - !endif - !return "" -!endfunction - -!unquoted function WithoutPropertyHeader() - !$propTableCaption = "" - !$propColCaption = "=" - !return "" -!endfunction - -!unquoted function AddProperty($col1, $col2, $col3 = "", $col4 = "") - !if ($propTable == "") - !if ($propTableCaption != "") - !$propTable = $propTableCaption + "\n" - !endif - !else - !$propTable = $propTable + "\n" - !endif - !$propTable = $propTable + "| " + $col1 + " |" + $propColCaption + " " + $col2 + " |" - !if ($col3 != "") - !$propTable = $propTable + " " + $col3 + " |" - !endif - !if ($col4 != "") - !$propTable = $propTable + " " + $col4 + " |" - !endif - !return "" -!endfunction - -!unquoted function $getProps($alignedNL = "\n") - !if ($propTable != "") - !$retTable = $alignedNL + $propTable - !$propTable = "" - !return $retTable - !endif - !return "" -!endfunction - -!unquoted function $getProps_L() - !return $getProps("\l") -!endfunction - -!unquoted function $getProps_R() - !return $getProps("\r") -!endfunction - -SetPropertyHeader("Property","Value") - -' Layout -' ################################## - -!function $getLegendDetailsSize($detailsFormat) - !if $detailsFormat == $LEGEND_DETAILS_NONE - !$size = 0 - !elseif $detailsFormat == $LEGEND_DETAILS_SMALL - !$size = $LEGEND_DETAILS_SMALL_SIZE - !else - !$size = $LEGEND_DETAILS_NORMAL_SIZE - !endif - !return $size -!endfunction - -!procedure $getHideStereotype($hideStereotype) -!if ($hideStereotype == "true") -hide stereotype -!endif -!endprocedure - -!procedure $getLegendTable($detailsFormat) -!global $LEGEND_DETAILS_SIZE = $getLegendDetailsSize($detailsFormat) -<$colorWithHash(transparent),$colorWithHash(transparent)>|**Legend** | -$showActiveLegendEntries($tagDefaultLegend) -$showActiveLegendEntries($tagCustomLegend) -!endprocedure - -!procedure $getLegendArea($areaAlias, $hideStereotype, $details) -$getHideStereotype($hideStereotype) -rectangle $areaAlias<> [ -$getLegendTable($details) -] -!endprocedure - -!procedure HIDE_STEREOTYPE() -hide stereotype -!endprocedure - -!unquoted procedure SET_SKETCH_STYLE($bgColor="_dont_change_", $fontColor="_dont_change_", $warningColor="_dont_change_", $fontName="_dont_change_", $footerWarning="_dont_change_", $footerText="_dont_change_") -!if $bgColor != "_dont_change_" - !global $SKETCH_BG_COLOR = $bgColor -!endif -!if $fontColor != "_dont_change_" - !global $SKETCH_FONT_COLOR = $fontColor -!endif -!if $warningColor != "_dont_change_" - !global $SKETCH_WARNING_COLOR = $warningColor -!endif -!if $fontName != "_dont_change_" - !global $SKETCH_FONT_NAME = $fontName -!endif -!if $footerWarning != "_dont_change_" - !global $SKETCH_FOOTER_WARNING = $footerWarning -!endif -!if $footerText != "_dont_change_" - !global $SKETCH_FOOTER_TEXT = $footerText -!endif -!endprocedure - -!procedure LAYOUT_AS_SKETCH() - skinparam handwritten true -!if $SKETCH_BG_COLOR > "" - skinparam backgroundColor $SKETCH_BG_COLOR -!endif -!if $SKETCH_FONT_COLOR > "" - skinparam footer { - FontColor $SKETCH_FONT_COLOR - } - !if $ARROW_COLOR == "#666666" - !global $ARROW_COLOR = $SKETCH_FONT_COLOR - !global $ARROW_FONT_COLOR = $SKETCH_FONT_COLOR - skinparam arrow { - Color $ARROW_COLOR - FontColor $ARROW_FONT_COLOR - } - !endif - !if $BOUNDARY_COLOR == "#444444" - !global $BOUNDARY_COLOR = $SKETCH_FONT_COLOR - skinparam rectangle<> { - FontColor $BOUNDARY_COLOR - BorderColor $BOUNDARY_COLOR - } - !endif -!endif -!if $SKETCH_FONT_NAMES > "" - skinparam defaultFontName $SKETCH_FONT_NAME -!endif -!if $SKETCH_FOOTER_WARNING > "" || $SKETCH_FOOTER_TEXT > "" - !$line = "footer "+ $SKETCH_FOOTER_WARNING + " " + $SKETCH_FOOTER_TEXT - $line -!endif -!endprocedure - -!global $fix_direction=%false() - -!function $down($start,$end) -!if ($fix_direction) -!return $start+"RIGHT"+$end -!else -!return $start+"DOWN"+$end -!endif -!endfunction - -!function $up($start,$end) -!if ($fix_direction) -!return $start+"LEFT"+$end -!else -!return $start+"UP"+$end -!endif -!endfunction - -!function $left($start,$end) -!if ($fix_direction) -!return $start+"UP"+$end -!else -!return $start+"LEFT"+$end -!endif -!endfunction - -!function $right($start,$end) -!if ($fix_direction) -!return $start+"DOWN"+$end -!else -!return $start+"RIGHT"+$end -!endif -!endfunction - -!procedure LAYOUT_TOP_DOWN() -!global $fix_direction=%false() -top to bottom direction -!endprocedure - -!procedure LAYOUT_LEFT_RIGHT() -!global $fix_direction = %false() -left to right direction -!endprocedure - -!procedure LAYOUT_LANDSCAPE() -!global $fix_direction = %true() -left to right direction -!endprocedure - -' legend details can displayed as Normal(), Small(), None() -!function None() -!return $LEGEND_DETAILS_NONE -!endfunction - -!function Normal() -!return $LEGEND_DETAILS_NORMAL -!endfunction - -!function Small() -!return $LEGEND_DETAILS_SMALL -!endfunction - -' has to be last call in diagram -!unquoted procedure SHOW_LEGEND($hideStereotype="true", $details=Small()) -$getHideStereotype($hideStereotype) -legend right -$getLegendTable($details) -endlegend -!endprocedure - -/' @deprecated in favor of SHOW_LEGEND '/ -!unquoted procedure SHOW_DYNAMIC_LEGEND($hideStereotype="true") -SHOW_LEGEND($hideStereotype) -!endprocedure - -' legend is reserved and cannot be uses as alias of SHOW_FLOATING_LEGEND() therefore -' LEGEND() is introduced. It returns the default name of the floating alias "floating_legend_alias" -' and can be used in the Lay_Distance() calls -!function LEGEND() -!return "floating_legend_alias" -!endfunction - -' enables that legend can be located in drawing area of the diagram. It has to be last call in diagram followed by Lay_Distance() -!unquoted procedure SHOW_FLOATING_LEGEND($alias=LEGEND(), $hideStereotype="true", $details=Small()) -$getLegendArea($alias, $hideStereotype, $details) -!endprocedure - -' Boundaries -' ################################## - -!unquoted procedure UpdateBoundaryStyle($elementName="", $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $type="", $legendText="", $borderStyle="", $borderThickness="") - !if ($elementName != "") - !$elementBoundary = $elementName + '_boundary' - UpdateElementStyle($elementBoundary, $bgColor, $fontColor, $borderColor, $shadowing, $shape, "", $type, $legendText, "", $borderStyle, $borderThickness) - !else - UpdateElementStyle("boundary", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "", $type, $legendText, "", $borderStyle, $borderThickness) - ' simulate color inheritance - UpdateBoundaryStyle("enterprise", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "Enterprise", "", $borderStyle, $borderThickness) - UpdateBoundaryStyle("system", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "System", "", $borderStyle, $borderThickness) - UpdateBoundaryStyle("container", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "Container", "", $borderStyle, $borderThickness) - !endif -!endprocedure - -!unquoted procedure AddBoundaryTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $type="", $legendText="", $borderStyle="", $borderThickness="") - !$tagBoundary = $tagStereo + '_boundary' - AddElementTag($tagBoundary, $bgColor, $fontColor, $borderColor, $shadowing, $shape, "", $type, $legendText, "", $borderStyle, $borderThickness) -!endprocedure - -' add _boundary to all tags that short tag version can be used -!unquoted function $addBoundaryPostfix($tags) - !if (%strlen($tags) == 0) - !return '' - !endif - !$boundaryTags = '' - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$boundaryTags = $boundaryTags + $tag + '_boundary+' - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$boundaryTags = $boundaryTags + $tags + '_boundary' - !endif - !return $boundaryTags -!endfunction - -!function $getBoundary($label, $type) - !if ($type == "") - !return '== ' + $breakLabel($label) - !endif - !if (type != "") - !return '== ' + $breakLabel($label) + '\n[' + $type + ']' - !endif -!endfunction - -!unquoted procedure Boundary($alias, $label, $type="", $tags="", $link="") -!$boundaryTags = $addBoundaryPostfix($tags) -' nodes $type reuses $techn definition of $boundaryTags -!$type=$toElementArg($type, $boundaryTags, "ElementTagTechn", "boundary") -rectangle "$getBoundary($label, $type)" $toStereos("boundary", $boundaryTags) as $alias $getLink($link) -!endprocedure - -' Boundary Styling -UpdateBoundaryStyle("", $bgColor=$BOUNDARY_BG_COLOR, $fontColor=$BOUNDARY_COLOR, $borderColor=$BOUNDARY_COLOR, $borderStyle=DashedLine()) - -' Index -' ################################## - -' Dynamic/Sequence diagram supports (automatically) numbered interactions: -' preferred function calls -' (Uppercase) LastIndex(): return the last used index (function which can be used as argument) -' (Uppercase) Index($offset=1): returns current index and calculates next index (function which can be used as argument) -' (Uppercase) SetIndex($new_index): returns new set index and calculates next index (function which can be used as argument) - -' old procedures calls -' (lowercase) increment($offset=1): increase current index (procedure which has no direct output) -' (lowercase) setIndex($new_index): set the new index (procedure which has no direct output) - -!$lastIndex = 0 -!$index = 1 - -!procedure increment($offset=1) - !$lastIndex = $index - !$index = $index + $offset -!endprocedure - -!procedure setIndex($new_index) - !$lastIndex = $index - !$index = $new_index -!endprocedure - -!function Index($offset=1) - !$lastIndex = $index - !$index = $lastIndex + $offset - !return $lastIndex -!endfunction - -!function LastIndex() - !return $lastIndex -!endfunction - -!function SetIndex($new_index, $offset=1) - !$lastIndex = $new_index - !$index = $new_index + $offset - !return $lastIndex -!endfunction - -!unquoted function $getPrefix($index) - !if ($index == "") - !$pre = Index() + ": " - !else - !$pre = $index + ": " - !endif - !return $pre -!endfunction - -' Relationship -' ################################## - -!function $getRel($direction, $alias1, $alias2, $label, $techn, $descr, $sprite, $tags, $link) - !$sprite = $toRelArg($sprite, $tags, "RelTagSprite") - !$techn = $toRelArg($techn, $tags, "RelTagTechn") - !$rel = $alias1 + ' ' + $direction + ' ' + $alias2 - !if ($tags != "") - !$rel = $rel + ' ' + $toStereos($tags) - !endif - !$rel = $rel + ' : ' - !if ($link != "") - !$rel = $rel + '**[[' + $link + ' ' - !endif - !if ($sprite != "") - !$rel = $rel + $getSprite($sprite) - !if ($label != "") - !$rel = $rel + ' ' - !endif - !endif - !if ($link != "") - !$usedNewLine = ']]**\n**[[' + $link + ' ' - ' if sprite and label is empty than the link url is shown (otherwise link cannot be activated at all) - !$rel = $rel + $breakText($label, $usedNewLine) + ']]**' - !else - !if ($label != "") - !$usedNewLine = '**\n**' - !$rel = $rel + '**' + $breakText($label, $usedNewLine) + '**' - !else - !$rel = $rel + '.' - !endif - !endif - !if ($techn != "") - ' line break is not deterministic, calculate it - !$rel = $rel + '\n//[' + $breakTechn($techn, $REL_TECHN_MAX_CHAR_WIDTH) + ']//' - !endif - !if ($descr != "") - ' line break is not deterministic, calculate it - !$rel = $rel + '\n\n' + $breakDescr($descr, $REL_DESCR_MAX_CHAR_WIDTH) - !endif - !$prop = $getProps() - !if ($prop != "") - ' reuse table - !$rel = $rel + $prop - !endif - !return $rel -!endfunction - -!unquoted procedure Rel_($alias1, $alias2, $label, $direction) -$getRel($direction, $alias1, $alias2, $label, "", "", "", "", "") -!endprocedure -!unquoted procedure Rel_($alias1, $alias2, $label, $techn, $direction) -$getRel($direction, $alias1, $alias2, $label, $techn, "", "", "", "") -!endprocedure - -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("-->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<-->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Back($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<--", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Back_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<-", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_D($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Down($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_D($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Down($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_U($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Up($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_U($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Up($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_L($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Left($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_L($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Left($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_R($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Right($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_R($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Right($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -' Layout Helpers -' ################################## - -!function $getHiddenLine($distance) - !return '-[hidden]' + %substr('------------', 0, %intval($distance) + 1) -!endfunction - -!unquoted procedure Lay_D($from, $to) -$from -[hidden]D- $to -!endprocedure -!unquoted procedure Lay_Down($from, $to) -$from -[hidden]D- $to -!endprocedure - -!unquoted procedure Lay_U($from, $to) -$from -[hidden]U- $to -!endprocedure -!unquoted procedure Lay_Up($from, $to) -$from -[hidden]U- $to -!endprocedure - -!unquoted procedure Lay_R($from, $to) -$from -[hidden]R- $to -!endprocedure -!unquoted procedure Lay_Right($from, $to) -$from -[hidden]R- $to -!endprocedure - -!unquoted procedure Lay_L($from, $to) -$from -[hidden]L- $to -!endprocedure -!unquoted procedure Lay_Left($from, $to) -$from -[hidden]L- $to -!endprocedure - -' PlantUML bug: lines which does "not match" with the orientation/direction of the diagram -' use the same length therefore the method offers no direction at all. -' If a direction is required the Lay_...() methods can be used -!unquoted procedure Lay_Distance($from, $to, $distance="0") -$from $getHiddenLine($distance) $to -!endprocedure diff --git a/src/C4Sharp/Resources/C4_Component.puml b/src/C4Sharp/Resources/C4_Component.puml deleted file mode 100644 index a4137d6..0000000 --- a/src/C4Sharp/Resources/C4_Component.puml +++ /dev/null @@ -1,83 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Container.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml -!endif - -' Scope: A single container. -' Primary elements: Components within the container in scope. -' Supporting elements: Containers (within the software system in scope) plus people and software systems directly connected to the components. -' Intended audience: Software architects and developers. - -' Colors -' ################################## - -!$COMPONENT_FONT_COLOR ?= "#000000" -!$COMPONENT_BG_COLOR ?= "#85BBF0" -!$COMPONENT_BORDER_COLOR ?= "#78A8D8" - -!$EXTERNAL_COMPONENT_FONT_COLOR ?= $COMPONENT_FONT_COLOR -!$EXTERNAL_COMPONENT_BG_COLOR ?= "#CCCCCC" -!$EXTERNAL_COMPONENT_BORDER_COLOR ?= "#BFBFBF" - -' Styling -' ################################## - -UpdateElementStyle("component", $COMPONENT_BG_COLOR, $COMPONENT_FONT_COLOR, $COMPONENT_BORDER_COLOR, false) -UpdateElementStyle("external_component", $EXTERNAL_COMPONENT_BG_COLOR, $EXTERNAL_COMPONENT_FONT_COLOR, $EXTERNAL_COMPONENT_BORDER_COLOR, false) - -' shortcuts with default colors -!unquoted procedure AddComponentTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("component", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalComponentTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_component", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -' Layout -' ################################## - -SetDefaultLegendEntries("person\nsystem\ncontainer\ncomponent\nexternal_person\nexternal_system\nexternal_container\nexternal_component\nenterprise_boundary\nsystem_boundary\ncontainer_boundary\nboundary") - -!procedure LAYOUT_WITH_LEGEND() -hide stereotype -legend right -|**Legend** | -|<$PERSON_BG_COLOR> person | -|<$SYSTEM_BG_COLOR> system | -|<$CONTAINER_BG_COLOR> container | -|<$COMPONENT_BG_COLOR> component | -|<$EXTERNAL_PERSON_BG_COLOR> external person | -|<$EXTERNAL_SYSTEM_BG_COLOR> external system | -|<$EXTERNAL_CONTAINER_BG_COLOR> external container | -|<$EXTERNAL_COMPONENT_BG_COLOR> external component | -endlegend -!endprocedure - -' Elements -' ################################## - -!unquoted procedure Component($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape, "component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Component_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape, "external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure diff --git a/src/C4Sharp/Resources/C4_Container.puml b/src/C4Sharp/Resources/C4_Container.puml deleted file mode 100644 index bccd6fd..0000000 --- a/src/C4Sharp/Resources/C4_Container.puml +++ /dev/null @@ -1,103 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Context.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml -!endif - -' Scope: A single software system. -' Primary elements: Containers within the software system in scope. -' Supporting elements: People and software systems directly connected to the containers. -' Intended audience: Technical people inside and outside of the software development team; including software architects, developers and operations/support staff. - -' Colors -' ################################## - -!$CONTAINER_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$CONTAINER_BG_COLOR ?= "#438DD5" -!$CONTAINER_BORDER_COLOR ?= "#3C7FC0" - -!$CONTAINER_BOUNDARY_COLOR ?= $BOUNDARY_COLOR -!$CONTAINER_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR -!$CONTAINER_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE - -!$EXTERNAL_CONTAINER_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$EXTERNAL_CONTAINER_BG_COLOR ?= "#B3B3B3" -!$EXTERNAL_CONTAINER_BORDER_COLOR ?= "#A6A6A6" - -' Styling -' ################################## -UpdateElementStyle("container", $CONTAINER_BG_COLOR, $CONTAINER_FONT_COLOR, $CONTAINER_BORDER_COLOR, false) -UpdateElementStyle("external_container", $EXTERNAL_CONTAINER_BG_COLOR, $EXTERNAL_CONTAINER_FONT_COLOR, $EXTERNAL_CONTAINER_BORDER_COLOR, false) - -UpdateBoundaryStyle("container", $bgColor=$CONTAINER_BOUNDARY_BG_COLOR, $fontColor=$CONTAINER_BOUNDARY_COLOR, $borderColor=$CONTAINER_BOUNDARY_COLOR, $type="Container", $shadowing="false") - -' shortcuts with default colors -!unquoted procedure AddContainerTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("container", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalContainerTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_container", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -!unquoted procedure UpdateContainerBoundaryStyle($bgColor=$CONTAINER_BOUNDARY_BG_COLOR, $fontColor=$CONTAINER_BOUNDARY_COLOR, $borderColor=$CONTAINER_BOUNDARY_COLOR, $shadowing="", $shape="", $type="Container", $legendText="", $borderStyle="", $borderThickness="") - UpdateBoundaryStyle("container", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness) -!endprocedure - -' Layout -' ################################## - -SetDefaultLegendEntries("person\nsystem\ncontainer\nexternal_person\nexternal_system\nexternal_container\nenterprise_boundary\nsystem_boundary\ncontainer_boundary\nboundary") - -!procedure LAYOUT_WITH_LEGEND() -hide stereotype -legend right -|**Legend** | -|<$PERSON_BG_COLOR> person | -|<$SYSTEM_BG_COLOR> system | -|<$CONTAINER_BG_COLOR> container | -|<$EXTERNAL_PERSON_BG_COLOR> external person | -|<$EXTERNAL_SYSTEM_BG_COLOR> external system | -|<$EXTERNAL_CONTAINER_BG_COLOR> external container | -endlegend -!endprocedure - -' Elements -' ################################## - -!unquoted procedure Container($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape , "container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Container_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape , "external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -' Boundaries -' ################################## - -!unquoted procedure Container_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+container' - !else - !$allTags = 'container' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure diff --git a/src/C4Sharp/Resources/C4_Context.puml b/src/C4Sharp/Resources/C4_Context.puml deleted file mode 100644 index 71b2574..0000000 --- a/src/C4Sharp/Resources/C4_Context.puml +++ /dev/null @@ -1,434 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4.puml -!endif - -' Scope: A single software system. -' Primary elements: The software system in scope. -' Supporting elements: People and software systems directly connected to the software system in scope. -' Intended audience: Everybody, both technical and non-technical people, inside and outside of the software development team. - -' Colors -' ################################## - -!$PERSON_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$PERSON_BG_COLOR ?= "#08427B" -!$PERSON_BORDER_COLOR ?= "#073B6F" - -!$EXTERNAL_PERSON_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$EXTERNAL_PERSON_BG_COLOR ?= "#686868" -!$EXTERNAL_PERSON_BORDER_COLOR ?= "#8A8A8A" - -!$SYSTEM_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$SYSTEM_BG_COLOR ?= "#1168BD" -!$SYSTEM_BORDER_COLOR ?= "#3C7FC0" - -!$SYSTEM_BOUNDARY_COLOR ?= $BOUNDARY_COLOR -!$SYSTEM_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR -!$SYSTEM_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE - -!$EXTERNAL_SYSTEM_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$EXTERNAL_SYSTEM_BG_COLOR ?= "#999999" -!$EXTERNAL_SYSTEM_BORDER_COLOR ?= "#8A8A8A" - -!$ENTERPRISE_BOUNDARY_COLOR ?= $BOUNDARY_COLOR -!$ENTERPRISE_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR -!$ENTERPRISE_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE - -' Styling -' ################################## - -UpdateElementStyle("person", $PERSON_BG_COLOR, $PERSON_FONT_COLOR, $PERSON_BORDER_COLOR, false) -UpdateElementStyle("external_person", $EXTERNAL_PERSON_BG_COLOR, $EXTERNAL_PERSON_FONT_COLOR, $EXTERNAL_PERSON_BORDER_COLOR, false) -UpdateElementStyle("system", $SYSTEM_BG_COLOR, $SYSTEM_FONT_COLOR, $SYSTEM_BORDER_COLOR, false) -UpdateElementStyle("external_system", $EXTERNAL_SYSTEM_BG_COLOR, $EXTERNAL_SYSTEM_FONT_COLOR, $EXTERNAL_SYSTEM_BORDER_COLOR, false) - -UpdateBoundaryStyle("system", $bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $type="System", $shadowing="false") -UpdateBoundaryStyle("enterprise", $bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $type="Enterprise", $shadowing="false") - -' shortcuts with default colors -!unquoted procedure AddPersonTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalPersonTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddSystemTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("system", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalSystemTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_system", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -!unquoted procedure UpdateEnterpriseBoundaryStyle($bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $shadowing="", $shape="", $type="Enterprise", $legendText="", $borderStyle="", $borderThickness="") - UpdateBoundaryStyle("enterprise", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure UpdateSystemBoundaryStyle($bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $shadowing="", $shape="", $type="System", $legendText="", $borderStyle="", $borderThickness="") - UpdateBoundaryStyle("system", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness) -!endprocedure - -' Sprites -' ################################## - -sprite $person [48x48/16] { -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -0000000000000000000049BCCA7200000000000000000000 -0000000000000000006EFFFFFFFFB3000000000000000000 -00000000000000001CFFFFFFFFFFFF700000000000000000 -0000000000000001EFFFFFFFFFFFFFF80000000000000000 -000000000000000CFFFFFFFFFFFFFFFF6000000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -00000000000001FFFFFFFFFFFFFFFFFFF900000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000 -0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000 -0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000 -0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000 -00000000000000EFFFFFFFFFFFFFFFFFF800000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -000000000000000BFFFFFFFFFFFFFFFF5000000000000000 -0000000000000001DFFFFFFFFFFFFFF70000000000000000 -00000000000000000BFFFFFFFFFFFF500000000000000000 -0000000000000000005DFFFFFFFFA1000000000000000000 -0000000000000000000037ABB96100000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000025788300000000005886410000000000000 -000000000007DFFFFFFD9643347BFFFFFFFB400000000000 -0000000004EFFFFFFFFFFFFFFFFFFFFFFFFFFB1000000000 -000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD200000000 -00000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE10000000 -0000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000000 -000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000 -000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000 -000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF200000 -00000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000 -00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000 -00000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000 -000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000 -0000008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3000000 -000000014555555555555555555555555555555300000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -} - -sprite $person2 [48x48/16] { -0000000000000000000049BCCA7200000000000000000000 -0000000000000000006EFFFFFFFFB3000000000000000000 -00000000000000001CFFFFFFFFFFFF700000000000000000 -0000000000000001EFFFFFFFFFFFFFF80000000000000000 -000000000000000CFFFFFFFFFFFFFFFF6000000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -00000000000001FFFFFFFFFFFFFFFFFFF900000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000 -0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000 -0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000 -0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000 -00000000000000EFFFFFFFFFFFFFFFFFF800000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -000000000000000BFFFFFFFFFFFFFFFF5000000000000000 -0000000000000001DFFFFFFFFFFFFFF70000000000000000 -00000000000000000BFFFFFFFFFFFF500000000000000000 -0000000000000000005DFFFFFFFFA1000000000000000000 -0000000000000000000037ABB96100000000000000000000 -000000000002578888300000000005888864100000000000 -0000000007DFFFFFFFFD9643347BFFFFFFFFFB4000000000 -00000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB10000000 -0000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2000000 -000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000 -00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -0000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000 -0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000 -0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2000 -000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000 -000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000 -000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000 -0009FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF2000 -0003FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFD0000 -0000BFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF50000 -00003FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFB00000 -000006FFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFE100000 -0000007FFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFD2000000 -00000004EFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFB10000000 -0000000007DF8FFFFFFFFFFFFFFFFFFFFFF8FB4000000000 -000000000002578888888888888888888864100000000000 -} - -sprite $robot [48x48/16] { -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000005BFFFFFFFFFFFFFFFFFFFFFE9100000000000 -0000000000AFFFFFFFFFFFFFFFFFFFFFFFFFE30000000000 -0000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFE1000000000 -000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000 -000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000699405FFFFFFC427FFFFFFFFFC427FFFFFFE009982000 -008FFF705FFFFFE10006FFFFFFFE00007FFFFFE00FFFF100 -00CFFF705FFFFFA00001FFFFFFF900002FFFFFE00FFFF500 -00DFFF705FFFFFB00002FFFFFFFA00003FFFFFE00FFFF500 -00DFFF705FFFFFF4000AFFFFFFFF3000BFFFFFE00FFFF500 -00DFFF705FFFFFFFA8DFFFFFFFFFFA8DFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00CFFF705FFFFFF87777777777777777CFFFFFE00FFFF500 -008FFF705FFFFFF100000000000000009FFFFFE00FFFF100 -000699405FFFFFF76666666666666666CFFFFFE009982000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000000 -000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFFF7000000000 -0000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFD0000000000 -00000000004CFFFFFFFFFFFFFFFFFFFFFFFF910000000000 -000000000000011111111111111111111110000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -} - -sprite $robot2 [48x48/16] { -000000000000000088888888888888880000000000000000 -000000000000000AFFFFFFFFFFFFFFFFA000000000000000 -00000000000000CFFFFFFFFFFFFFFFFFFC00000000000000 -00000000000004EFFFFFFFFFFFFFFFFFFE40000000000000 -0000000000000AFFFFFFFFFFFFFFFFFFFFA0000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000888FFFFFFFFFFFFFFFFFFFF88800000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000000888FFFFFFFFFFFFFFFFFFFF88800000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000004CFFFFFFFFFFFFFFFFFFC40000000000000 -000000488888848CFFFFFFFFFFFFFFFFC848888884000000 -00000CFFFFFFFFC888888888888888888CFFFFFFFFC00000 -00008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000 -0000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0000CFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFC0000 -00008FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF80000 -00000CFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFC00000 -000000488887578888888888888888888864688884000000 -000000000000000000000000000000000000000000000000 -} - -' Layout -' ################################## - -SetDefaultLegendEntries("person\nsystem\nexternal_person\nexternal_system\nenterprise_boundary\nsystem_boundary\nboundary") - -!procedure LAYOUT_WITH_LEGEND() -hide stereotype -legend right -|**Legend** | -|<$PERSON_BG_COLOR> person | -|<$SYSTEM_BG_COLOR> system| -|<$EXTERNAL_PERSON_BG_COLOR> external person | -|<$EXTERNAL_SYSTEM_BG_COLOR> external system | -endlegend -!endprocedure - -!global $defaultPersonSprite = "person" -!$dummy = $restoreEmpty("person", "sprite", $defaultPersonSprite, %true()) -UpdateElementStyle("person") -' workaround of plantuml.jar bug - person overwrites external_person setting -!$dummy = $restoreEmpty("external_person", "sprite", $defaultPersonSprite, %true()) -UpdateElementStyle("external_person") -!global $portraitPerson = "false" - -!procedure $clearPersonRestore() - !$dummy = $clearRestore("person", "sprite") - !$dummy = $clearRestore("person", "legendSprite") - %set_variable_value("$" + "person" + "ElementTagSprite", "") - UpdateElementStyle("person") - ' workaround of plantuml.jar bug - person overwrites external_person setting - !$dummy = $clearRestore("external_person", "sprite") - !$dummy = $clearRestore("external_person", "legendSprite") - %set_variable_value("$" + "external_person" + "ElementTagSprite", "") - UpdateElementStyle("external_person") -!endprocedure - -!procedure HIDE_PERSON_SPRITE() - !$defaultPersonSprite = "" - !$portraitPerson = "false" - $clearPersonRestore() -!endprocedure - -!unquoted procedure SHOW_PERSON_SPRITE($sprite="") - !if ($sprite == "") - !$defaultPersonSprite = "person" - !else - !$defaultPersonSprite = $sprite - !endif - !$dummy = $restoreEmpty("person", "sprite", $defaultPersonSprite, %true()) - UpdateElementStyle("person") - ' workaround of plantuml.jar bug - person overwrites external_person setting - !$dummy = $restoreEmpty("external_person", "sprite", $defaultPersonSprite, %true()) - UpdateElementStyle("external_person") - !$portraitPerson = "false" -!endprocedure - -!unquoted procedure SHOW_PERSON_PORTRAIT() - !$defaultPersonSprite = "" - !$portraitPerson = "portrait" - $clearPersonRestore() -!endprocedure - -!unquoted procedure SHOW_PERSON_OUTLINE() - !$defaultPersonSprite = "" - !$portraitPerson = "outline" - $clearPersonRestore() -!endprocedure - -' Elements -' ################################## - -!function $getPerson($label, $type, $descr, $sprite) - !if ($sprite == "") && ($defaultPersonSprite != "") - !$sprite = $defaultPersonSprite - !endif - !return $getElementBase($label, $type, $descr, $sprite) -!endfunction - -!unquoted procedure Person($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "person") -' $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "person") -!if ($portraitPerson == "portrait") && ($sprite == "") -actor "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link) -!elseif ($portraitPerson == "outline") && ($sprite == "") -person "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link) -!else -rectangle "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link) -!endif -!endprocedure - -!unquoted procedure Person_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "external_person") -' $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "external_person") -!if ($portraitPerson == "portrait") && ($sprite == "") -actor "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link) -!elseif ($portraitPerson == "outline") && ($sprite == "") -person "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link) -!else -rectangle "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link) -!endif -!endprocedure - -!unquoted procedure System($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getElementLine($baseShape, "system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("database", "system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("queue", "system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure System_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getElementLine($baseShape , "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("database", "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("queue", "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -' Boundaries -' ################################## - -!unquoted procedure Enterprise_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+enterprise' - !else - !$allTags = 'enterprise' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -!unquoted procedure System_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+system' - !else - !$allTags = 'system' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure diff --git a/src/C4Sharp/Resources/C4_Deployment.puml b/src/C4Sharp/Resources/C4_Deployment.puml deleted file mode 100644 index afc9945..0000000 --- a/src/C4Sharp/Resources/C4_Deployment.puml +++ /dev/null @@ -1,140 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Container.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml -!endif - -' Colors -' ################################## - -!$NODE_FONT_COLOR ?= "#000000" -!$NODE_BG_COLOR ?= "#FFFFFF" -!$NODE_BORDER_COLOR ?= "#A2A2A2" - -' Styling -' ################################## - -' PlantUML supports no automatic line breaks of "PlantUML containers" (C4 Deployment_Node is a "PlantUML container") -' therefore (Deployment_)Node() implements an automatic line break based on spaces (like in all other objects). -' If a $type contains \n then these are used (and no automatic space based line breaks are done) -' $NODE_TYPE_MAX_CHAR_WIDTH defines the automatic line break position -!$NODE_TYPE_MAX_CHAR_WIDTH ?= 35 -!$NODE_DESCR_MAX_CHAR_WIDTH ?= 32 - -UpdateElementStyle("node", $bgColor=$NODE_BG_COLOR, $fontColor=$NODE_FONT_COLOR, $borderColor=$NODE_BORDER_COLOR, false) -skinparam rectangle<> { - FontStyle normal -} - -' shortcuts with default colors -' node specific: $techn is only used in old scripts, new scripts uses $type ($techn has to remain, it could be called via named argument) -!unquoted procedure AddNodeTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $type="", $legendText="", $legendSprite="", $techn="", $borderStyle="", $borderThickness="") - !$type=$type+$techn - $addElementTagInclReuse("node", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -' Layout -' ################################## - -' comment if node should not be added to legend. No calculated legend extension required -SetDefaultLegendEntries("person\nsystem\ncontainer\nexternal_person\nexternal_system\nexternal_container\nnode\nenterprise_boundary\nsystem_boundary\ncontainer_boundary\nboundary") - -' Line breaks -' ################################## - -' $breakTechn() in C4 supports //...//; $breakNode() in C4_Deployment supports no //....// -!unquoted function $breakNode($text, $widthStr) - !$usedNewLine = '\n' - !return $breakText($text, $usedNewLine, $widthStr) -!endfunction - -' Elements -' ################################## - -!function $getNode($label, $type, $descr, $sprite) - !$nodeText = "" - !if ($sprite != "") - !$nodeText = $nodeText + $getSprite($sprite) + '\n' - !endif - !$nodeText = $nodeText + '== ' + $breakText($label, "\n== ") - !if ($type != "") - !$nodeText = $nodeText + '\n[' + $breakNode($type, $NODE_TYPE_MAX_CHAR_WIDTH) + ']' - !endif - !if ($descr != "") - !$nodeText = $nodeText + '\n\n' + $breakDescr($descr, $NODE_DESCR_MAX_CHAR_WIDTH) - !endif - !return $nodeText -!endfunction - -!function $getNode_L($label, $type, $descr, $sprite) - !$nodeText = "" - !if ($sprite != "") - !$nodeText = $nodeText + $getSprite($sprite) + '\l' - !endif - !$nodeText = $nodeText + '== ' + $breakText($label, "\l== ") - !if ($type != "") - !$nodeText = $nodeText + '\l[' + $breakNode($type, $NODE_TYPE_MAX_CHAR_WIDTH) + ']' - !endif - !if ($descr != "") - !$nodeText = $nodeText + '\l\l' + $breakDescr($descr, $NODE_DESCR_MAX_CHAR_WIDTH) - !endif - !return $nodeText -!endfunction - -!function $getNode_R($label, $type, $descr, $sprite) - !$nodeText = "" - !if ($sprite != "") - !$nodeText = $nodeText + $getSprite($sprite) + '\r' - !endif - !$nodeText = $nodeText + '== ' + $breakText($label, "\r== ") - !if ($type != "") - !$nodeText = $nodeText + '\r[' + $breakNode($type, $NODE_TYPE_MAX_CHAR_WIDTH) + ']' - !endif - !if ($descr != "") - !$nodeText = $nodeText + '\r\r' + $breakDescr($descr, $NODE_DESCR_MAX_CHAR_WIDTH) - !endif - !return $nodeText -!endfunction - -!unquoted procedure Deployment_Node($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode($label, $type, $descr, $sprite)$getProps()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Deployment_Node_L($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_L($label, $type, $descr, $sprite)$getProps_L()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Deployment_Node_R($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_R($label, $type, $descr, $sprite)$getProps_R()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Node($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode($label, $type, $descr, $sprite)$getProps()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Node_L($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_L($label, $type, $descr, $sprite)$getProps_L()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Node_R($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_R($label, $type, $descr, $sprite)$getProps_R()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure diff --git a/src/C4Sharp/Resources/C4_Dynamic.puml b/src/C4Sharp/Resources/C4_Dynamic.puml deleted file mode 100644 index f12cb86..0000000 --- a/src/C4Sharp/Resources/C4_Dynamic.puml +++ /dev/null @@ -1,165 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Component.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml -!endif - -' Scope: Interactions in an enterprise, software system or container. -' Primary and supporting elements: Depends on the diagram scope - -' enterprise - people and software systems Related to the enterprise in scope -' software system - see system context or container diagrams, -' container - see component diagram. -' Intended audience: Technical and non-technical people, inside and outside of the software development team. - -' Dynamic diagram introduces (automatically) numbered interactions: -' (lowercase) increment($offset=1): increase current index (procedure which has no direct output) -' (lowercase) setIndex($new_index): set the new index (procedure which has no direct output) -' -' (Uppercase) LastIndex(): return the last used index (function which can be used as argument) -' (Uppercase) Index($offset=1): returns current index and calculates next index (function which can be used as argument) -' (Uppercase) SetIndex($new_index): returns new set index and calculates next index (function which can be used as argument) - -' Relationship override -' ################################## - -' Relationship -' ################################## - -!unquoted procedure Rel_($e_index, $alias1, $alias2, $label, $direction) -$getRel($direction, $alias1, $alias2, $e_index + ": " + $label, "", "", "", "", "") -!endprocedure -!unquoted procedure Rel_($e_index, $alias1, $alias2, $label, $techn, $direction) -$getRel($direction, $alias1, $alias2, $e_index + ": " + $label, $techn, "", "", "", "") -!endprocedure - -' all RelIndex... calls are outdated, Rel(..., $index=...) calls should be used !!!! - -' first Rel() supports the $index argument too; second Rel() overwrites C4.puml definition -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel("-->>", $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("-->>", $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Back($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel("<<--", $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Back($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_Back($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex_Back($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<--", $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel("->>", $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_Neighbor($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex_Neighbor($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("->>", $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Back_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel("<<-", $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Back_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_Back_Neighbor($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex_Back_Neighbor($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<-", $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_D($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($down("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_D($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_D($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure Rel_Down($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($down("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Down($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_Down($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex_D($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure RelIndex_Down($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_U($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($up("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_U($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_U($from, $to, $label, $techn, $descr, $sprite, $tags, $link=, "") -!endprocedure -!unquoted procedure Rel_Up($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($up("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Up($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_Up($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex_U($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure RelIndex_Up($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_L($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($left("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_L($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_L($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure Rel_Left($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($left("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Left($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_Left($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex_L($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure RelIndex_Left($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_R($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($right("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_R($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_R($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure Rel_Right($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="") -!$pre = $getPrefix($index) -$getRel($right("-","->>"), $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Right($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel_Right($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "") -!endprocedure -!unquoted procedure RelIndex_R($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure RelIndex_Right($e_index, $from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("-","->>"), $from, $to, $e_index + ": " + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure diff --git a/src/C4Sharp/Resources/C4_Sequence.puml b/src/C4Sharp/Resources/C4_Sequence.puml deleted file mode 100644 index ee40694..0000000 --- a/src/C4Sharp/Resources/C4_Sequence.puml +++ /dev/null @@ -1,398 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Component.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml -!endif - -' Scope: Interactions in an enterprise, software system or container. -' Primary and supporting elements: Depends on the diagram scope - -' enterprise - people and software systems Related to the enterprise in scope -' software system - see system context or container diagrams, -' container - see component diagram. -' Intended audience: Technical and non-technical people, inside and outside of the software development team. - -' Sequence diagram introduces (automatically) numbered interactions: -' (lowercase) increment($offset=1): increase current index (procedure which has no direct output) -' (lowercase) setIndex($new_index): set the new index (procedure which has no direct output) -' -' (Uppercase) LastIndex(): return the last used index (function which can be used as argument) -' (Uppercase) Index($offset=1): returns current index and calculates next index (function which can be used as argument) -' (Uppercase) SetIndex($new_index): returns new set index and calculates next index (function which can be used as argument) - -' enables multi-level boxes -!pragma teoz true - - -' Legend redefintion -' ################################## -' sequence has no dashed boxes -!if ($LEGEND_DASHED_BOUNDARY == "dashed") - !$LEGEND_DASHED_BOUNDARY = "" -!endif -!if ($LEGEND_DASHED_TRANSPARENT_BOUNDARY == "dashed") - !$LEGEND_DASHED_TRANSPARENT_BOUNDARY = "" -!endif -UpdateBoundaryStyle("", $bgColor=$BOUNDARY_BG_COLOR, $fontColor=$BOUNDARY_COLOR, $borderColor=$BOUNDARY_COLOR) -UpdateBoundaryStyle("enterprise", $bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $type="Enterprise") -UpdateBoundaryStyle("system", $bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $type="System") -UpdateBoundaryStyle("container", $bgColor=$CONTAINER_BOUNDARY_BG_COLOR, $fontColor=$CONTAINER_BOUNDARY_COLOR, $borderColor=$CONTAINER_BOUNDARY_COLOR, $type="Container") - -' Styling and Layout -' ################################## - -!global $display_element_description = %false() - -' typically the element/participant descriptions are not displayed in a sequence diagram, but it can be activated with this call -!unquoted procedure SHOW_ELEMENT_DESCRIPTIONS($show="true") -!if ($show == "true") - !global $display_element_description = %true() -!else - !global $display_element_description = %false() -!endif -!endprocedure - -' typically the foot boxes descriptions are not displayed in a sequence diagram, but it can be activated with this call -!unquoted procedure SHOW_FOOT_BOXES($show="true") -!if ($show == "true") - show footbox -!else - hide footbox -!endif -!endprocedure - -!global $show_index = %false() -' All relation specific (default) ordinary index numbers can be shown with this call -!unquoted procedure SHOW_INDEX($show="true") -!if ($show == "true") - !global $show_index = %true() -!else - !global $show_index = %false() -!endif -!endprocedure - -' ======= if no theme is defined hide foot box and activate C4_blue styles -!if (%variable_exists("$THEME")) -!else -' $BOUNDARY_BG_COLOR... have to be defined in theme itself that it can be used in styles,... -' (no default values which are defined in C4.puml) -' If skinparams and styles are defined with concrete values no variables are required -!$BOUNDARY_BG_COLOR ?= "transparent" -!$BOUNDARY_COLOR ?= "#444444" -!$ARROW_COLOR ?= "#666666" - -' replace transparent with concrete background that it can be used as font color too -!if ($BOUNDARY_BG_COLOR == "transparent") - !$SEQUENCE_BG_COLOR = white -!else - !$SEQUENCE_BG_COLOR = $BOUNDARY_BG_COLOR -!endif - -' "C4 styled" default is no foot boxes -hide footbox -' "C4 styled" default is that lifeline is arrow color -skinparam SequenceLifelineBorderColor $ARROW_COLOR - -skinparam SequenceGroupBodyBackgroundColor $SEQUENCE_BG_COLOR -skinparam SequenceGroupFontColor $BOUNDARY_COLOR -skinparam SequenceGroupBackgroundColor $BOUNDARY_COLOR -skinparam SequenceGroupHeaderFontColor $SEQUENCE_BG_COLOR -skinparam SequenceGroupBorderColor $BOUNDARY_COLOR - -skinparam SequenceReferenceBackgroundColor $SEQUENCE_BG_COLOR -skinparam SequenceReferenceFontColor $BOUNDARY_COLOR -skinparam SequenceReferenceHeaderBackgroundColor $BOUNDARY_COLOR -' VIA STYLE -' skinparam SequenceReferenceHeaderFontColor $SEQUENCE_BG_COLOR - -skinparam SequenceReferenceBorderColor $BOUNDARY_COLOR - -skinparam SequenceDividerBackgroundColor $SEQUENCE_BG_COLOR -skinparam SequenceDividerFontColor $BOUNDARY_COLOR -skinparam SequenceDividerBorderColor $BOUNDARY_COLOR - -' VIA STYLE -' skinparam SequenceDelayFontColor green - -!endif -' ======= if no theme is defined hide foot box and activate C4_blue styles - -' Elements redefinition -' ################################## - -' all elements have to be displayed as participant -' participants requires ` %newline()` instead of `\n` - -!unquoted function $breakWithNewline($text, $lineEnd, $lineStart, $widthStr="-1") -!$width = %intval($widthStr) -!$multiLine = "" -!if (%strpos($text, "\n") >= 0) - !while (%strpos($text, "\n") >= 0) - !$brPos = %strpos($text, "\n") - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $lineEnd + %newline() + $lineStart - !else - ' non breaking change that newLine breaks with formats can be used with \n\n - !$multiLine = $multiLine + "" + $lineEnd + %newline() + $lineStart - !endif - !$text = %substr($text, $brPos+2) - !if (%strlen($text) == 0) - !$text = "" - !endif - !endwhile -!else - !while ($width>0 && %strlen($text) > $width) - !$brPos = $width - !while ($brPos > 0 && %substr($text, $brPos, 1) != ' ') - !$brPos = $brPos - 1 - !endwhile - - !if ($brPos < 1) - !$brPos = %strpos($text, " ") - !else - !endif - - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $lineEnd + %newline() + $lineStart - !$text = %substr($text, $brPos + 1) - !else - !$multiLine = $multiLine+ $text - !$text = "" - !endif - !endwhile -!endif -!if (%strlen($text) > 0) - !$multiLine = $multiLine + $text -!endif -!return $multiLine -!endfunction - -!unquoted function $breakNewLineLabel($text) -!$multiLine = $breakWithNewline($text, "", "==") -!return $multiLine -!endfunction - -!unquoted function $breakNewLineDescr($text) - !return $breakWithNewline($text, "", "", $REL_DESCR_MAX_CHAR_WIDTH) -!endfunction - -!unquoted function $breakNewLineTechn($text) - !$lineStart = "//" - !$lineEnd = '//' - !return $breakWithNewline($text, $lineStart, $lineEnd, $REL_TECHN_MAX_CHAR_WIDTH) -!endfunction - -' description is not displayed (size too big, line breaks not supported) -' properties are not displayed in sequence diagram (size would be too big) -' $breakLabel() not required by participant -!procedure $getParticipant($elementType, $alias, $label, $techn, $descr, $sprite, $tags, $link) - !$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", $elementType) - !$techn=$toElementArg($techn, $tags, "ElementTagTechn", $elementType) - !$stereo = $toStereos($elementType,$tags) - !$calcLabel = "== " + $breakNewLineLabel($label) - !$calcTech = "//[" + $breakNewLineTechn($techn) + "]//" - !$calcDescr = $breakNewLineDescr($descr) - !$calcLink = $getLink($link) - -participant $alias $stereo $calcLink [ -!if ($sprite != "") -$getSprite($sprite) -!endif -!if ($label != "") -$calcLabel -!endif -!if ($techn != "") -$calcTech -!endif -!if ($display_element_description == %true() && $descr != "") - -$calcDescr -!endif -] -!endprocedure - - -!unquoted procedure Person($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("person", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Person_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("external_person", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure System($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getParticipant("system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure System_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getParticipant("external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - - - -!unquoted procedure Container($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Container_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - - - -!unquoted procedure Component($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Component_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - - -' Boundary redefinition -' ################################## - -' all boundaries have to be displayed as box and -' !!! important changes: without { at the end; and boundary ends with Boundary_End() instead of } - -' alias ignored -' $breakLabel() not required by participant - -!unquoted procedure Boundary($alias, $label, $type="", $tags="", $link="") -!$boundaryTags = $addBoundaryPostfix($tags) -' nodes $type reuses $techn definition of $boundaryTags -!$type=$toElementArg($type, $boundaryTags, "ElementTagTechn", "boundary") -!if ($link != "") - !$usedNewLine = ']]\n== [[' + $link + ' ' - !$labelType = '== [[' + $link + ' ' + $breakText($label, $usedNewLine) + ']]' -!else - !$usedNewLine = '\n== ' - !$labelType = $breakText($label, $usedNewLine) -!endif -!if (type != "") - !$labelType = $labelType + '\n[' + $type + ']' -!endif -box "$labelType" $toStereos("boundary", $boundaryTags) -!endprocedure - -!procedure Boundary_End() -end box -!endprocedure - -!unquoted procedure Enterprise_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+enterprise' - !else - !$allTags = 'enterprise' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -!unquoted procedure System_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+system' - !else - !$allTags = 'system' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -!unquoted procedure Container_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+container' - !else - !$allTags = 'container' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -' Relationship (redefinition) -' ################################## - -' only Rel is supported in sequence diagram - -' first Rel() supports the $index and $rel argument too; second Rel() overwrites C4.puml definition -' don't add empty lines in procedure otherwise & calls are not working anymore '& a -> b: call' are not working anymore -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="", $rel="") - !if ($show_index == %true()) - !$pre = $getPrefix($index) - !else - !$pre = "" - !endif - !if ($rel == "") - !$rel = "->" - !endif -$getRel($rel, $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "", "") -!endprocedure \ No newline at end of file From 7926dc22713f36bb61c055dc7c6a5134aead8c75 Mon Sep 17 00:00:00 2001 From: yanjustino Date: Fri, 18 Jul 2025 22:41:49 -0300 Subject: [PATCH 3/4] Remove unused container definitions and clean up style properties for better maintainability --- samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs | 2 +- src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs | 1 - src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs | 1 - src/C4Sharp/Elements/Container.cs | 1 - 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs b/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs index 24154a2..b44b100 100644 --- a/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/ContainerDiagramSample.cs @@ -30,7 +30,7 @@ public class ContainerDiagramSample : ContainerDiagram ), Bound("c1", "Internet Banking", - Container.Undefined | ( + Container.None | ( type: WebApplication, alias: "WebApp", label: "WebApp", diff --git a/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs b/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs index d487112..0e1718a 100644 --- a/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs +++ b/src/C4Sharp/Diagrams/Plantuml/PlantumlContext.cs @@ -199,7 +199,6 @@ private void SaveDiagramFiles(string path, string generatedImageFormat) { try { - //PlantumlResources.LoadResources(path); PlantumlJarPath ??= PlantumlResources.LoadPlantumlJar(); var directory = new DirectoryInfo(path).FullName; diff --git a/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs b/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs index 5a6350e..b2e8f2f 100644 --- a/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs +++ b/src/C4Sharp/Diagrams/Plantuml/Style/ElementStyle.cs @@ -26,7 +26,6 @@ public ElementStyle UpdateElementStyle(ElementName elementName, string? bgColor { string?[] styles = [ - $"$elementName={elementName.Name}", bgColor is not null ? $"$bgColor={bgColor}" : null, fontColor is not null ? $"$fontColor={fontColor}" : null, borderColor is not null ? $"$borderColor={borderColor}" : null, diff --git a/src/C4Sharp/Elements/Container.cs b/src/C4Sharp/Elements/Container.cs index 6ae925d..c6b6ae6 100644 --- a/src/C4Sharp/Elements/Container.cs +++ b/src/C4Sharp/Elements/Container.cs @@ -24,7 +24,6 @@ public record Container : Structure public Container this[string instanceName] => GetInstance(instanceName); public static Container None => new("None", "None", ContainerType.None, "None"); - public static Container Undefined => new("None", "None", ContainerType.None, "None"); public Container(string alias, string label) : base(alias, label) From c3be9e863025a55fc108debcfd5c7536f8011b4a Mon Sep 17 00:00:00 2001 From: yanjustino Date: Fri, 18 Jul 2025 22:52:56 -0300 Subject: [PATCH 4/4] Refactor ElementName and DiagramConstants for improved structure and clarity --- src/C4Sharp/Diagrams/DiagramConstants.cs | 2 +- src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/C4Sharp/Diagrams/DiagramConstants.cs b/src/C4Sharp/Diagrams/DiagramConstants.cs index 389e881..087ef32 100644 --- a/src/C4Sharp/Diagrams/DiagramConstants.cs +++ b/src/C4Sharp/Diagrams/DiagramConstants.cs @@ -1,6 +1,6 @@ namespace C4Sharp.Diagrams; -public readonly struct DiagramConstants +public static class DiagramConstants { public const string Component = "C4_Component"; public const string Container = "C4_Container"; diff --git a/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs b/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs index 722a69e..13e0c91 100644 --- a/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs +++ b/src/C4Sharp/Diagrams/Plantuml/Constants/ElementName.cs @@ -1,6 +1,6 @@ namespace C4Sharp.Diagrams.Plantuml.Constants; -public readonly record struct ElementName(string Name) +public record struct ElementName(string Name) { public static ElementName Person => new("person"); public static ElementName ExternalPerson => new("external_person");

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 SaRGG%{ORc!YZqzRhx`v24Vpp# diff --git a/docs/images/internet-banking-system-api-application-c4component.puml b/docs/images/internet-banking-system-api-application-c4component.puml deleted file mode 100644 index 7302226..0000000 --- a/docs/images/internet-banking-system-api-application-c4component.puml +++ /dev/null @@ -1,39 +0,0 @@ -@startuml internet-banking-system-api-application-c4component -!include ../.c4s/C4_Component.puml - -UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -SHOW_PERSON_PORTRAIT() -LAYOUT_LEFT_RIGHT() - -title Internet Banking System API Application - -Container(MobileApp, "MobileApp", "Mobile:C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device") -ContainerDb(Database, "SqlDatabase", "Database:SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.") -System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") - -Container_Boundary(c1, "API Application") { - Component(sign, "Sign In Controller", "MVC Controller", "Allows users to sign in to the internet banking system") - Component(accounts, "Accounts Summary Controller", "MVC Controller", "Provides customers with a summary of their bank accounts") - Component(security, "Security Component", "Spring Bean", "Provides functionality related to singing in, changing passwords, etc.") - Component(mbsfacade, "Mainframe Banking System Facade", "Spring Bean", "A facade onto the mainframe banking system.") -} - - -Rel(sign, security, "uses") -Rel(accounts, mbsfacade, "uses") -Rel(security, Database, "Read & write to", "JDBC") -Rel(mbsfacade, Mainframe, "Uses", "XML/HTTPS") -Rel(Spa, sign, "Uses", "JSON/HTTPS") -Rel(Spa, accounts, "Uses", "JSON/HTTPS") -Rel(MobileApp, sign, "Uses", "JSON/HTTPS") -Rel(MobileApp, accounts, "Uses", "JSON/HTTPS") -@enduml diff --git a/docs/images/internet-banking-system-api-application-c4component.svg b/docs/images/internet-banking-system-api-application-c4component.svg deleted file mode 100644 index 83f3a83..0000000 --- a/docs/images/internet-banking-system-api-application-c4component.svg +++ /dev/null @@ -1 +0,0 @@ -Internet Banking System API Application«container_boundary»«boundary»API Application[Container]«container»MobileApp[Mobile:C#, Xamarin] Provides a limited subset ofthe Internet bankingfunctionality to customersvia their mobile device«container»SqlDatabase[Database:SQL Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«external_system»Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.Spa«component»Sign In Controller[MVC Controller] Allows users to sign in to theinternet banking system«component»Accounts SummaryController[MVC Controller] Provides customers with asummary of their bankaccounts«component»Security Component[Spring Bean] Provides functionality relatedto singing in, changingpasswords, etc.«component»Mainframe BankingSystem Facade[Spring Bean] A facade onto the mainframebanking system.usesusesRead & write to[JDBC]Uses[XML/HTTPS]Uses[JSON/HTTPS]Uses[JSON/HTTPS]Uses[JSON/HTTPS]Uses[JSON/HTTPS] \ No newline at end of file diff --git a/docs/images/sequence-diagram-for-internet-banking-system-c4sequence.png b/docs/images/sequence-diagram-for-internet-banking-system-c4sequence.png deleted file mode 100644 index 70b28f90a3c95d5d71e18353b84c5031ea3caed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36394 zcmc$_WmFvR);)*>2=4A4AVEUo?iSqL-Q6KT&;Y>+?oM!b*Iee==}hUh6Q~vbpO$lY=$x zH;d@Tb(lWMc)epV?1CC@Tj;~lOh{pmy^);Yii?i^=IU|mmAd`OjK*QpA9oVGdAKl1 z6V1-!Ta}^Qdzo!4bncR`xsGJ*bj06GlAdw&tE%auvN=!IjDWeG)_W7u9hPql{LLRf z$&PUVEj=S6D`#t8`q&T8V0^DwNa)^{e~y=vc@s%%ZPNSm=4N-zYY^sz6-d!$+O5L> zuo0HH-tqFNyP=J&jJ!T=b$qxi_B1jle#oV0X~9p_q!N_`G#w1*H%FwmzJzFvG+6Uu z9QMY~i@8-;kj!N^5~z`LMTe5{2pZ5ij0r^3K;@=SjKj{$>#KIq*xvojO4F|up) zU`RBl<@>EZJXEUsk_eW8v490d0{8*Lz08EM-0|cZQ=RZV-cQY)fihD3)~p`wAPU-6 zgUle={4aX%h1&4Ohj1k zbq0ZV-GT5syMgc_epv{C7*v7n1Q7F^ z3x$XB-9h9>pZfNu)nQhI=Vg58Q)sM+KI(iybaZhf4hi;;g2z_h#g`TAmKE~dG%&>O z*$8=OQmo0c+JEDWC=0qAAcu=&F2~H4XR{7``)OVA6b2jb4V7JF43!gj1~+#fqoV8Y zQhcW<<2yDjPC%kpwqE({_N*rK6E5TtYaEnSX3pbKg0j&SzUdXMPv9s-X}$O62UVEL zBc@UhqZGRf;|t{i7yT#8LNp6Pc0RTrvXD;`9Y5?IUc_S;&iLXXt+tP<5y(VN#8ON9B-Gp zhx37jw7|W7m{@^nKObQ)305zQXJnx~U!h$79{4y#3#VmFwo!gJU5m~g0-rd*)+ zA91k-K?gMq(6|f|SS||k77H_NezuQz!vRZa92@?xLkW0O1_&BeMXV+w|jTAA{MZ9pbrv`Y7X&Y=8$xbVL^(3%b58SpC#g=OOZU* zbytN5s>nOc(jxNT+EPWg_%SIqK&0MvcBE*KnHz03vtZ~Wh)S&^uJ^!MykGSoMX&u9 zGGC36dP(jl;*7aCZF)t=y0!o4+3wpDwLine!l~sqV$z}X5qeOGlh6BhtT!wEiKaT; z{K;%{Voe1@MPwpBI&pKkQLYEu)8uV|Be6?37F1KNIM6l`ScLaumVGZ1m!}80pex^@ zm$r^^1q}g7mY@HrifhG!-psGb5L=UiCNC-yEY4PdU%Z*DN1VM3t{C9pK@x%L#PAR>2CHM(nLAV;79xvdTB?RlGN+DFRvz}baO`9l_cVWI$=2q=Is38 z?0(lz=(K6T-V&f%LGhH~A6&tE)cV$->$!4w+24kt+L?8Jkx1K>*>R?BhI(;1Ciu3< z9_WeIhEP%cJcZ$3*LNkp&y?T)J+OpGu#A==V#apwoeQj0%+4s$*N|L{k~DY=q!|s2 zT8M~L$qW}k4oy8(Ld&nPx_YMtklaXLQ(7BR{~WEt;K3&pjD0T5w<@9uBP44t`L&cjX zWi9$VoXR&gpQ8rKg_1@}pK34a+gFf$UnmuCu#0@3eS;KK1S6a$QSd@sQZHtA2{F_q z8=40tUd$-)0UyH2lY-L~N^tG+RR`m;VvBS588RO^n6YB6czcc$PtlE)3-lSn*XqI) zBDWitEf$3=#GNxh3DVKOGz~sXeyZzzK17_jfu-3T6rLGuQCAGLa!(BUYl86)n;)Um zB?MLKf@!wfaD2B2LvAifF)}!0wz7oGZrg_qGWn3dRK5yBFO_`tQ|vO}5iFXw4u&Y0 z)hV&QfrGmCGBS{?HaviZ(Dx^=XP+m2y^RAW}A`oI+V9WY5 zo#4yF1P<}`OynI5_s=9BzT8!5@pZXjl#xN>=KR)d@Ec7#pWW^_zBnjAU-u-t0slOw z-0||XT9qEB0j#WU+C#Fuhnk#RA>0C|QRORfR|IC*5On=kWBFq2wnM&zC#1nPNpVHk4 zQdu6-!!rsWmx*b6JJD39tvIrFKHl+K>9d@k*zJUux(hLXElQSV=tOz1`P?RJ*{jhh zH^{f(!+g%6d(jbaNSxZ?$J>c}cC-EP_{ZnPql5n1)04Mz%}d?!hf-GL3@zo&uw?(W z{{I~Meg@876rVqu0cK@j@6sZln$J|imYk8fGojz ziBs=+A0shRd=dA^?Wy1D;n9ws?&0XaBam(85;!HldE=?TE1T*AzKc4C4Vvd(4BGOf zLbW#g^S<9TuV(3;adnfig_S&=@+)o0S0lQ9Md`O1OA#xM)(k3YisYktKkG?F!a5iV z=7eRuTJFZt5h4> z%9|_B4*j9I>FbX9A{0#zQBvo4`Le46{WDH$G%l55?1x!w^b$eQ;|NI*6TwRhg%fsk z!dShIws^E6RUIDzl_{muA&eYB-BTo|**h9G;l8sZhzixJe&LI)9eTXoLheB9?_nZU zCi_m5^FBcbT(gJuvJ|HmjJi^ao^B1KOZ_deo}#MA1qqG{H%`>6pg;u}u~p`!$?@@D z(kC;v6qu@2=8X|XD)^p_-cw@EWNuhTnk2C@;ao8@g(Du$Z~;=t7W%Idb$+zH)d&qs z!)?sX2ptJ|z_Q)}aNThkqft61=WHDbddoZgWNk9)U>Q-jCVKw2mRMt2Wtf75+IY{B zIJ?K5c!Y?S%~3_Srg*wv%8j0}(lFj`WyuvP;(BjEQA`<0v)G_%qqAXZHU2#^jBmicbm;kQx7yb%}wO`ydTv|S(tQW494d1UF15WwAVF? z?LW?N;M^w{cT_9DG=EEgA>$61pfvsCUga+OEFwcEeIKf2P4~HZ4OJ8SXqdK0byJoP z?ia$J9py3JHh7$q72OZ%50N$WTIK?dJ8A7?9wDJfmU#Q`BZD@?P>UPx77iP-LsJ`L z5-^#s<$HZwrCqQmsnOmVkncsBI$%Yh)0UyRP9K6V5xd-x61=~xa5|`!tbjT{FeLWV?N5)We1z-Z*pHE$d^*cZhRg~ziJV0(M>Z;OL_fI>t$2TNeoRr}+|Tip;lKT@X;zrVY?J1bSGFx!R~Rws!VD>~Sr zAef{7Cc7eJyO+{HdvFknK1k;FC5{m^6@e1n9b`Pw)gzWi$SXJX?#jQh4*%W!hI*>7 zzS_{-I>qWIvqG|!pOVI%zK`!a@={~&vmNK!EE>icQO^qzvwP4j>V)!~XIq+DETA85 zQ8s@3_|_|bejdYA;}y-KWpG0b?_m+N3=?MrTiKP&RmXq*hH3US;AYjq#yaHb zzIR@}3@T%;#Kyzo17{fg{iD=DFPyER*ZZ7hVe*$CbNomM2%khLQ6Uu%y%S$JkClOx2FBrnHGjHfhGrQ?MyYgXqvip} z?=o8$gKk7TxXaZOY}HgUNwei^tqU_BN@FNgKg7mKVoT?Ws!C&d+mEjCB)2QOEWYXb z$l&!rY%n(GC(YdPpZA(G+35XZN?x&5O}@cetWEZBjB)G z;pluAdw%wDg_l4hBqT&fS5#9gT-&_NPQu(sIluuG)Ihcuw@cb`qL>J>UdlaC|n9T@odi%Uxpo!)n6s<;HZ3R1mWTU#e5 zHtFRp=?sQzZJrhv`frcwH_<}fewO!7>u)5~^S`u<)>wG)s<^El09T<9bBi9DXL^e3 z4%y)y2o!k-WBO}C-(m!H;~{7ee8!t6`}h$_abHINQOU=r%}QNDVsK|T-v4=<^zBOE z?P~jnKxSH+%){8&SY^lK(Ot(~dzxL#@apP|dgtRTlmEkLNC@o7cTgY&I5;@C zGvQ*0j@^em3PCSk53mu4%n{VqP7~|w?U%m!eS|+%E(c@fDJl6LtX%j-h(K4OHS$TP z7GK)Z;}A@ZmBwlwefeRL0VxuXGX%q{vz%ky2XhyfN$=zS^DdKrx74P&lA0R3>ye7i zioM@eTGJ#P3Q^U;b)1>M7VNP-(f~3_QV7xj+t=qu|F`ou@{8wffmccwyz9_5L~hiF zu)+y}H(m_jp{(J&BX37QPzDI?$*iPvM+;m0E`mtOe2-@6@@s2qERrujOc97#e`5iC z6(*~rVf!i#CC_&=!#cqWjR@yKZ|1b~)n6|{1<2ss^t?~&D}7I`B|Bdqk5%++CfN4gSr*UlPkOq*IN}sHmX(d> zu5TI@c$wWqTBsF4Eq+6|zPR{`)C0rkyoYr9`OJCDY$$onhW)MR9hFKeEXZgBPx|1c zrmd|l=7H($lF8TCcj1ei+`!)N6xLY3t#H~Hzx&NlM^uQ=^=9WHQw7|9MSo*vJBPpU zHWL;V_44EG9yNkUfeHlW_;6`z6Mug8g z>D9n(T9!jqO%2S-ncdvXMMDz;4hRTvQbs=cV7MZg_&x?(N>~``5?wS_?#q{a5y`Nf z-Q92;yXIY-9c9Tm5Jhqu;K=2rrRSHI;rCQa0LYDZ9biM{%8j>C`Y!L!$K6t zD3;yP3g_2tu^@~JSmDI^B#;8X$RbfF^n2n_3LA57soc9oDnVQlejklB)0KTA)*ane zw^QMEiyvTTP(hAG-vW!ueV_hxcV1LAv$$x9Uijxw>fde% zVGePzwf#g4RqHY|-}&mgYY-PeOdUyBf&mF&0IBcw6o4GB(^;w6WFy-OtZ&n<`4!aa7K-*nG^%Rx;@qd9`70 zh$Hw)+Ebj^z(4|iTb$lnbf#!=nfOlJ3^`Wm+f(OT znwz3jyTY%ykQu^B98l&r{s*9TBZxj=f1e~l|KD~y#zy6f#8Zy}fQwB?+i}O!86mCi z%JsF2su;cH2Lcv1B)$*+nhPt9_N4eJT+TEY@bK^|NM{k&*OdSds(5Vmg(sXJh~aDM#o z)A9m|q0XZJ+IP_VS-{LYSU#a7Qfn{{Ct;AOgE3Psd zt{~kzT_hh*e7*nGmyum$4d(56_1up`E_GyaYKol1)Bs5C>+EM!!`j-~_&p1#AH0`g z8hA?f=`QwH!?al%-}F8oOb9&@202m&6_5uxBBRmRcfQ;LoM6A)aQYY1zN+Zyq3}t> z$9KHFoXh`YHe9SR{Y!aLSF1oaZ0Fygb-tY1cU~q|DkS7i-UG=(@e)M(ypidB7Q23M zoAQp&+KUCx@vfrvjDWTt4#9GFB$0EnD;fb7@Q26!#ik=z*r0Ef^yNT8B{CDd=6&8? z_W*F@Q`Xx<79Fx_c8!6J$z+ZeHS+G-*HlMm=hoAP<(Stodq0t&uv}?nfXojzH(BIb z0`>IthFJcOZ-xs^V#WqZyiW>}^&Z#mIymICikIi+*bTD2k13p$mY4TcOLji&rHw?u zCWPRK3@QkpCyRNndmVq`z8H$7ObC+k0k~E!gWGkz!}pp;n9w3Q57!j!b--X{=&#_> zf$k$GfWfEbi}OAzDcVVSt*@`IY`csoFM9>l0A}zfur}8R3X0EDdCQJ3rN<+Q40Uz4 zN!oTf@c!G6>K~3ZML7Ft+An3XgU}_id~Y@5ep>AK-mRJ&NWhGVZ)uFyv)$g@C}Qis zUM3gGXT45}phg}0vpK4%%>|+IhdI0+`aWn`y;! zAn7?RPe0j~X2*r#lyGEv?%^LHt6X1>GL2HImfnVCL!se}$d2(>mX-#h#>h+t$+e^4 zGO#h1nTrA>T_bhBiRvFFmlwmHC7$tfvPt$ljncQw0$r}{No12?D1DFq=J{7pg$)Ws$ z2+q)~HH(T5u}zRD$+qk}>|WKuMyg!;EA%!Pg?Ey^I1r+z2txSEgfEwAR2#Cq$}&~dH-4({p%X*U{g1X z%i!0h=f64uC@FW7x{pEK%&9$FtZ zSlPg9G4}BA*r46s-p*SC`iBa*zbNwWj=|<{^8CBKs0sjT?%(Z2FDyVV|7kA>|KGoP zzJC!BcOtX1%j9!PZ}$~0~UZLdHgUD ze+}RrP&YVcv&F#jVC&@Y6sF&Yuh86#x**@p#Vw*WESdnc5ir@?3Vp{`Uw6HvSefCH zL|phi2H02*Jg}vC7#R`uJz(*DCcPGqhY=hpzs25JI}*8n#ntKBxn4wW_%;tN>5tjN>1}PlPi)2%8@usA*-8WWGuFR# zz3)D0*B3VBC$PiWh90K=_XAR56OlKuy{_?ITPoL!eGuBlCf1#|_jYFLJ}tWmsz02s zElr8Pq&&SJKrL!hZJ}4z@Si>bE%El-Ao7 zO{53QiP5asPt{;E2lnI)_NcfW9UVgl1uBkS&RYBWynJbH9-%Q!acX!t)v2C4o!rdR zU0uCwX4Z}P%a*c0#x*f&5VU-BKU>;9tB1@D4S6&%oLR0MCab+YSw?LRxvt)(O=ty? z4x#jCcQejH?>5}JaZKDu+TSkX;JfZxEd0sMHNyH@$m@LOqhv*|lA+>F^7#r8VXn#B z=<0s>;h1w|9c%2Xg9 z9dxTeF0ykovqJE?O)kxi{(&23UA~ukVDbFW?BbY^J>@fuf=x7Jf)gdF-uxXbs-#N2 zGOjpvb$wDIj0mWGN+!ke!cW@OnmS6kH7P&SBj2&p3G9TqR$+ctWW>ZI3)8SFttzNjtsgyvMRprL z46EIbS!lNYQFD8inHfVVQG&!LM4~{@!y5a30aNk;EpXv_twC3nNp#aEDTMLMU%f^H z6q63_M`YcY3|(D@x$>*EmY0P;n4)0$8VDt;ypQp&RQAIWs#}ajgrEiLqHRo!SV7kj z#opqd8dCeGww9JTEHa6p-%KAA7O8mbUMLd`f#F}XyM9cm9ZqguGnt+{yqf+CTU7vvSi|j-b2Bx-- zmNeMmNzR`t`!;6nsI|5|FHhZzi-H|Uti-GLiEeV4+{9Two4hi3z=xWerCyo@Eu8=5 zN}sw3&6Mfs<>L-NN|1uImzRAf`%?9^e|MZ|oZT{YXOTlx5{M{5C`fmtCE;)@ z4g(|hs-T}@*wXTst*v&$(|Gb8nRq&1=$CwQdBvvux=4h|^_@>ki&dV8iveHqhl5K$ z1FlT}XC6n3kMx?w=zvb`!$8ayRii&Y*xT8tbWjvkH>a#=PERe;bwY+}*s~wEkD?{A z>uLYwiufnYY+B^+DR1XYb^)1A<1F}3z~LnD{Ntq3x9AMmwpGzR^}pOQWb!%m$A4Kv z4VaJX_W4<*51*^3sIjplCnvYmswotxO3xAO$sl7nJ(4BVq=dw9@07gQ|Nd%)&i+}4 zpYi?S`}}1dZn<>sc9VX3txZHm?fQ^4T-NvCOLS;Pofe;8twlf2(PW#O1BALQtdyK0 znv%H)hW~+`n;I1PH4`*&}P43~C z!_$5pA1&+W!Ct*#UZcES#|@+-umP{Uoc$14&BAn`P&R_dKZN%}-@e1aUFLU?7$jJz zZYXUs8FgC+FfQjS9f!Im=jWplD~=y+flz=Ak^fH{nA!PBpcoFi$g96N%Zx^_9pik` zh8$~jo+rUt#&!AX_DQFOh#oBvJTG9-aqV`jcl_MxQ!IGWLPV^rti3$D8r6==Bq1g? zm|dmcW%r=*5KvQ?QJ93YpjkgoOpivLT&X9+^jXv}L9@k)4Iw!pu^L2V{7)oz_^6l^ z(o~M70f)NWVNqn_Vzcu6`U71gJ@#{+yC!8jz$-No5oehs781oA+$J~N?f_j|p_&?sTaXB5 z9!;nncjg<(`q5@$XK}IAgnx*f);P)Y9{Tn~mAK5DmWOswwuV(-i!UQ7rR0BIRI*oA zyJ3KuYKV)ky}jPmm94&hE5CPO&umP6`Jg(dM2cM)HJfhppcNxcyBzJRJFcc?o3>Yz zAe#EWU?m9;59lmQ zppgD6(33GCjs;^pxucD`bjF`0zP>tQhns%N@~yZP`A&vRC>y)Gc|0ob_1WG;E&Y$( z@9?A3Q*_Gqh!f^7DXDg>?=6S^#BwDSM)E5x#1N;s@iQAgLdwRh~lxf&)L9ePiK0#FcqAt8=f6u!$go3 z;U9cPc%s{sUC$|GM4mb1Qypc%k!hn)MXE%p6K%1YBp_DXKfYLdHv=e(hCk`8TB1b2 zG24{RCyGq3dX&gNOlNZXW@2ody_w>e!54gQ zO$Y@d0JJ^Nz&?vqaxzOiyHB*S00vDTVVJjx=?{^vVRx|e( zZ&D~_J&1i!Ns3*DnDRHJj+0=5#1wNv}($I2fhE_&oj|^a@VXXg;zR){f+%u5; z9LJE>+OPX1CD&RDkSaF-jc~oM0TG?zMZHGv%HRRr5gj#^0&Mp^T&6MhL#6bJ04!TAO7x}on)e1+p*NZPs2`7 z2WFQ@wo=#Wv%jZ@pNSvkE|FvjcaowvW22#_$LrbsNa|ds3`|rdOg?Wl-Q1OrqmrhK zk!7vE%R`$nR~m)P&N2bF^p%6jT;m-qt@@|;qq_b%O)a~rA}B?(A2~C%=L_wQe&!#f zCQUIR6XrexnT8Gbr5O3HYFFp-(<)B^=prwvPb9&Z|9sVBxRTC{>C(DqwcM1^j%o2m zNMr}aG+>}OgSwSgJ%q7EEA}zim)LsDQK%q5*;?LP@7I^cJ$2K$tYxJ(Yhkei;RlCm z6B(tj;nTyJV0U$*)cH(w#`&#OqB3xdubIX$*uiAzkBf_9WG6>4Xa!%nV^_&i$8kD; zACCoR7Xzl-hQJNN=={7=TpcmWfTZ&C|_E=bycK289ryNC*8M>Ir?A93QM_Q zJ#+S`yj7|HUiO~m9mh4Ft@C#vbKVT+t-KO*uW0t6Z_PaFQ6yx-u_lTB^6a5^Dci%e zSshiqT$wN&%3H&~SJ|o*^L4{aXZuU@1+eLn^bWni_fzpW*lbh1| z#`yi3CE|d3=&#(~{y5p{fD&i>i5st+t&NpbOzVqAhBu|Pf#hQRih*i!3?XDWyfy$?Rkuw6F5rpA&P%S29-W*^eZ(qIAeg+F;Jo6qam~&VFq$oEGv6xOZdSui$6NyCDgLGut6iLg zW7q9(<@W=p__XC|swrVxVK00I;gW#UqSJ39EC0Y9fpLPCsEmKX_3t|!KD5EQ$i+5erd0RKN}8)S_FvP+z{B<1j$ET*o={>oDhwt3 z0Q34BksqH%|2Exx7!ldI?ds23PWn36(|-uZe*2-N(DYie_Y%66Rh@syftt+o*7nzM zXsmM8Y1D7kP9c-TQ8GC4=?2ZjSl(k=Rf%MdK{)MRPest@FvPcH@ zJssM8P>ip&oJ#9$)E0>L`{!y=y0dyn8FMV|(@I>wJ zBg(g{rit<8qpcs9hmo`S=(MYjg;!PBMRxQcHUv4@M|uCHhVM#c>6wRs!Z$X)elMJ; zazDYeMvYIc?#e#Ft}PPrZMq_Gbk>jooU|g5V)|rG7NOiSd1vd@Q~Yt#lKV&4a;lB* z8b@~h(sZUpT>VZeEszy?03}mf%X=z7*~kl|G#sowI%_-4cPi9aV2clv-@HK1 z`BV(g4@nw4sKVwh&-D{#klXlkGKZ@ew${1#MndI%(ayZhl2=Jn3pdX=(0I)A|dUlGM9-AYfFlFsHosrx>R5Tf*g>*6>pz z^`Cg}Ioi#-5)$^+iKyLUihm`82wF}Zr-9KnwZONDwabL(U;eTgPu~j{eA^4cf6?W9 zh-v&IAGW0nqrSu{M|Pb=`ZMZx53&93Q=2%BQ#+c1K(@O0L)htkhHH53-#q-sreH~Zh8et>9?>$naWIN)nO ze$#NAd}N-2;aVy%Bz^jQLnb3q6u*6lmyPFdFKVeVw}4FwX5zx%A8(#f90_jsBfP}Ib5-`%!^ z-AHQCI>~mH{24jpx7_L+KDFc?*|}9II^@MBnIsSu^t>3HOEQr#sqlICNh-ycFpwkI zb1ZJ`Pj?IrU9JCGl2fFKkaPNtj!wL>AVJMUB(Ej`cLtICAjH3+RCaI9?ZZ67EFzaz zpKl!R4@eI2gf7`1PBpz#b-0eN3 z-E(Y@7I0nqwAB4n?12GtWo~`$E0-1HI13pvTS-S@w9YR7ZA!q<{~<#__b>|mWgdM3 zl-SancVDOnOF={wi{_Dl?)azjNg~uEaN8AQ7k&8t@SC4}pcX_`Gl3TmOa&cv@x6zAh`-9SzfuxkdFcWWYC`2O~sT> zvy4UmW8~M{(N~&xI5$DS9SqQCXFZ3kj}W@@k5UrnM{IJGc+FfuvYAWumj0HTUfjFS zzKz7JqmN&RbI3mX9TFllr#{lm*@~E_je%NE6Y7Gk<5n`?uNuNQa^t1v2bXE(tieTP zS-g!wIc(@8knD<$OD@wpC58h{DZ=u)#DGi=_qJp0OV|8+-hENenu~Jg+n9ijEZPqO zq6|}qLX%LB`K8ex_^}W6g-_i}B)BNg!yQ9^@-Q-CIEL4Ll<@{n64&+!mIr6Vc z2kje;+^uO8njhwt>YFIXcjl}~d>=@5v2e~j7^WT{e`I}cJ=vKZxgP12QQChMUVH`U z9M{HQ=A(~p@lo&QnG!YJCuC$DBdWud4kurAM|3~~QY0#3x0&l=QS<=1#mhNrnyXwW zlukLa^Hy5qgZoL##0x_D#`zQLnfnjFVWt$f<}8NCTK$@5wc(s;%{4(cGK8$lh7Pmv zFy-v?i%2R!Xp&w;7Q(hQ58e)w(JIXv%QaKrUJ?7x6;p3`>VxsaBZdiM2hAvzBsx z<@KimzFCinYOIaT{e`suGP;I(Q_yqrH+l3$l(?nE1_q^6;uG?&6H;SYBn8Ss6re05 zBiJ@-wJ}N7u^8ag98|xZ^7Id2QGSQapoaZ9fVEwz3uZ2ze2fxS@N+ehwU$@%{H_t8 zeDKkpj7Q!kf=z}=H5D&i%AAF0+id_zx-`yT0FY$qin}JZN982S7@c|x&xudij`I#c zQjW$H7+O2M@0WQ{ZNFZGt=@5P2m@DL4k=mr0D{L$8gu8FG zWAY1;EBNBEPWeOinlZ0aaYaUWLQjvv;#DRsC6c<4col_u5tn6Mv$uU;zjuqi>&I zyFjEFI2JQ=gdbW9aE8ZSOYyo*n5K7ORox%N+JR3Xo&_obXI)47EQ0Ju(H|?uO&MO^ z_DjBJ>XW5G!?U-z3O7HGBEBBH0VF)7Lhz>V1b$p~to5Tki74x$smCcaBWYOM3^$|v za$|ocm`{iuPe=!9EO`W{+=L`vl0?>v0^{LDjIYLT*D@~X;L!jlto+?+- z_E#H08Y$ZtM9({yT=}Iu|Cy+n=hGxSn^I4dYK<(b^?P)CC7$8>pmuN_ulWxSa4pAdhRho+I*^_#v8n>jf z>;V9SbSn29&$u!t>I=WQ;r3&lc_4;nw>>=LEGDd6;<$v(BM#U4#Wi1|n?ib*PG5b= zT~lS|S340ekWGUDvL;WO0K?aKgifQ4G(m_9MGU9C$H_HJ)2n)7W1)rJx|asVJhvXz zyT9!uxjbENPvITu)xSyrP4{_u%+ZAl=pHil7E4#kz|`#Xf5QBPS(cuk*_S!cgg&s2 zJh#h3rHe2+vk$Us3YntOM9dBOuM}PvqLIf87+C z1APoVmjNQNm6EvXa)vcy@0*pDcV=t{*>%2q`eoVLj9f8;#m8pGi^#)N6#S~MM;JqC z-k9{~2_xD?koPp3^Dy`lt=HV$0);vih@CAZDeA@qu?YPzp-nGK*()twR5arIk z$7=vPAdrV7CDh*ST4a{jRQ8Q35;w%L?n)1esOlsx>S$h zK1cCX{O-Zs2S}}3^`iY0-w^fgdyQ&B)3nc;0KcY!Csn59-ZrzYql<__DZc9&Hgg9p zm^+*#$rNlC47w}?Lqv5oR=x$~h@d}<12PE!jE(T$+@1|9?RJXCOjx7aBB?F!zUhR~ z*=hNF{=t3->7uDTACx&~jnr6db;d5EKT`;m3a%Pjd9X&cZm-Q}ll~wQe3%zCK*fXV z+24hlZE>Ci+wR}U6`iE6PjB)2SG{kj`S?`&pEx7dnF|Jnwl?4S~xrzr3Cz z>_#T1ADixRN^A7$cdvfS#6L4&Km~?UBDA`kVNdC)ZaXs#w%+|B8)Wx2T)ig?{$m0wq})6e|}!p zLP9TS7U4k+CChFH`j>F;?z1gUE9NZ@ zir z#)D;wz7xt)xe!yAdVRkh=pq%e>QbtoyMgfqHr)QCnf0aN=MTxDw>?}Voe4k#&ZCl1 zXilIL4Ef^}vqh0grk7kvnIN#~l$2@gq|&Y$Ru+i9&?cmDR(CZp(BW2ystfOufLxt= z??cgT>#@NZ7b=8=0?&>=IRF(u3T*qHOf$ZWU z4swg~A?IfhjujZrDlWFWX?)$&B~QPZ{j#q0HHr&aam*G0B29i)QS3R|V~ZNAI&<=_ zb`JHPp!P+8_PzcRB4t9Yl$W0U2`q)!d>y9SX50eaP`)C{nKYs~-{?f3d~=a5vYCqo|&79luw)HHpU-ePz*VurszTNlvm?90=? zRB7p9VM=_Ka=mu~^t>X|8t(O;$^f7aDr4TL_SIS~ruZ8?d4kvVvzb40hItH^&@4}s z{}a6To>(rgEezD4dhv!0g?F7oz>EzpKPQD`O(J=9-;VezjOEeK07e!D7i>!?9rz_A zxf)qq=A@8IWf^Qsp)Z0q{eT8m(OIhuu#r1KKXq<)@i$U6@yokp0j6{PFJ}#o3KY#V z|Be{?i{5?DttbWGvKZ+|JfR97Y)A9pBWrKQ*apG}4(La1Z_cqtJYBJNpb}rcCYreq zsw+Jh<2TF`?ajI>pztZPyFthPm8Vq5zsg67`8#L;J!cajnwp*;Ip)M!DbSjNG8G@< z^f4LH!iuN4O`2fI)5BYw^YjzS&ktuX*7Djs?`+z3B)D`R6kkF$vR05aGVnxILy>ZE zb_<_X6vedO$me!Hgi-*1h}G%I?ylc#&_%{=EIVEJgse)-lMS*7TM>7&>RFv!4oBEm z0c%!JH0qzh5qvoXWfaIJf>bi)0G6K{nCKXLJ-X(d-k?YFu*p*6C6{@W1&=NOH_J;3Uv6~gdiu;8X(pSp0nmia!Sg4M59x!ZV^5Ubwt{Wx`)C2B zSv4xdLbgvQp-hlD(vTRsA;V}ND`l(*fa0Z&2=#VEnuX%*iZNF*0zrxXPywt>j)-h3 ziIHtD<*_lzI-X3z{+E+Tx}wjycLEJl+ye5MDf}nV48~$lGk1%{NM=iDnGP6X0{P!S#(hj%Bg?YGqxIdXmc@%B@gwqcG38a= z7lL#2W2Xd>#1M=`fX57)Nhd9H(c?mB?$)Pi5{R%#B0(xT(Ph{rz%;KhN%IfdWr1SL zD>WSg_o!+J1@bgbWRcsFen#ehU~2kE9Q)rKrGNr=ZD$1ll%wJHg1Jw*Cc$s+1f`dV zPFs53cCPW9_kKYDM!89exM&t``7(4%H8`?){j|uI`5j0zbm*V^2=wFcm0zkOwKVB1 zrF)-SP*SNQ#+>?TH7vkiS&;KL$6v8kEl}Ichoz2(t^i__L|qVmN>c$(hLd(dlT2Zc z>0_1I9g+uKYN1)t@@6KfQ75r0yAHV*f8C=V`gNKul{8@!uFl?TvjA__k0kTJ7L#fQ z2q8J|UCV?)*5f`JU0lmB2VvCyup4uZW#NSDVi|n1mP;mTxlTGotspQK;eyAoeCC9o zZa%q&V;B1%10Vx|X~@p=S`F3v#j|G_5U#9VvI2Tb%*b?4Fl1SLQJCwVPBzisAdIr< zYB>Z`A+md8>l5Xaq#Nl*J2`+SyQq-}KHiBuf}f_|=+ivY-U4+U@DglfQF2n;!cn9} z{y1GrS!dC)PLVyQc-5D24yzdP;Fjt`wX1AjWsv~<9RPpZ*i&ebnFPl^WTSU@?Bpkrl;U zo-g6$D=;Ma^IB#KghVS9Li|JMht405Mt=SQ)}Mw_p)>FN6b4!Y4gpzN&QoTWF9~h= zQ)^0^UH?+n%T7CRUnC4=Hg_q3 zP3W>bYsdbP^_$Gm%JL}cZyXtv!2f7IpjI5N419C0LvU;7`J~u)2gim<-##j~Xw)6X zfUuY(vWyTuwn;wp2xDh#(ML=7idw5bBgo2X`&7C*KmJ$-M=Jwrp7rA2B$2vW{FmV4 zUaQyX_;|!;$fDTv2+HE;-?*_fBN31LJ3Q!a@kzgTMdg{1vXO642vWWUL8r_J^Zehz z0~#ujC>5sqmd_i{(ZMKJ6LV_X2l3FM-JCI8qKSHb-Bm1}a}7Dc^3(3lHhxLd9KBR| z!8_{h0yc%FwbpI8OcrT3zp|f|r8`Gq!dk|NaNIw2WY0C4*H^t*K?aDYHsCTagKjRu z>~Ut?h}MDNF6IL;qn+gTksfuvKcO@5fp;)&+*LXh0o#jM+0GEQ+LCgC4&FJ8r3e#j zClE{`t6=F)e>SmPz#^1{#`}yel(rpY$>clqe^vL^VO4Ei z_~c(few|ss%+F+PGrpg zh>*8I)=ecqF*a_5QsOg4kZ%iMK|;F8C5=emYMVCGJ=!fO;c-#f=GlRPF~vWOxMAm% z3!WBKrZmK?8y&yd;t-G;O+6c>+T#3C$bm$&>0g-Dqp*I3x+jrnt0;53aatE_aKv%T zV5i5mu)*fKCM;G(2Vs*@=~dE3F#s+asfc5$NtDx>Q7;h|CtcSS1@}E?iEG+2s9qF5 zv!GH=RN_`4Ro&FYQ8cx{3mcwKC6B=9j(t%k>GmOWpJKo}l022*zJqZ3g($<)#2#|( zd_FIqz?r-wBV>SBf=1ZW{96OUp;ScAm7k%qA{(~6Xog{(<58sv>Yk9j$hyoL6}?CH zy@_1IbY~fyac9byYEIix+}u^vsKt9xJ(}J4#gK|-KN+)kc5ficdCFDY4DjU@Z&Fyt zDp%Np=h?^=OECk+p7P$$=_`CPL}NTwX`=FxI_~_zTae&4ly{PENB)lQhYPtTnU@7>TmUXA{acwPH*BK3Us#4vGDOssgs%)&s;5 zts6AVF+$G6u$L@H$Qeq629EHmpX1?m`i5=VHsuVN=%q%3JvutcMDxT;5r(oA$bU??X9@ZsB( zd7gS;`68lMExOP*LZ?MITb>fiT|m_I9^A1(UnE+mZNfp>NhT6+>S5qgae`%;zw*3S ze>px5db(j*l($9=p%;vWE;ln!+A9It4O|pMl7O51m|#UBF(&+#b`bfvU_gJ%rHqd? zC(7TK6*7=D6O>&3TvfT!?cXDXy9%y%@M*tgb3fCfDSj7eHv>xDM9+IS26acdF6>Z( zZZri5m0GA~UkINP9)lJz;V(k9^f*V~$o|{@xdh|hG=*eVz_PF^F31#LQ_m$XkiWD_ z*F`%uA)dU@fFPyyd~8e}mIuAE51ROAu@n=jXZMO(me<@<3JyzpKKGA1!-!>@*GbKZ z4A}|Nk(ZO&As}&d7U>?cz-KQ#Jk<1di|fVabRV`+gH02<4f0PSUx<$^ur)MiB0vgR zdgY@NkFx@9XX&B=s{2}afGajiY21#qbcv$b@Irfhu?5q$ewn5%3))gwmD;>3#g%zV z%IP1l^MQ`%R{SexB?)|J+!{s}5`pd881j!z)U~sh;{*=xYmn()ZMr{w)ZXXHV3Ntv zKe?5=SqHiSD0NPNr*@KTT|Zw0DFA!#O7nF`*Z%V4@TUT^;C&GpP`aCyD2y6fNSKaq zccK@!YoC>IE&YMQ0J+)>?kx=A`Kl`QO7=ARv0mKOKB}3jannH2=|n1$ z!~QheeCCO4TY_oyAu^b4uT9>?B~&(51V0mA>bL zx41&^GCbGoP=PEjLMOwuAYFcT4b6mzsj>D6gx@m$UGuGR@AG3xPEjHf=fX!`wQ(6Dus5%i+1G3hBW=%tOV$_>1-}Ob%#z z^c}jRe5j(J7QRu65U2h!sUp*6DheKrObx8CaI#bHTS0AqUc&6+?PcG2_mNuLYaC7$Ue|D15TjBtw zySF;e{N=X#I61xI^t-vZBLik%s*)$lg+ z;TooHdpt(IY4JXMG3_TaeAVZF+nm9>7(mwymQStgV**Mk)Ky;&$*V|hpNBK66m^4E6Iw%QK$}e?%Pn?!u3Im zW9l<&GBAk(USZ7`qk_l+YBFT!1`(3#z3#>U14txy^y|KjMgoQl(({VCRxb_yD!TWZ>r+s|Jg<|# zm>+JdgmWJ1@%;YYn$$HzZ{}9M3-llX+#5}q`Xfo*A~m8ZG%2?{w>-Ie%gCaRhQ(v6 zG|1_uuL@cESv4GbBbh^nyTY6Z)5koXpzB*5VxApyBX|cWXtjMA3=%q?W@%|=v`}+w zrC1nlRFr__Hy7s-<}ygjrz?7ziq!~JwNH#=H$!(?%C!7A)~lr@G&VHiBj zkOjj9YT$`+zq8 zBG!TKE=UAZk4oTb=L?k&8i$iW?NH}vo_2o~!dPr4dLHp=yAIx+jv=ikK-hN;o-j zpOu2HMB5g>sBiAo@|*kWMI=I?YZX$8qB-`Yv3F|qMk@6i?Ihid$+f2_=s+Oc10qwrInyRq0|JXyeb zvl2FC8;qe=2t(rdBgF%LymmC&EelO!ZUZX(kZIf9uubN8iD;CkP@j&t3C*_M7zMW!m1y|%NA1DT?g$?4RUs#IAsM5?dY-I4u zj0O31&u^Q_iDz!&a=`;%1gQ84bGqB)KZ}o(Y~QpMBJgDHtl05qJ5x26uawQX^L7%*(CIeiEs6seoCFMag4ZrM!$3Pv2BcgHpJ zizXquL{lBT{%UUIX06UlV-+%eKk19*0O!z?uF_R?{sQiL`6=jrrYSW&RHH}tXs5e2 zf_cL$aiy5VB`0opOyqqv3YAK>6SkJj&AG`*mufx-BFxH^wjmdYaf<6#JXS-Ep{h>u zeE6{3+81$;nC?RGaUBS0@-;WTlovLpVcB@qtXi`r%tfk>uh*$7qx!L8i?wm91S@2t zW0h0P^n~~IAG68|7$LpqDIaAwb$cpS&+0(boWp=1I6w5=l(jVY-K3_MQ-xN2;V|E| z=TE3l$c~E-* zn&{Vix#Y(Np0M~AokZfN6R9cX3v1HKH?%j@5f^r2>MhYaeZYEddRr-Lvrfj-quHF6 zjA6b#+Y~xS;4uzlMawrsyS|XQ9hIG096Hh1VyblP#dF3!m>ce3kTL%>jxnU2*o?pp zrYzd|%q9s*9uVdB3ixIXycp~p#K5K{E}!62CS>#uQ&_hsiFi{eRL8O*_<4LnKSILE zFjds}HPmV|EMU^|TE$M;c)Nic4Hvnp8O*U(klKk2_iApTYg%-p6OP5=+|49iXzJu- zp*fpTX8x&2rjV_fhQ)eCamDr zs@s%t^Qp3WyYSf1TB1j0<@;@^m*jSW$5?IHG-Z^9QD8hH{F&J%nP;%nY}X7hr3?9rbccwC*BzF;)LJdZ{dPrrDpRd%U^WfHIUoYv5?q<%d14 zleEzB^s6oovwry*OXy3ykAqIGABno}$JejWlBio>=Uh)QBoK@4$m{sLrT64uyzb*I zFvBh;Eg1V&r=78JqTDwpC&|e+`gVVumNIJn9-&l8NBF(==z1kZ;WcR^Ph)I{gSC9Y zotQ~%RRNQXY#mru+1s%<(Ex8zDOy92UcI_0W78KXjRBPiGL{^sT+ zl%CvYe56jlrQ7e7!@KP92pCqXzuk?z{ils=NqQC6rt4Qqg3P3O zL~o&=HZg)THyBGJTVm)^`X$vVkdh?Vveiz3ik05D=KRka(BcNj+uU&QWM1x zwsrZ*ADE~E z&SH2Nyp}7!y+FI7)Vahzn$=y%P|f-b@RY4ScPY!A0Pe)}_;?0G-=_OB-A?ZxQMC;P zw1tBjDdx=Y8@LoNNA18w^s7hdhilkVVAeVHBur6Uwhul(q$e-D=PJmHnVym7z7AE1 zfH!j!7|EfQC!3Z<9b|(H_lnHQK0@#~S|{FVu4sR9yy#WKIv8L|;LtEj{940eJZ;vT z{|jcxPM_8ZqPYzXyw7hYcMTjQjd zpi9UI6j&sr-b@#vX!<3CfuS`QzC3eS6zUoN6p73f)@C%vA$%-@j&g(?rg(<=SBhT7 zn0DPTc^N5s0Kv3>uFW)Zg-EP-i?OI)Lo>NyTmjemegLWHZibIai9_dThgy1*I#4Vm z&m=O&AD7%pGcrA0XUx(Ft%Xo zvcy>0+=Ekf+sR8h%?5hVC>o!67d$gF++sIzE1$|%q+am(?`U(S`_yXJx8=E>D5GeE zDAwTbCRK@BNN=|3EA94$Q}2OtiGZuE*f5Fnwjn$WcwnyO6dEn?0&Xpp{mW;2eim~cW- zhl`~sy(Dfy!Gxmhiz!s}$T{^?Jl#_uEz=@@b>W*yFOQ|95Lam2y43SONYNh`H?nDN zywoW5=24-;@i_qdf|T4QY2mf;o`yD2##Il-Mc)mRNg&T9 zHmnmhGooMzN(;OFDyCL5^ynpXYLny=20hmHdAE0_m6DVii zwCE#jakMn8xSu_*u(2S39~s|#T3TT5m2uVZ@Gbp4ijQ2NamXCYuU6#+HB}!EMnfAX zrPwm$E+jQ-z3L1{HnK zAJtkkl$DM7QAtZGhpZsX#<^I;TrlT;v=P20ehDJQ-0*C@K)DxGS16l7 zu*SS)98KJ6pFRlP8SNpPojr$I}je!H+2G`A8NKFSY$D!&$OQ;e8; z=aO$Yf#3!f{3EM_M>BRQGFyyOSFAE?(;bTy0Y!o1`vC+A;Omso99UIeu+Z3XiF`0BhNMG3AQTABmnCqS&pO5g>4}M%~&u zl6!ey056GL61q|(j3RIU?!5&DE~4|psJAQ&vr$3Z*siuWXcwQo>9ic&o{ps7!7voF z$w+Ll-68zZ(|aoNS|f~znL(qq)f-l>6rDS@052;M5nS!~C7>`ZY$$7~Z$7bAO+#A| zi(@4$^0aWjvk_8=81n&Bf=`z19bw6mvlJ?>D9zpYX!=xrYSx3kn)FeX0cg8xv^&O* z(%jXhLiqR-MYQb0gXmoVABcP(kn+3j%Ozy(ALZBlq7{-mM@@?_zU4PCuF7k zvuy|u>?I1*4+Fc0e(aQI7703x%OM@10FzFBIi!kdU`*BrOhHrL4FiH?W%9eWu$b-6EhuJiY1t(VutwqQi6?QWA)1fYM- zf{VYdTJ#2D{J2(B<_za!2p1o7=VP|Jjbvp7Md9<3waZH08y94h_V;QiGY_b{7#2{w z&v)%}_&rG>+({N-TIL<=%6j=HGi?8L7Hh*;gg&XL`LX1cYjbPs@O)&jql}Dg?$;Kq zGqAUi{b9~Suqh5LfYxdrUAt*d0&hgV~k^iE5W2zj|Nz))YR9#)q z;bT$b>3KMVbx3;<%ltUP+h;3aFBq6^?slB*kT)}3I_G=~wpGE51~=mmM=+TtbJ_}~ zv_FJV8jiS6%@Up}xInUg{5 z^Z)51GJbyDyKhy)59(!4Xp^EGd9%ynW@xtAz3Adb^h<2vzcw~AC-g4;Yo{vEYdHUX zBlYik4TA}bW)=NFdLgnQ`^^^Bl*!4L;lY^ChbPb8=47yZ4&F-vTV2U6L>^0tb@641 z#X?ISgyl`3gRLF+os2fX@4P@c{y+IBFw%ByfbaWzAl=s3sNE>^{Kbne=}ACqqGUxW zJPQL#4;f)$F0ZI)cTWJCT@SUr?HxYGZXp?_4S`2e?MU~*eYpt)CZs~%#6EM_91Ou@ zp?slMWtrgi?PENv*)Y%>8>>ANaHKoQH`pk9d3myRr@671t?w)wp4_1h6s*MPUV8nB z9n(>Y>?;1}-|y+=y=7`4R62+lri6qXbcBvj zSk6@S4O{Plg~+F1U?{DraREw0B%bG_NBW^*f_&^5h}YNG8J`Tz0tHUl5G*R6<%ZD)>|)%L7O?P5P>{60>)ODd4wo z)}d_piKg;8%V3KLuZXm_*WfS)9KAl|Y-3ouS>n$9z zot+&OCNnx0t;+kd7sC-}!}OcPmV#JWxkzIVM1F}nE#Nvxn%!U^nHFuq(oE%H&<7A%LwG>+=50ed?(+! z4i3(J?<_* zK8$9bo09`)X3D(V-P4ohZkpcF0rqzr8w%zCeIR93Rq{ro9vrX-UY`}|IjnqLbu}(V zl(~O)mJ|iOZqozqe3^v%7C_sq;Qf2yXUxnPa4;}1HuN_)H!n8U*Hx619(}L{!da+r zQo{$c7sp?|&D3I=_f8C;n&Ch46<{p@Vgc_^?kA&Mm-+{^!lf0Pd!-T-OP>VFL_6Uu3v!O+;e=SVPZ4W$TkusETn-n{xo7HTHEsj{av8o zqi9T1EdM731_nldGMCRiCwV;AlBEnGeEV!P8y4N&)wGR0@d<%)8T4aiA2n`*6M9 zmy{s_+*%x;UZ>$<0vj6}rb9L4k>#Ew;86XxjE8<2amCHdJ+01SKNW8 zDS&$vNX`6owl~ASg+TY1l9Fs>U|@hO)Ti4XGLXvce^snm?d0T${(8_<$SgoxNmQNg zYLt5NJ`$3-m4#2pNHkQ>N_%df_ci4U*(D=#=9muh$4`Udze%8G<;kQ3^+7vC$4F(K zGza+p9fg_R9Y$xsfW%@@qs>K4P0h;6N=r-2%bTL3uP7(?hc?_6J5bVW^+y#N%+Dr$ zBb5G#v?|^5MF$rR1PF9;3gFucCybAelZ%C|uC8KXV`nH#%8LtCOg&gS{ft18&I^lpREJ8y=?*ar8A-^XNH}`iCBpJu%=TR(7SHVj#9VZuWO`O)CaX;A{syuO^;?b}L zDh6A%T=$F`r{2>!UA5g`McALgb-Lm-Pe^xRl!ohtKuAeR@e&fs!ei-lo3x^#5-ZAM zV<(TepHadika_LZITjwZ3jCHhLYBhv9>CtcBIr!afVhyUuTf8|fRa2PMg(_+9IHWI z^j)x>Yx3a6P|TB&e(@sW7${n*kP*BP3K+UL-gs#(EPT(GsB-k4S@{ak&mzsv55XuX zD5x+Qh@CO39ZwX|M~esgZQbO@pS)qq0^iB`M`!^Rx-9JO0yDGY^}ehY;P^nzVRtMJ zYPS@%wA5|jczPO)%OJ}4%y4JC7&F^7v>RqHebjik{xPAl5}uf3des&hhx51XMEpav zyr|!D{>z#b>efF%h73fvSt~+gVq>c;7Y>!<%%JaI3An>f#PQ>DaBTWOW@O^Z3X>N!dY$ zoyujOn~Yk)i9=ReTntI6WuS7g)?19GRxFp!wY(3MCZgrmoE@Bq`E6lxnVDHyWmDdw zIoLaQHhVUwaA&Yd_H-W|9Yx3<>fKyjoWLg!y&(Q-_)OvqkGGuF!6@X+heY;R7>ismYn~Ov?3mlLL-AVgF2CuSS2y3gdn#q+; zf(jKD7SdgpO8UA-OX6T*ed)|BJF2J7hx1z#XbZ64fOXo_XfzHz=hyE2c6gYfiv1QW z-rLyX;vyfm7$nQsX&>#(K6wF8^!xvSqsq<^c?dA9HdAM#FZJ2kk0lTg5Eyiu2m^tV ztYHTLVJ7|23$L`*)DRtW+(a9I^Y$fikTZGRT=m2;$O2)!i4yHeDOuSxHjCKuY#zfG ze&2Sd6eq&d(;uyVp&*3}K|g(Ze&|&f&kquQmRLAhWMl%D?XqxG*XYz3o3?q~(e>Di zfn+vGR!)t7nf&z1RzA=sGci!Ax097c#fq7-%3UPi&C|NPKYL3dt8AB2FtrncS-2%rKH-e_Gd1wrH1Fp|7v5HhH8nK^_0b$5j; zTc!v;%cp`ii?H4s;aNA|NQwMzF7^(UwV34OU}>FcXxNq zMshuFE;c}1ma`TMBRo7i<8#`L*HYjz3~1p*DwLT=Zg&M3!j)xnQ2;9)jzVI6W25M3 zWOyVJ6ALRkI{E!2yEsVEadEh3>#M7Jn8Wr;r2Wmg@SMJvA9fjs`dcz*xKKc zzZMcxRK5TpAwK6eKAw`OqpgFiQSbBHp?dh7xHv3Eq9@-&h=KkTv#28v(H_tbD-)=N zrvL)4%;&NYN^mmhVLp10NC-hqZ8Vap9P$i<_EK z;Zf7lCOs0+@yR4)&TfIXkbA>sF@a(LLHbaaOZkj47reuYq8$+3LD1gc+$G$zkc*ef z#r#`q3DV6*mBe9jEU(GC?mc(O5*dlghB|?&*+Ac)ok)ML_Ce4Z64V<%saCrN6eZ#O{2J*S z;M->hZ4Q^)bJvY+aX~Ra`B$9OhbtDikBp3b|GxM3+r_AfEO+qO0DYV!T2O!$22Kk~ zBBcvAISAgg52+^vJWbL22CY=L_@tzI4#q*FiF88~6QOoNsibVKNKn$%{QYRyj*gC? z*h|?PvY% z5Gu%P?Cl7gL#aeoajt+b3}pI$hcp|W#<07RO^(ilF&X(?AjrFtlCm4WnWLVW3#euX z6ZBM_=wJ29xAwk&4|GMNsC)^*Qm?o8A(QtfFUbq7FM^W$KTFVMpvjqy{6r?1^Yz(o zfnwgBwTfvO+Qpmv*9{z0s&6cdMnMPtfNJ%h4jFdwaw7lzL_oo?CL^1)aYBxe@=gO$ z_#desjxg5M(hSCgJ4uJX^y0w(f#3T5f9@1x{t*QFnTrEV{I4hZfA`Vd^WRnM|MQvk%s63yY9q)4v`=X*%&f4#(YP*t`qTAFJb^f3 z3n->fO&K&{ZpppgT}5Q&R(i|)8PJ~jM;WWNyXx%hF0v*t8wv8? zc)i|O9&0-+Te@W@ef;QtHk#ibcIXs-nQNJd#cBC50ZMdO!g3n&&*89;bUrP^MHgvN z;IJ*sNKGxgn-j^zboTzn^>wKi0H;@W>x=_ayA(i2H)cAP3~2E#czjE#x|-T8I|Opf zHV=RwOe@#9RyUPIJJ$pctnYkR`gSmtot?eNt%_4$SI5lE>}hSq>$W?&Jp8VTmz+aM zNYEhzA7e+5EyMy8VHpN!~Ypd2_Yj}G)u`1^aZqd?#u2*PSnEB3FLULmH z%pNCk^-NVpycnmV=A4Y2Y8o1e z(b21?Zlxcq#ZIB=MK9aiXE*)r?*$wi0Y`7qkF;Ymbd$} zo}9~L^GgJH!K6;u(xVG^5I<4`zH(l$5t8($kl1}f%5eK!T!qVF># z#UPK#5vW&VIXF29@_`gup#AY|U;7c7=_@nuy3dZjp?(iW(cazr{FZU9&T*%DeLZzv z$I3s=>H(9W4+wPMudg|2YO?ZmwKQ5X(I_hc^_z9IxFqxtyUq$oZm$)o8sKs&#nXoo z_8s8H*dHI8#wI3SzP6yf?DSMsQ4Pi4Iip5-t*=kozSlt+AxL=Uhm7mcoS9GT@GVSs z>Cj~moZV|>^R^`9I;)vG<;Ovv-XylO}mk%O)_bKo!I^04}{~@EyWsg zEhGrgHx=wK4@g%xFvxVnRU`B|d%&Ci2da?K_tTxp?8_6gfa!v5^XT^bf^!{p9zm`9 zo11bE6o~dzv-bs@zrI{qp^A=<4qyjN7n(U$^22%RZPkhK0}3qb)QYR_FZe948I*)* zTQ5e1^P$X3aoHHuZBzU8b9_iMiv&9$_s)b4aiV&IfM30{rG&CGz|@no(5TFQ7HL_W?|yBT4-aR!biG;jlb%QI{*RZ-8NDXRHY&Qz%JBFB z`^eDH;o?$jZjmai_ot*SGb}l;s*-&P#VD7`&?D~mDi9N66Q9qI*hz?p{478QeU$~R z3!Ryn8PaolC1aMBmKL6J1N70=Xgzg-=D8TEIU5}{^=GmZ$*Yt17Oxdcb?de0{ac47 zCxHhereQi0?y%424yZ;&Mev{aw0=?@0($Q!*afc#=e~ndgAawh)@JGLd3?7O6(~92 z;NX^DyjrOBQFeB7Yg<+oU5=l6nSrl?*PloEo6`kWW4(W0(&8Asflo<6K}1cHn3U#E zWNc)VLCMWspP32ccUR0CrbE#ll}-e+Go}K9fVLXGsKVprxtzLsLS18xgsc|A{j3)B zmJe+O+#-fx05R z%jAR<MsfqG|mvbiT39PI2Zh}_)Vhq&K|+4WYT|3uYZPsy2&7C`TB8P|$( z9)$Hwozf@3EB=vKuzux@tGD=Y~)AKfe3CJ~@m~33Nymi8^X#IIfDoh=ATHL}6_J*A2 zDO0tzIcr8%*L;9)Wt^=pFSj!^6s|w>>f_eI3`C)*lm}AZ{BK_ zIwbl*XwimqF9};HcToL zE9qbB^yB^MR|UG1kji3u+Wxfd$K!tHUl>J~X5^aqexjUi-?+Z+JDawq)-!-~hREkb zRiMWOfpQR|mZZJAAPGe!)Bn#;GU)EsGkHBht(EB|*57`eU_J^P_Im$qPo&(S$#b>Xs48yW30!erZ#=}@L`Q#o)d6J z@NBCWE!Ovc<;0(1qfhnbZO3lwZV401zmZ&Uw^%qaHWp5u7Jc(VIDDo;F|-cS@e7B^ z>F5wYfZucCe!#%OQsJfdC|jZR;^G1TU%*{mgDwW3&E(Bp0Bh9NCT!`lIhavb_iXez z6Rh|1*RQ!zFzP)Im*H@tqM~ehOv{>@=-Gu?cB=tHbxIW;8v3!S${;E;GqbBp{FMGV z6;^k5x8Un&eveCE<|c#><}NM|Uj===cfH6dvIaN^&}uq}9Ad!_=+1{7nX{?>^g9Ge znq%u@QTalT&+>JA!h?@QYJa>~vzd+K+sRp`-78Px@tB`b4GX~nKs6y6wo$9Hva*O} zr&c&p&CP94&Y=?X3A0#^IqgmNsFn(9ddWeRv>RN|Q?%-xta_R=Y|fWj{Wo#UCx?fR z7C*y|reo3x)~2VDlas%yCfJ`G9DF20pUUH^U>RV{`G+Mkt}t(+k)a_L7FN3Z)^N_# z?}+}S(fR!D=Qf;~P%0807e+!ZcC3R8a9n_1?68u)aKzW#Zy?>z_rywa4|Qy>w3*KyKeu8W}5Uxs5p6naJQC%ad*0kWp66y0S5) z%2p7XgC`;)qPhq3r{gUnKWB1zeiOvVz`(%P7CrUb&Gq-&Yt-q-{QM-1#l^*eBD>RD z4o&VC%nh!121Z5{-CxPYaw>)KjDgrUf~*LI)GISHGdnwsH4?8Y`LXNfhXwjnSQrcU z+my~pYHU~F@khtUWn^V1Mn}_mo;|~#chjpQ*eCl}$f^j=b?qRV(tZgqfso<7V`yj? zkmdn$ij`*V*c_2ULB=asc~@{gkK@Kn{?eK07+4GKXaaovG6}FADJh}t0LcX#3!dtk zRejN>qiXi}K8_QN4<$dNZo*6(;9zCNnx8F5oS&ZuYX@uu_wz3sF{-!=m=&rZ%q+)g za~SJ1yB;4Wu%O|q^}A6y0IlLRa2U$iM>cdNsFHd9O!~)SNK8&n&UR`BbW*~S_+2)1 zf_#I{0yNViNxY)oy(_D!tbCl= zwz7QNT_y_oNKmM%PWS^c{S1NMX;>;MKIl#j&$Iy5fJ0*D-{1Ffu7I5$f*`jwos) zcN|5?t&@RUv<(_+w&mrx6X>J8MXmguv@vevq~raMI4b&vzxata!7 zFw0nCUR#Ct6r=7@SOGI^N&Px^(C*nHuFlJo{$ zb#zi|a?u_@AQ$d@hg&?vs9~fHr=LRDAFo#Yl~VY6hmV*mMK$^P`J2ni(u)_GKKJhK z&a{g-_MP;GoJ+fInAc#&#>Ng>I9P>%m9a=Gd>HlxIFX%$6=y?vd3jwOzIIWIsgPim z_fH(4AAc@Vf{#&d@=s9hE2+9hV<1hxl$f*``x4IEZ+{s1pjm?%cIa*&S~@W&Jto#h0bA(#6r=SBlX`i`q} zjGvZlHk)du{wnl-UeuUF<~XEwD)c4PoXW4>`6~(p(%0J?5VsY$VfPj1mk<4uwJ|N| zIE_ng&NPjU*C)?8yMeJ#1v@W;Q|T(w%NQ#Qpnsz}*H24;yB-860@Od=p9SOtk3K9f zFKB9x3=c!0{*E(L>KZy7`+%zQwtFpRqN1W=W>#?S&%(n4@<=RzRNBr?PC?zE%?h~4 z^y=MROIEZPDg+qsvoj|E<>vz1_xJY!uL25_peKl)SLf(7Q01fFh*Z5_~`Aadhs&aS9Aq+>%4>rH3NK;og{FN2t$D{s4$h%!9 zbB)M~W_51ZMu)6soJieemB3BqgdqTH%&d5~O_HGoi>}RH@%U1*v0>vN7K5Yq)YY}I zLxMG05)fKPtGpD{cs0G!& zgY(sV0cD2s8kA27@$qP4JBKc9Gb#tTR($T~Z(y*{Vgo-0y$R~zWUqOIUq81Gyy@** zm}my=y2?J8v02ba;(&~djL7%h1B~kCV+ID)Yj7-#UO4bw2n2GVw|fGJ+#!Mp57b}C zV7IG5Tg#Ue^nO~;cG1CnNt~)mIvt1g`~wk7)U`vCf%)Rn;EBPEa^9n`i0zR)-6l6j z8awP1&ZK}2;8LO0W?5}7AVL`tJ!>tIm6erLG)^lW5Z3(SVn4^g1;chcfe)Qvcp}Jn z+4KWqGnQEW1^@2C#DcW6w7|U~9kUR4dwY9Eb_YZ_El^PzOXjm@&rk?C<-U)|qG7!t zy$Px&C@N)>3Vb8z;n8SC3y7yIe1ebi2HDW10QS!)@+-#|P$*PxWN;8|Ow-!hTJ1QK z=QNXZ+NO<7HjQuZ&?P--5{*Q~tl>I1Ce*1Aex}6iO}r=@ve)rO#o zhTWxuTWeTBP(*cuBFeZ_loP49ATx9MEQOmYFEL`=&0eriLHe0gW_4Jw@7hxEfv+(}>c|A6EXlN+E zL)0qz6V_6?Q+;Do)6H{O7RFqrU=d1$XfkY=jR!LK{Xtsx$g@xSnXn$|7eWP7Q zKS8s)4Cz`0cn{1Y01Q3!k^A{YF%H~bXvfTP zJNMjuPGa}TO%2+=Ai)pjDyfm9kL3^r6dsizOThjMX8n(9`X`Kd*{6y0kkheWrK7WF|P(V3w2f{^S$5-IB;_fCu(eL3>?`8(mdtk$1Xgn;9$&3;Wc29Al7_{ z14o(4QTd9LPJG`fZ4N3%{DAe7-+0j4#t?*GRb3s7O9Fe?|LkzMHZ~S#a}HD<`axD! zR$y{tklXepgGx?rE}zT6a~?8Ho>y*8PB<~`?d`w`wY9Ve@$t&Ep>-J)sckfqtHZ+zU~KS+1{CiMA*Z|QXO^f!l{BzMkE%ld;iC;b3u4XFMy zZhl4$0ywIV7JzJU(kw{9-PcsQz*IU$N24`7ghO5M$sQ6Aa69kMdNv`z^=~-U190DF z6xa6lA3uE#S!i%o1i3LSO;=0n3Y^<1=`Np&4m$XgE1(2IZ#3W^8Xks0mIdRY{rydz z*OxLfWbdr+|5f-O1_Qyaqdj!%$gZBA?@Rt93JMA?7()vGe1jaMPh^tx;QKXrS)h{O z2{ip-|3AY_>z)0R8|wApi Application[Container]Sequence diagram for Internet Banking System«container»Single-Page Application[None:JavaScript and Angular]«component»Sign In Controller[Spring MVC Rest Controller]«component»Security Component[Spring Bean]«container»Database[Database:Relational Database Schema]Submits credentials to[JSON/HTTPS]Calls isAuthenticated()onselect * from userswhere username = ?o[JDBCS] \ No newline at end of file diff --git a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.png b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.png deleted file mode 100644 index 0b5dc504265c797b255037868286694c33aeff24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126563 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 diff --git a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml deleted file mode 100644 index d433c68..0000000 --- a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml +++ /dev/null @@ -1,65 +0,0 @@ -@startuml system-context-diagram-for-internet-banking-system-c4deployment -!include ../.c4s/C4_Deployment.puml - -UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -SHOW_PERSON_PORTRAIT() -LAYOUT_TOP_DOWN() - -title System Context diagram for Internet Banking System - - -Deployment_Node(plc, "Big Bank plc", "Big Bank plc data center") { - Deployment_Node(dn, "bigbank-api*** x8", "Ubuntu 16.04 LTS") { - AddProperty("Java Version", "8") - AddProperty("Xmx", "512M") - AddProperty("Xms", "1024M") - Deployment_Node(apache, "Apache Tomcat", "Apache Tomcat 8.x") { - Container(BackendApi, "BackendApi", "Api:Dotnet, Docker Container", "Provides Internet banking functionality via API.") - } - } - Deployment_Node(bigbankdb01, "bigbank-db01", "Ubuntu 16.04 LTS") { - Deployment_Node(oracle, "Oracle - Primary", "Oracle 12c") { - ContainerDb(Database.1, "OracleDatabase", "Database:Oracle Database", "Stores user registration information, hashed auth credentials, access logs, etc.") - } - } - Deployment_Node(bigbankdb02, "bigbank-db02", "Ubuntu 16.04 LTS") { - Deployment_Node(oracle2, "Oracle - Primary", "Oracle 12c") { - ContainerDb(Database.data.reader, "OracleDatabase", "Database:Oracle Database", "Stores user registration information, hashed auth credentials, access logs, etc.") - } - } - Deployment_Node(bb2, "bigbank-web*** x4", "Ubuntu 16.04 LTS") { - AddProperty("Java Version", "8") - AddProperty("Xmx", "512M") - AddProperty("Xms", "1024M") - Deployment_Node(apache2, "Apache Tomcat", "Apache Tomcat 8.x") { - Container(Corporate.Finance.Limits.Service.ServiceBus, "WebApp", "Web Application:C#, WebApi", "Delivers the static content and the Internet banking SPA") - } - } -} - -Deployment_Node(ios, "Customer's mobile device", "Apple IOS") { -Container(MobileApp, "MobileApp", "Mobile:C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device") -} - -Deployment_Node(computer, "Customer's computer", "Mircosoft Windows and Apple macOS") { - Deployment_Node(browser, "Web Browser", "Google Chrome, Mozilla Firefox, Apple Safari or Microsoft Edge") { - Container(Spa, "SPA", "Spa:JavaScript, Angular", "Provides all the Internet banking functionality to customers via their web browser") - } -} - -Rel(MobileApp, BackendApi, "Makes API calls to", "json/HTTPS") -Rel(Spa, BackendApi, "Makes API calls to", "json/HTTPS") -Rel_U(Corporate.Finance.Limits.Service.ServiceBus, Spa, "Delivers to the customer's web browser") -Rel(BackendApi, Database.1, "Writes to", "JDBC") -Rel_Back(BackendApi, Database.data.reader, "Reads from", "JDBC") -Rel_R(Database.1, Database.data.reader, "Replicates data to", "JDBC") -@enduml diff --git a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg b/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg deleted file mode 100644 index 9ee3cc1..0000000 --- a/docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg +++ /dev/null @@ -1 +0,0 @@ -System Context diagram for Internet Banking System«node»Big Bank plc[Big Bank plc data center]«node»bigbank-api***x8[Ubuntu 16.04 LTS]«node»Apache Tomcat[Apache Tomcat 8.x]PropertyValueJava Version8Xmx512MXms1024M«node»bigbank-db01[Ubuntu 16.04 LTS]«node»Oracle - Primary[Oracle 12c]«node»bigbank-db02[Ubuntu 16.04 LTS]«node»Oracle - Primary[Oracle 12c]«node»bigbank-web***x4[Ubuntu 16.04 LTS]«node»Apache Tomcat[Apache Tomcat 8.x]PropertyValueJava Version8Xmx512MXms1024M«node»Customer's mobile device[Apple IOS]«node»Customer's computer[Mircosoft Windows and Apple macOS]«node»Web Browser[Google Chrome, Mozilla Firefox,Apple Safari or Microsoft Edge]«container»BackendApi[Api:Dotnet, Docker Container] Provides Internet bankingfunctionality via API.«container»OracleDatabase[Database:Oracle Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»OracleDatabase[Database:Oracle Database] Stores user registrationinformation, hashed authcredentials, access logs, etc.«container»WebApp[Web Application:C#, WebApi] Delivers the static contentand the Internet banking SPA«container»MobileApp[Mobile:C#, Xamarin] Provides a limited subset ofthe Internet bankingfunctionality to customersvia their mobile device«container»SPA[Spa:JavaScript, Angular] Provides all the Internetbanking functionality tocustomers via their webbrowserMakes API calls to[json/HTTPS]Makes API calls to[json/HTTPS]Delivers to the customer's web browserWrites to[JDBC]Reads from[JDBC]Replicates data to[JDBC] \ No newline at end of file diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.png b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.png deleted file mode 100644 index e8ad2ea3b06868f00eb3298514b5aae0cad1e106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72202 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 diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.puml b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.puml deleted file mode 100644 index cb6c9c2..0000000 --- a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.puml +++ /dev/null @@ -1,44 +0,0 @@ -@startuml system-enterprise-diagram-for-internet-banking-system-c4component -!include ../.c4s/C4_Component.puml - -UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -SHOW_PERSON_PORTRAIT() -LAYOUT_TOP_DOWN() - -title System Enterprise diagram for Internet Banking System - -Person_Ext(customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") - -Enterprise_Boundary(enterprise.boundary, "Domain A") { - System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Enterprise_Boundary(enterprise.boundary.1, "Domain Internal Users") { - Person(internalcustomer, "Personal Banking Customer", "An customer of the bank, with personal bank accounts.") -} - - -Enterprise_Boundary(enterprise.boundary.2, "Domain Managers") { - Person(manager, "Manager Banking Customer", "A manager of the bank, with personal bank accounts.") -} - -} - -System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") -System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") - -Rel(customer, BankingSystem, "uses") -Rel(internalcustomer, BankingSystem, "uses") -Rel(manager, BankingSystem, "uses") -Rel_Back(customer, MailSystem, "Sends e-mails to") -Rel_Neighbor(BankingSystem, MailSystem, "Sends e-mails", "SMTP") -Rel(BankingSystem, Mainframe, "uses") -@enduml diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.svg b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.svg deleted file mode 100644 index ccbc277..0000000 --- a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4component.svg +++ /dev/null @@ -1 +0,0 @@ -System Enterprise diagram for Internet Banking System«enterprise_boundary»«boundary»Domain A[Enterprise]«enterprise_boundary»«boundary»Domain Internal Users[Enterprise]«enterprise_boundary»«boundary»Domain Managers[Enterprise]Personal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«external_system»Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.«external_system»E-mail system The internal MicrosoftExchange e-mail system.«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.Personal BankingCustomer An customer of the bank,with personal bank accounts.«person»Manager BankingCustomer A manager of the bank, withpersonal bank accounts.«person»usesusesusesSends e-mails toSends e-mails[SMTP]uses \ No newline at end of file diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.png b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.png deleted file mode 100644 index afaa837b0c489888f61f4dafa52295d1d7df87e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71913 zcmb@t1yG$`vo44P37!ywy9Egz+#$fm-QC^YCAhmgL4sRwPjGjF2X}Yb_a$GxbN(}P zr)FyERwV_s_mW<{x}Sc!R}(5LEsBhQg8%^mfeaE8mWP0VY6AZMhKB+^k#|y?1Ab6D zepYofu(5TsG%|LC5H+$kve$DoG9=P>BQkY#v~}R5r?<7#vvzc{vZOPxv2q?AB!qxK zc{Ed0b^P~p2uNTZ*Nh`A3!6pu_fN+XUi{~CYXy}Ss`T@`F5ibDgCf}l&LqGgFRSBu$g)mQml=)G?WH|DmMF8dkKri z3)TdB!_1$Lu-$=%$Vx{NNh;Gz&S|^rQb5Ujcf5uU=cLgwmO+fG#(8L+=Qzq^L)+J- zXb#({mw3f`yY#f;!i_%H4BOqeLc*Zb(O|j^EBtG2{+IyF&DYsomQL4s(L$0ytd>*_ z#t5u^s6|+UIVS%U$XA@$OXk0o3osBr!I4E%<}g$7GgI9Po5(ZR8q2G<$~RGr-YUD-pe807;UX5;+pcX6 zrm1*}WfL#*?m{<^F&z6nK|p3@MR(?#^Z9-a|KY~3{EjTu3ZIZDi??1wWg@s;J^I9y zz+BIeR(2=gxr^&`6@h<1&qHj1JzKU3s{|e-#Z2%qx&+1&`cZM6RMx2=I?%E-2xXHC zkA>*9B6I%@eE&TX?Is}_?UsqsFL-;N z!Gh*>9lrSGpf|QXM~{!5IB9m`Gby~lRFx;C1_zo?{DHys&*r1>)8@Hd=CWz8wrl-H+e5p@9bPiTDH&kqtB|=H1nCIw*N6ue zSO1Gs(sT{E#}I~uVu?3F(Fa;zh=uW`Sa}yuIl4`$*Sx>zZMl)q<=1CSs(&Kq_+SDe zk8pVFkK!aLXls`lhh|tTB)(IFY(n-W2r5bpUL*@WtV(SNa;t)T;Li2r)t58AJcc|v zv3Hymm~R77orF_&EqgFS^NM`A-UcS@#JYZ&wHH57OklQKbPD=B+^b=Gz*b;H!B)1# zR&QN9fi3(=^B@D|7mD%kc4tHOn44%uYbo2j>BZNhlTQBrQw8meh!TZT-p4f5@lMJ9 z7A$L@12=ItvRiFxT2c0#F~Om6$Jb}s40|6^$)c4w_m8cW7hFABw2erQkE6EMN2=C# ztOeKo@at;Kcp9gaQLY(RCe#MsOEqiTxWMIq*qhQb;VugVdEmu)=B^1tFB)~%AXyi@ zmSC>>nKT?{7N7kPHW*>u`nptZG$}(@b1JW4j(C}rs=;Msvszq~2d^zL(1pyM2Jy`H zGAWR)$3MH}b)Z9jLyc)BVO!{k_k#^RX?wcWcVzKW1ZCZJ#HH| z%82q;+d7@^g**{Y%)%!d8!H{yZhqoA|6XHl4pN~beTei4tYF_y2Y=VHTWUD}*$So9 zk$G~8LD`wqeyn1M8gf3ue{PN2WeLABnO*(3aLD_qh4SiJM=ZQPqXdh;mJJK#AyY(z zUjt`~g?$8~7`0DwzW{1~l0Bx`%y*qV;n#q#bmOC|rVP|{{#IWb8Gkx779}JsH$O8Z z(HTVMD~L)@v0D095w5<@P&wHurdjG=)uDWg3av?qD$Q)0E0iQ)r-j18kV1AtaLH!I z@bf-a#(MMICmg(z=6dSNncIFxKR99t$D*EToqYDO+`3`8tPhG)@t0iXGB=Nvv!)kv znkIidm-~kT0vOu}e^9;%Rww?mWZb?$rXd8u{d|R`?M!NkL**;?<5nIb>x3>xdg8BUgj2usFE9}zBX&kHDPmC!sljimsYYhYH_k=ZzU5Hro`m#Qx6DL*<90+v-29Un6n4rR1MQ`_ zFf8bhJs)xs;jy-0#OR^xJlYBou~>22n;%i(#}AxJNPkA<3PB3{SbhH$^&s=u!3l|k z4WZ`QJoP&C9+x)fGXyCt!|9Ohr5Tg&kJhY6-Egb|h~6hU<_A~8w-D9l%O4>Y?KZ3_ z6N2O*EO6GvRx_)i3*RubOLHZ(zW3Z%>~vMNk)*Ww>d5X(Cf$yz%cH|w!{UN|KqFLY zWsUIeji>iKv_9mzDYcOUHD3DHHzC7yPlgbE+`%A-m3>9=Uo~sePfxEP*g~X!IlEaw zOmbqP?IOXBM}{u7_=!BPLN?8)qmQ$&LavPv2_1)6aMI;1L=pvQ-C!eP-A9uS_-sQ@ z>LA{BD?%ZY73CuK&-->jSHm4b20~A=7QKRXC8dK|i)611edo(pxJ(fT88MgRU4q^) zHyw5R6>oqi*4c-(|JgF;X@TgWR^Z2GGasJe!}LvXz#%H!0wD?s*#ll*n-OP%pC&HW z`!55L@V_<1urR)K{U9Xp&0b+oOyy(|$p2g;@{POC<#c>WeUt6=`*zKUfh+6x(2UTm()x)}QfQh$zf;JnR zO+O&iRzLyiRK;fK@L#Jn`{pVsoLxvReG`&h*Qwf{Ck{QgbWav8z{A}HTfdm1npJj&5O7f%P#wwp9D-4-H&0UF-dYL%2aSJn9ks1SsNv)e* zzc9z%QOZs_y*U`>r*F$JW{&&HFzU@1iRS2_DNg!obr^H<-EIn->zhb4&QXuok!S@M zTKpU5>fm$ih9EMVLymjolIX=1ntQ{p&7tkoq0gK(TM7uX>rWZT9Q&Bx(puCM5WFs2 z^u-01FBV(P?OTpp6W`fdsrn&)Nf`1#xLNH6rHlk5M>>zv{QR<>dB9ms!Y0V-6Pd!m zsk4K?sMo*K!Am=lx>FJ8e!(70x7%QM)1f*K*4G1v!<>=-0_*1@*(<%J@QuTJs^(KS z^{JEf{{4_2_&xVZp5UV)u7ob`+Gv#(GzT_Di`dNg1oVsuinHK#hu>!4YHWeDV~1g zs(1v)d5`vXhd5q2=JvajCxq*Hf07Qy^+Q$>C7DRCpt93AxFTC)pYOD6<@U6Qeo|+L zlKlp{B(-6bozFy>znHvZy!ruR{1~|bFQ1sCwGca+*9y_4M+SozN=dX?tG^M~Hv*@s z+E|gfIGB{^fVnEhho8kf3v*m4^5(+&NBnmX7fgKkRD=-v-hFytN^4eH)ImjFje1CX zVQ5uSuKb=S;++ymvF~eHe*Hlyb>17LS5}{l3ut$z>g(5(eFMQ5_@v2VryeX-#C?jC zAtZIaWoFhF2!ljN>;7^9R}uFijH>pf4U$WU0M{jFPf{DY>K8T@SDF^Wsp7U)_|bc$ zYgRSAWj zPfG5zoe6_GSM__zN_mx5YpG|F&)^y?c0{wU$(s4=tFe5a7Hm_3`;xSvsAa9Ki<4w; zKj&IbSt|xV3VkT=jyVL&!7~g zXSm3{Zy+W4pLP%sz7QZ`0Yz8s!!|fa3=I#02#K(xA0MO8xui4ZK^a?#$7DlhQG7-7 zQEi79TzBn1qVU0Lpy93VkDYBdxZl3G3&B9XHHUxwn)vlJe;y{WUkuvkV$4@iWVtIp zw>I{D*y(?*E~PT(J1CB&UT`0%sWW@5JRS2mXtzBqD6oA*dnEw;Q#FXM_9cS%CxRD* zGlv0w_!AxSm-D}T`31ii||= z=y0*&MCN%@#@yUI0#`YrtE-F9UZ8im-og|EGO@~GXSCyb?)g`tRJ!*moKIC-+p_68 z@}|ql(a|UCQ@35x_h2=4S`kE>)1i*XA^3pSR_=|UPvHnY14v(d{M5VX&x(BRi&h`n zR$I*8bliq_nAV*lt=^5gXt%mDa&ucQRk_~=gHH*+c_Ta@_&imL$GdC4h1Q{aXDTRp!7NH^QNVu+N&Mo^>}`4n&`&ur|awO#bHaSvgT{h z9oR;CgLtN>qhrHzj>XE?Hd1KR6U_v@u9KsD%BQHJLW<}KzVQLqTg>(L^_|`P2t^km z9XrMCIK#EYz{WNM$G`2d~axQS^RF5V)(d*`n*Q} z*iE0o>4cz>pO@#o8|)2V;eAf&^A>}Wff0SpuijTu5npa)p?&=R4`=U5&dIe$Eiohjfa+&mVA`i z5?jZelqc{n9LVfIDY1Rco zhlb^Gi@<}q%AUiEF}}Guc{#m}9~2CirQH3Vc@z zAHbC0&FsfBLh#w}FcN~#(VRCjxtMLo(_%+tV8>O%^ZU1h-TH$)w*F-P&ee|>eBg^+ zSov!T%ouz{)T@}VY|rxnFHDBm$z;-|&UCUupXV{~9iaZeACVm|zq@T(Qwj9R-tIgv zW%r!lc#hrlOF=95nvd>We^{uq_Dy+O;CnCupQ3`%n!Mu?tt$oiyB^Q!!A!kKhopl( zH!eOZgN)p|7|<8s=T)%AF)oAaxXa4mz`1wH^z?McQv;aw`}1m#cd?C>=+nEMn){mvjFWzTY-PnEz9>* zs#59w3x*bp_2b_E(DmE;`g)(M%4elJ72z<<$mpdruhko`4^&iCUDVG5)zoas#8Nq) z;OD0x-1-=N*1b`dl}0=0(qeLjr0l!Y>@I2q%=gUQ^iPxYdU3I_vBXjaWWGX%GHvM4 z1$j`$)c5w1T@Uy7n@d!_C3pTeZTC&t4^7{{vwCfJXBgYtpYKf-rH~sajs8%_E;T%Q zQCme{0350z=HSp!^{=HR+EVL!f1JGi{e9V}vaqcdmlJUe?9_2kEu7cRGN)Y9(Cydf z7iXOhORX!Lot_rcdgN3MbdOOw{N>;Bj70SS|w!7oGQWXc8tF{8$AL53{NEH!!%HSRFV|Er+ z3y(N!`GH@_JcSBVW>%Iq!*ZprX>o1sMSe8z{fy3&(y#(sQ(^xHZturiin$2c!T@WY zU9OYa&>GENdZTd!(I~uyO?M(eihQisn}r-rUssn1p?`GdV9f6Bu(s6O{mxbHoVX3( zyM-Q3?AY;W2XIT|#atZNrYY_of_-j-!y`Q#k_2c{G6B_KKga!}8XstI#d#$ixS^@3 zNmYbyzTJ!KJ;TEr<^l-AqmIX9a19oCFZ;P90hdWoU;j779Oz+$Q?t$8Nso~`Y^e5bez8gkWGSq#G)vfNE~SL>6#sx5hJVwmKh(0j2`7-%h3o4I|e?@_eWe@ z9n7T|=D!k}^Dp5u#`3;#x^23$w#slV#@O_Rc_Vo`b>jcT$mSwsb#DSb%(k+BYP^RF zLT)kG`oYUkw)T+fcS9JykV%mp~1%9=oDs-20JF4tx5Ww z&konB96E0;94_UcJ$6Te0F9!O5(sWHFMt!B?q;Nk$I%@)=BKBo5#X3uY0N^NVamm2 zW$*advm^*!F14_%tPFq-@Ds({5s`v|!nQiA^dWQ)LVNZ<7Yl}T+rjiX!)&lzu)o}$ zSbbVvO$477$z%`Cz67cy@IJH2sMzcCA-;Q2u<1)2)bKpeSpBuhNlKlrudiQq|AM&y zNcW4U81|F*X5WTp-@a@J0|WCkdh&>prlBez5)+o9^5heK%LiC_vAu(_=4rdib{BNg z#KeTX=sdsyZick(m3!s&odD&qt?l?c@31u;zk00KdHBRa?O{l;7ak7igMf{n^@NE7KU~s zX3z}wqKkzeiF*Qp2K-lJ3Kj2u>;Pa3K7KJ{67>s8pL0sUDU!GWtk`9{y1E)zX7;%h z^(nA11(jFn;$peqsu&YJB2FVb!#x@daT~-R(C+#?MuX*i9ug(t7_CbrqE-1}W6}Hj z@lzPN-7m#hd3>JnW`3q;BpsfdfVbH?N`jiRpZBsw96pFjcTpFrskVDPuqOFjoA@Ya z=-#ewHrr?_Bgcffdjgo8O`Y6=f}A?BsJ%x>l01C%681cr2NE?95fCnUCU6fVETiI- z4qy|KlEeu_c@rhxLhRFdw&l`yJf5@pT(ALgz5}ywJzj>li`!}HHD1S$K{%W?8-@!n#sz_8>E-~snzfl(?8ET72|!BHHPN}eK0+^XsyPw$+LFzrW6Z)2 zJv1eMNkn&WAkg=UYJ$vy6CpB$)fWO--v^>1-K0|kzH5Vn_-;?M?Wt++R~$BvH_t1p z@stY?S5a^zG1cdty2eDx@a8b0#1s_U4L%PIsD!+hOK1$YyZOH38PS zOVqi81FsS4y2{#Il0xCppduN=>IeS+O&R`=D{b_Vg zPT5X+v1PSW<5N8>v-)IQQk|o(k*uj}cW%!eOdxV(WNmG2ucjGPJ=7aCEG)cXE+_VyNJWU&aiZqjUC4`azR9k_a^bz6SX?9yhm_ZSZO z_wS#1hQZ8apg6zb*y`%LySvJWrV9%|p?Fbc=o|}8lzpdTy7#EWpg6L?O2EiVD`{bX zRBhdm=u+qMW=w!N{h3iLjtm4{z6l7ku1d6-n=k@K0v0ULXyCB>hfGm5jPiEORv+1TOm0mt)PfJ>vS+;tH1E!EAZ`SUNZN$f2 zffCjIY>7w=P}^~En8464n@ia1+cUA#3T7*oV8Fxa-#o9WX$QUR^L}T0$K?od@}Kp_ zuaDXO*@u{3yFE|l+cd%#Xn}J6II^a<-aw3)_-7cPCSdAoV5yw|bw4tYJ^72|sOB($ z{u5(>&3TJ40OhC%0y5q;y55CxTmtfeP(gr32t({0cH;q&2;#;h-;M(J0*c!dFFsnX z{2#l?)1dwPo!HB)X#`*j4Kbi}*snwYz9w?pTqjJVuzW8>lu z(SH!em}g^IQK>lQagA|lKGpr5yZjI!M3O(IqJ@>6GTy=&`|#ZAuYTllMsgsGk~Yfj zotN(rdO*4h&8eeqCw-l_|C_uP8T9MlYZ}{ArfJ0?NRne^y3R?MUTGpFw|fl=R+uux z{>^_v#zG>Vc?Snr72|N}Oiaj!uOAuq^U2o7*YnM=V-Qv8=sr%h$luTu9|s;(MCYL1 zui(t{u{T=i$f_z14i<@p0xb8%T!iwKiFgV%$|3Z*XEiBLi%g7rd;0=< zNUFlB385LjXVLM}^fp22vZVlbAOunZq{b)=6;^DwR}}jAx-}?^WCEN=3e-G+Mv&b&r{u zy>{O6@zjTsHa}V7$chh_dO-QI|6nkV07sISqf+&2=@&)CFD}jm8lH*8{uFks*4>kA zmrNqRrLO$}1sG$4xH^&-vpr1(O**KX1;WpT;ASUqgO8zvGb6@P(^fjJbzL15#W$J0 zu!Gb*fAecq#V~`PprLEN)d`LqaXkoi7s#4cVoXz$`Oj;Z1txuWX5=3W%)=mZ7q*Hi zp!{>P_VCcl4C{J91&8p6#v+99DD8an;qhAlKep8H*)e{n+sWbC4=_2b^}B z;QDxf$dX@5R^mtFeO?GG8cG85!2O@Wv_V0^dbZ!oG#%QY#UoVmFnTE|u3>|9btsAo z71xIk%lZR_L=}dW#3ny}0wlHN2H;_gD&P!ok2BCf^=lB8g%LxLY;kF&it!G0X#qDI zSh4pEy{1gtVKY(Lbz+siG;}~zU&}=nL1J()v2@EUP=gL5FKbj*5mkow=zw{S1jPIa z0Gl%anRtrU@yBA|LBY{k)YQEYm2Bym=`Hq8LEOl>O>|()00{C?Df)wxH=iWJ&Yz)iM@L6e5mlreNl7?oHLZKL zXJ<27JujQu*R$McKy;uNfChAyEM*E4QBxBk;4U-nSGfH?ccciv>$YICt&4d3Jh8Ss zzqYh=QPX;?;@H|8#(v>1+S@MxSay{P`!gUkSbmcEWT_1o12fxpx2jcpPtz#TGmnau z_susb^5tco0jfS({Ogphg9GgrHT?G&Q?nDqrE{e=fuemP!hN&LUf?vb2IHF76_d3! zfa-GxM}D4gHClxOYW*k7j7i1~72dT9I!S$mx645wMieB;i!w6QXW&hW{d98QY#?jO z&br*FbWzjcV`zy~nj1TTbwUi~-$PPZSoF1G+ntYe|N8QJkQ#{yhGmY1)Wq0iIc?xm z$U+kb{5#hGs7CuIk&T|<4|V4Mz2}KONwQRc^0;PpA{3)oX*Zyawy`X|&7io>dD<<# z*ol3dFP``S`+#pIKDlg3W*ORpD=Fn2^i^^tz#-_Z`4G)I#}i@9Jb@6epfHXuOPySy zjV_=&^}Zge>Fs$c=pWUOkXH&6$KrmGwJpV<9#t`KPA6H7T)4qOc0w*auOCQnFh3kI zH@C@`sEUZ-xozB9{)tlhy%?iEQFa3`kw2El3b( zJ4Lti%aXQ*)`Ng|fhOWB1A!^*jrIR=MnJ)=BR4d<)by5(J~{}?=7E=GE&)6u$GPk4 zT`HACOtKC8zrO-zQ_5!T?CgZSKS-_W-ComN=xk#vW-6S}R)9r-&7q<;GdT-u({c?% zPC@9`rlc{AuqpmGZg19@wd)AT@ghB0Z$^cpL$@iLnp=lP@W9s&%~cp&*-1zwSYRN9 zhBSkBV{tGh`1JSh4dH%^f6o8cqxy}| z)gdpg7M+~7rLt^+$N+BIpQv_WNPj)^8hYOKnV@K(q-0`3&Y`KjJZoj8Cd>g4uI8W6 zZycw|>TrHO#Z+74Ad|*c&WSvSqa5pUvJCjv{t`6E{qu{1jNj5xOcLH!?b$h4q&H=d zv1I^M289ze(~oQiQ7_SP3qGf0ZTyu&AV6+RZdCG z{K)0P%ffUoa`mym17JGtL+cY0wO@^5tKr%rKL{IeZrLB3mj*5ADVR6kj7 zVvp100%XMJOq2I+kDCyyzrvtYB4{{u6;%%FQj9TX%@-Nv|s(eF{Cr@N}@ z=%p{KX-u85c#(@}g5C2Cg`>6u}FEiQM9^N8r63Ix<7M)HV z>e71f9}XnjBmHx-QWr+GOdFzs`h2BnwZ!-W`j~%NC0AV-XQ_Rhri`*yvn5@|PD@G% zKSVv$9#`GK&uzgtO%wH>|1#lr84=Pw#JVt{zew(t9U(G_X^Ij2at?sG-}7Qe7SNAV zqx_W$R7%rF*7R)164%ae4ntzAhw%icupmo$;SU`TR=Ru%OYZ8KtH1vSpi6x9E&aGl zqrZ%Nj|-UlEcUXUt}}&KFt8orAFT|JcK-({?{~_t&1cNfKb)MgDA`K|D9K2AhUm+z z`C=1_3q%A)h7ZTDIni*lUAZY6%JZizTTzB-*dwiTPysiVJ(3odTv~c;rOwVueT{&e zECmp|6dFJ-v%sy-`J@K4?6lpj18`;?wS7!AD^^lslbD4CCV5ro-JfgQ{<&S&eJ#m2 z@y?XnA63OzUefe@I%eN>EJ%dN@p;{U8)mu1Q!2JVJ3G0Qp7#c$D%}CO(+CELr#x@; z+fr6k1f!VD1x3T*?%_9f9k*|$2FBMCW`Qm>omHOz@))>NN|$ov^$!fND$^AIU}NM^ zb7>%8<^yeMX|3X0Kl!_t%K~&eac4VIerp;*Vv>5lZ18BWAL~MshW|sS_o|=lMWIs; zX}$l<-N#5E(%_*IP9Surf2xn``+rCbLc;$TAjQ##|RClAEUtneyv4*H|YKI4Ki6zKIDl zw_|mHRT_m1lu$W>5^2iUKx}2d>Prw;8kGX10D2s!5VhO_hN$SwTG2KdzdhBn7pHa) zbYs2eX63auZD`9!7sZ9%KU~7QhU(})%g}t31k!Ci-&MgTb;Mtr`VQ-Hj)oB>%hi?I z9y=)N$vlB-&wC_PH`EY^=_w7%3yBsm52qLAqK8^;(xvQwSX56@U3cla-hed#H(y^- z$%y}c8;4RP51ePzf~@{tAyAKSp(<*;=1TZs}Mx%ctX zqr$}soUa%9#mZrsUzRCM`sszUsHLXc=MfT=Ka}*8svLp@eZc4Hau{hFp-b;gnuR_K zGgo+dQTW&(xC5#8_bYBYCR9>8cjfP8y%c0lPEIOXt(Pme1L$@@a?iuUL^1^P*@R_| z1H#J($qnzv+S%sb6!TZ38gnO~ym_4#wa8G4_k)_r#0=40=b6nd@+xM5ea15fFlJ-jLS5h-W*Z@;xc+;` z7*v0M4F>p8-rrA_BQ#Vd0qpr{5vbGrpk`_*141_qcmo~X*1x0xX_Gp>d1M3Yc5BHP z2&#?dIvM%6AFkPKW^{SO0)Z?_aS7dVZ9Mj!Ax%kXhfY^J?)6b~d3f2!B%__taJ2`0 z6pZrm$?FviChwl7hZL28{md2@rIr-JgG$qc1eFlvLj6co0+OC@QU{V&Y7@KtSj@oH z>;n%r5fG|1p>EMGv-~o3{z|tW4MfW{-6a0KtQT-9KWE=2PdmUnd2EUAaXKe_&e?k+ z-2>u@JV{Z=&)4!1mP(ZITVHI!oxWw?xV3?BJuLRFTs~b-DYE6-4No1?D%400RI<%E zr8|p|<Hj4!kjcWUs(uEmPgxNF$!n~Sv0Grc zdYk)G5LU6>jlad|DRuM>uLs3VXEq&gxEgy9;Rt8_$5e9UcOIrNl4^pa`9EFf+H-Pa z-vlV1e!~rNw%Y$TkR)E8!Uqa94cwkpR{Qv|()IcLYn~+bvhlpz+>?ncJe$** z>;nwo1Vgh3L+}s}6s^D1ptmk@Bd+L4Lpf4>1$R-EezQI%Rg)@Lw0<>?{dhM_w(j{y z(wJL@AH42Mc-uHeu>!C_Hc1St-lRv(L!&WFr`<#i-e*vj<{sXd31{m>MMmvevs7yW zXnQnPr8q&ba%W9*nFlSYgErfB$iEWjy_ytuSe~DsoQ+beX>O3H>+atzUV?$$0qFL( z9UuqWb`Auha}5M|pR-MK`Ua7csTbf$`#~5BQ%0`>^C>B60wE+p)cF|H*7a?Q8k0U62ux%3{>{lG zbi{iR2WPKrpgY@NS31vjR-c{iHo8{JNOL5mdI=^R=jKzH!#BL-YGT($?0~-m3V^LgjAtYGW??%%?ec-OxtIZf&8*H&gTxYP5B9e3$yGr>|G{v8H2Hv;FuDs1a`T(4AQ{ zOAG62x z87H= zXDulxJpgjg@U|0I{wVQ)4Tq3dI9Ev{N@ft2lL-d{JLwsyeg9$CQ3b?Q78MN#0sTSW zY=NBlq}D_%R%~J4tNEpXU|8wNLIwvpswl34!B-cugs0~762pz=-wklO+oZZU>q9cXZ#Ob3DA z`lrAUM=BpP7fphFx@CHjo2JHNP<$j%LWqC$QbO3;`cpy}DgiA}V{)YfN~U}%Z@#Kg zo=10taG=lw0iL7?ELYcrFi5O2@_IiI9wa`jJ=0hyRNf*FLd zMf&|j-cT|FYd79r!9l|CP#{IC-5I|$T0=cgvs711c=|~+8p+A%(+8Hv9|PR9hp4Yx zJWjlzKBW&(pW8GZ1jzLF|93GVBP{`%`p>0Fza%K|#fK3E5up=D%`U4=Iwq6X<>#*}DJk?(Q)}J<7pE1*gbD4X8Bp#ev_*j!EiYCncpO zW_nDvn$48Noqt1j5IBS>rf`eOO;olu{Lir``sy;gmhMYSzl`Z9txPeTl(z~R3{@*& z{)A58wWD3Aw78aH8*gJdgwbn;8Bz5umK$6|CHp@)x6CQcDzIE??YBCY_QAS|!ep zy%d$Fxkb?K@b)^GEiWmd+JM#n`5#H*8qMzR?tH5obA7kE@0jGT+V<)*0fnjjzUZ-p zB&}w5D|cg&LEt^=;N;W$%#Tg3Ti>YPZ2-wxxP-VK11qbt$Ij^9?^+=0PT%+ta+`B% zC~K>0Pt44eSI(?V$jNKVc@$Y2JI^jfLI66}Wx?sMx}=h)aSbjkER2XiGT1X;JKq{= zaXw;7dRq$F9zM{ypZ2SC&gPQWBPsLZ7`F>}_aKg)pxVP${mIzmzEPNhkwpcP&nM?+%?W^mhmF>+QH`dnH z$9ESytF3MUaSICz=jZ2HSpdMN>`qJq|U)Cc%IU*HfT>f~xvNive-!}qeV;)(T(vs50 zzc9bxeblIajZRO?eRQx$_%^5@R88GmKyNEB{KLBqpth#Jbn_b~YJE8fb__;)c z4ZvNuzedbUoW2!ffjrIKag-R;zU%bXiF?vYBps&&6Ks0-wa-!cY z>vi_~XM1~lzG$>QMi0=C_u*aVPPUKt)}Y5#LP`qOyLVsCFrZ(W^jeymbFiv_?i|#i z*w{A>^|D65b3M?e_90nGYD!R0kO+p=W`)*(8RsXzww&Bq7aSoA8(V4EIAo0_1nbdK z6Ehth3dZ^?p5$|KF5gk1B|HxMR~kS+#}5eq4WQ+ehK^2JOl-c!XsEN(cbe(4w!NKz z0ML6}TwDU$nSw0MhpftGUo}Mq2j;idH}RAo%uaTH*kR%0q6cgyC=M@H#iY9+Y=x0m zNLn$7{Q7x`NPf%pn|gSJFOaPC`!O;~m!quC!N63JDuL@2!jRbI%X0`;ObvN79F&!P zbrSVLy6CC}jFKuYJ0c?fP=aCWi^Kdt#d{RfD{KE`{K?q9#!1%}?XJ3|2yW=lQw%Mu;v6nwtQ+p}Dk@OW z0bwzD3rt`yTvqL!0S}x#q@?%i^)CD4khI($&)g&w70=om)e*E!y_Tjl<5<2E#s6qQ zuhT3rF7EAcR(e_*!?@swoXz=agLJ2uSk;(}jEFcyOuGL4sUn$bPN30PX~@nQ(3ZILi?fI~F?0B^!Iu7XL z+USeMJyu5g>1xJzja|}&Ph6(|Y@V=Z7-PqXJ_NHr; zE;UUH3W$k`A!^{IZNB7_rP&3T^xfv30xdwsMq8{;I5X0|Q|>~fWVj#-O!M%*)L2_Pmi3OJV<>~#^<+A=?&q`J?fE_!Hurq!+@x1skWn z-U2jm1i*I+dU$X>>xV@%;tH`-tYQ%{?m9a=Td%ga<>y0d5K|CQF)+|Kj-Cqfd*1IA zrL3k~d`vl(nXc6TlH|w1$%#`hOU}lIiD=*9{}dTne4dLaCnsmBKA3#i`S|z)0UMjjcThkJdtWZYbey-ej7&H}Y{1$HKo%!$6|g|}P}oVhVx^WZ(Fa<= z3aO%39-RpP(gnj+bqHcw9`SnTdWI)D$QdK)5W*arz*jgNFo)-7(*PA>g44W&_FfmOW#z@yWfJa^+Nui?v=}^>ni|Fg><}^1qfBW{W zpr9ZpXYFtSsJLc#*lqNNW741Yw0b=_1MzJlU$oc!OLC5~>c^<4NFI;p*01H|73~B* z)x+pNSK=lb_W@!AU4p?10mze>m{OXrp`Fcvc)sN&;%HmeTF4UwF*V23T;-->dsg?7jvR{@FaxNl-{g$kMV*4&D`M zIuI^jp_}FezBAgh z$Nv;z8X?QU-FUmd+R-6S3w9lDWmxJJ`%8?8d6^dZPeson44@vQqET3Vj~EauuBG`6 zz@JfM1e%PdO&!#{w%Mi-YnaB0oCQ>Y`zidTY&-i70|SH5`!?6EQwMSlnKyC-?K?0f zW|@Zvcn?fLil`uNFpkZ4*b_CSGWYE`>78eN_K%LT zqMVc>+_JHPRQU~@wZoDtwb)E1mB=2`agim>BSfMH0Nw!DI0nEYBYGabLH&^wXgiQN zSC%U0h_4`7UtKcQm9HH~h!A1MPHGo253Coov#b7Z2>=_4^BkWx94#mn1Jr<%^2f-y zV_sH1PaUZ52AJmDB?tT;A$-;KK+b$_`v3RAnm)jD(&Q~&;iqoE*IA^PQO-+Wxd#2w z2cWo3pifBFw2>pV0%0Bdc_b2+;t%iX9H`RtF@JAYEJss@50I^hfJbV`tjNeWvw*RD zp}asGzH?N9AKTs*gZ?Cv&jna;>R$^E1{gr)#0}Bf!aSB9@CQ*cs;l#+qeZ2HuB>dL zIK_-O%dsz}Li<}bUs;taA|e8h-L{i`x)SU3^&gXwrE%>}U049>X%6CA#Ov`U?mW4@ zrjDXPTbv62Sg(|vs%m4i3wt-NCr&!CWtRyBkD<_pmxD4ed};~Jj3R#`3~A`9K%~5i z7@*&wQBkZYw=@u~T}9Q{-S3qrWN_Ho_SW>(ocKGE@EiNdhB^h)C?s6ci%R( zu+S(+mF`Au#l|H{@&_!^7$q{|OXXzp)7p#I#{9_-asRQ$13!zo3a{%0lit`>iB9N8 zEG={b{(R-rpkf2I`Zl4Xtp6F@tyckL#e zBH`5gCm-$~ql8DW7OA6#0z^;^HE}-=Ev<1jM69%shRbMm=ZNp7?FGcRDq|@z)wGxmNXq4E&vlA8XO$W;9%zBvS8RfI{HXO z#o=~tXl%S4ODcMbIrKr`f6?`paaCfGsaLI5_k*;R9%^cdWXS8MKID0JIQYKm<{zptiOTkp(_!-e)e= z2wfL|36!Eh_IA9CO}^x~;L3K;k`NbGBp&Ra%~y64L0E5bzjl9@KdM9pp{qlAdY7XEn8P@Z14DQYNQU3bX_Fthdb^-0GZ zA-wUv`XD0GyV(;8WWk8-uamL~vxzI7U(3s=Lj2_wA@&69 z$`tzNTQ9S4{wT)vLa}i;i)SRpJLsRvK?etWkVqx(^ZVyOKZ_TkKln$6VZiyP&|53X zT62nb4y&LkF3%OMGz-P_j2E>F|K*K>KS4WsOiVzQ5l+Hg^)7OQ_VAE;&yACV3^5;h zKej2+e+c3)c6#<)aLBZq9Cm;=jWcEi|HajdM-~^B4FI zUPC|8;6Q1XzJ>yH7O1eWu%x7+I@QG~Co)J1*Y+Z#L0Ca#PuWbI>SsUxa` zONsv5jTK;$P*DwVsRB+K3KS;1(-gw(U()=VeM(W$I6;JTb<-R(|X|C@dESk z*>c?om%{U(UyUuUL4;tPYv%asce;-MOb>6*3Ej2fP0;KVe+J@WpFgp^vx6)CF$?m+ z^w*uhFBkdJU?*I9xGGNLAw+lDa9Q<{^tr)dAWLCy2rny_e|NBqb+1ag* z5iyVb!8i8H!O=qfP8$MGmfF_kT4LKYXAh_U7pXBJx)&0E;j_qDgb@*U_a=L<8gc)N1HuAwiG-f^md=6(u@QRd3V>JOCvG)&3B$14DQ zVBF9T#Lx^h_(d>ce>Y*`Kbvp_Jm_zLkM{Y~{>e$NW}(Rb?lsAO_S(+o-OnHY>zmHa zDBTSfnQ(~zj>xirlP!(>{oCuu#<9_Rbh?gR`ki3^(Qj z{1m5SXoghuR1w)fJC<~GVxq91z-Fa>jLXm#WfJ`gu8q}&y())=x5I~zg*z?ItM>~E z=a+rV2h-CkCD3CzgY`!&##BWZ-H?`+78VlXxbb)aD$FE$<_Bi7&a5JnCAn%7a zdBzl)qW%ZQ`d1(xkOt_RxwY~EZI{Pz7w8ji_P+v?ciG^0v{Tji^4t|s{#C7dhjKJ6 zYD**>$&_;aE3cfs9RiGyzp6cW;NpSX>K(uV9()_S+SkU%$HA%zxSe-4cG>=Kkg^e4>FalXDrCVHF3d5?`7J@VDtt&H$w<@!4~!h{9p5m@sK zP}bT!8}O6>Si%9|7WQkE#n|B*X8`@C7kJ-ohSmg53XAcc8GHvWnvZU7ZWb0L_JQ9G zd$Q6-nW$&AT{Xmed&kBmN-qx5(w@cjv$tEpO}TGAoRB^1$49$@fJBY#>sM20+cY&h zJbt4e=wqLgR}aOt8_Z{C&Pxfy!lWjKZGcit>w*3R+RxyC;ccNsFjM;-)Cd?3fkQEV z>I%SvVoG|!kEsk=ELKd7`~uaEdvfuw^}Me?P0dO#HXOYJ)O7O)w9u;37OhX5{9Z-F zS$w`W75m~z-m8I|l$5W1O$wRMQyJRwy_d^d?N|=Zr_iY`M?Viz&fza%6~ zPfej>V~0-No~$(B_*Lq(z;^uvSdP{Ac0PJ~8DDPbk*d{dqk(}pz67YKA9QreVXbyf zc1BVFLKD&j>`gqpyeey+x2Gni&pfN`QVq-xZ%N7Uhmyp{)ba&{_sYr`svW?#K2j3B zLeXMu4nUxmDzyftqQejsI@`{++*^y5Tfy3GkJConLq+#j(-vz0}1T-QD_G?ut zS;f_ayhj}YY$OofsITD@rK}+aBs@HtdZqk)P^ z9X!sm8Cia;3Kdn7$x~m}@iAaMNI&-~)Ru=h93clTDJ;*k=z8kd`in?W_`WFiUTX1=_8CYuAzek0y>vU zMQwK*9P))6Hj&J`T2Eg)3F9juu^hCoIe0Xt;H*6Biv+Vj5Z<%KWbN-CE5BNrg|S^N z>7pbb-cB;QJr(eyt14_z!)539O8t@$p&KmPmpx(h<41@K(24`yBZ~mgoGaA@J>(%# z77}@K!ix?Jm>zuhIxBR&*@D|N7lcD(sBhHs)zZFrTE_Bw)%$uNLW3 ziOK(Xr8F3jmq(7v^j225*U+wSBUB}g&S)}WO4_tp5j89-%F4n57%7AdfJ@(WVUlh< zhp7Gc#R$v-BJNbL=|U<4932&vc**V6)qb0xSf{U#PkY(T?QLY~>FMdupY|G{?5rOj z=9PKmVsf-#AU&O~HUThP*IH+~TsB3yXRA6p*R3l51kn?cO;nnK6**xOVPRn)$-_kdY`#FcM8|zrD1(f}YOYe# zJ{)X76O*R8QH(tLf_BFi8E^Q>({T<)z!le-`l+%(6&Iw zqL{nR$;`q+Lc!XL*IFE}_-b@N>dUsmxfEScXsA(#ho`6O$#U=Qz}TO?jDGdsN!rIpxGregz>C5BMpAmn;B2=3BtW5loU(=3)!J(0Q^4p z*h(x@=&4x;kMHdUi#K-XIf_>*q^WI=NU0)BmYOaN=i5^sC~)g)+gyX`=k5OR7X;RL z?49b&*+_^aJw=508wT#qj?&zlA4Wd;{E8`#-~dZlu{smeRN15>tXO|hziqD$XMs-` z?NP!a!@_bOR^)FIBqHe^yhy;GJb$;5!*f5o{PaW&Pgh&tAdNsxOEaf!hBvC2vwK6BHbJAAFZxMA`KhKPQk$vt z`qfz>e~59O94da1{Eq5@IyFZs*ZA1P?Yo0$r!_TS;&%?lR-*+*ra&Nz2JMW_yX(8_ z@=9`PcqL)LfUrozJlHu>jBm#dCOAZ|#s1O;ctq72nnU$*Nq$Kg&Z3Pzpg?N3_x<$i(RT+i0WDtP(ET-h3R-nt3HZMz`ceYCdrKHucW>-ZeXThdO=H`l zWneg&%n`1kHzUN7Sw|8+0K8}!=peeqk|Co`cbj1cRjK_z=#2Np5S1b-8Hh)TQnRtH zg-Z7H@DM?QfrIPtd0f`^mb87im4-T;QxDmra#H1;fD?P_GMYDFRW0$!N>!BZ2um1v>Ua~ZyBjrGCDG}8~ zd34Fx7YB@Oa4w)srK_I?DKK#~0tteZ_f_N4@z`Z2$HH5nonioJN)FpY-l4pvU+^}L&G1_ zl)J%^5v5yEyw;(gY|37FS@r-|LUYH{9SoQv(X)$*Cn8jSUx_wN^)j>;L~;#M za?&R{0aaYH@aDpfUr@XXZJvc+FCU{LXuXYs2LDP9V}hK4wX8{}0Rw+FI$U0v>1z^V zt+dmqOCb_0!0=fQd#NZ|2y2sX>SyiME&mF;HI-hc0I$lKx5S3NSYKZjEiGd?7u8oC zAXHp(s;H6D-r3DkM1C=(0r!pb3~EJ39s@Ud{TcWl^Q{XAO-)ZfJUdG%MV5x@2h3#u zv?zdJkzT!G_)!;bPKarOI}H7p_WAR#<{^hFF`KqN_9sp!Y>(|6q%gKeBTD?pR|^OZ zw=-ku%kB$FrNGNrTB_xMfJIJIge%#1FV#eYcb^NS@T-ZzG?5qREq6sKo&%ms{=pPS zfUw0#NeU4a141&4Om5Foa7mx&hNr93S6uapch1&#u(9<#_cF3sYLAj1QVuLCTGoL? zp;*Rj1~eAK`gWTam@IKELr7XFSDT13ggA`JneLe z(UHsqs01@+U+vdN;{1L}uLZ)w{^Lj-cK4}l6#MxNEN1>$Q2t-}51pv9^K~YlrwA#; zW5be?}Zdh#rS z$VNBq19aSfwT%bzZm`7e1QKuZn7}Wqzxn}C(N`cqWDS@G`S`#bH_})gzi9U#aS{+f z3HV^oXhMe;l$1!dX-J%d=qFQSV;tF+-(mkcWQP054@UA-?P57?*NZ0Te4p<3fE;9G zY%Dr9_ItClrI1j-)Uvdbi%TZAWB)lOtlynZ1_Qwg%{_<$sL*L~*&amY zT59+9R99EGv^)wpdf5ZW+z1qZZ&lUgMI%dX?NuNG;D5UN5f%oYTI@+CB`uv_esgmJ zB8`NMH_iZXIoSZVk+MIyBW*Z{c=-5aWMn&@^I-I6V`KAB1GE?+A)&bq7|?C8JK9h5 zx%hd>$VzS3Lq)~*ws){I7`T(;n>e}18Q4aw&MKi?-OE9`WdkG`*Usn)|E5Csf zq~m%@layH_Cj+vnBfWK27Vf3Xyan*<;^W`0aXJrTPD{~oQ9k2ia-?+u_|G{g{Zo;V z-*Y&OB+F5-utMhI;!rgD;>y<9tQ%qdB|E&9AdNbH6LE8MZ9umM*f+h68O3B$H7KCUj5R# zPvpCU?`MjYl4KY{_5DwVtM|g|(v6MDxTMjsiSK2_e3^-eR6sXYU7TO;y?$-571yWs zJD2&7(^PKgP14mUH0lR1Y9_=M%&)e8WfW4=ZKSrYb9Mqu2I=R*0yC%ozw>{=wesg? z4^S4VhluuVV}4QfB&h&CyE<2=+$PY%R(*Sjc#?S53*IWR(i4jDvmL-96TORryq?aN z?zfIqSETy_!s?`$3qb^3rq6@TB!acIwV{TtE+Yj_Uw&RqjRRPd?+v!!KXck*ITgOz zHbP<2ZH-fD>YtjPCM^X?8T-%O_20p#X}QU<@XV{sfN;aA{M7u|l_lpLA zj#2<^!28~347+>E+78qr(~Z`s(iXuW_Xpq#G^@vW2Xn62uQWHo*=z_MO-g}|j;=_W zLSpQvW?hVke6H$`HN@hH&pnP4`_ zxBdQZSA+eH?tb-k$>`{K?lw@f{G4A~W9vwj>;lM8CZBIbyDY)yxY@Zm9p|6ZoiyTuhLFWUS&HrtvWtX5l1y5(R{z)f@o%pCY5C0SHT~DH$g%k|z4M#c!QP z7#ka_@p!m8@F6r7FT#9xUwO{N?>0-GcC;M*`R@fefGHzM|6&#l89tfD62s*uXP1=I zrAfp(QbPa*+{I@5DC3oz=loUx-_AP+?xUuv*2>DBPGN@0wG4PGLa@fyvh^lUwWe+> z+sBUVZ%?xXsLyz*K>lBnCO`}11PzCMPE8HdXs6A}%Ci0VQA7Rr#RVu}&xiw%H8ySP zf0Lu5j`v5^Su-HUMrH0xncLhnD2s`W1vr+;x1)QRVuz>S?ksK~E-D~J6S5662U;-u z4}0J$1E8pee1m36tek90M>;R}GunijB*GKZA)`!CaMoa(bj?Z4zI_%5>XMxe*%Z&xfkK|Xq zmY$x!fPV3Nx~?b?nDBFQno-Xhft*u2yGiv!sM^8Hy@^+Pc0{dPPDwxT~n~PD!*c zA9HW}^z?W&u|`s7IJgwp@u-0do`Rz3z7T+haVBp!FKKBejvRPu98Fzb_hUM3c+J7= z3b zc4diw68$TAm((N9N+W+x76NkjXN@p*W=a0W1m&G2 zf`1#TeCt1f8{esbFdgRq;g|+;n14S|j2YGmc0uA__p=F*VMubl0YVKBTXgsj2S)nu z&-fH6Ii2#?i~!Pn{^vphm(s2XfxOH>Zo5KrUd zThcolV6NnFF_-{CqqmSW3ax zgLQ7K(9CIV_42P96}FgyDM3-A8(yZvfvYCyE# z;Kku-BN5#c0?4&__D2!&TdZRcdo3?C0IJ7F5CkGEKZJOiLiZWrY5)Xwbce_xcTKVk*?aWu5GtyZm|j-y5A znQ;p9@?OBf9ZA2q;lI{e)AZR1sCGitwdV1CdKc3JWTYRd^_ZP?1&q@lC303Ay1;Mc zDBrrX4r$;$m~^!<0%k48-@t-f#hDC0OXC|Kz2D?-dVB+isad96S_DVH8nh0ZhJ)2C95&N+c_~iI|kw82z{yU0m&S2 z6V%y$=XdL`0R6;J!SeF5aOmrtQ?o4Z5Em89C7K3?!-2Di2n3u)zPF@d(b2)t^xxY& zu{~#(0fMz({yTdbOq0B)49Vq~ySsb9;sugjx@x@azf@6`H0sP_H#6wDU^diNZp{@$ zs#O@?J|j5&R1TNGW;s{FADQ-iZ!T1dfn&RXW^RS>Hb`3RYv`9tdUL*mLMjf`{t#hf z6Vq>V<@stX`W@l^C&^%Q`e<%~fM*<}ss+%g;!s{g*AwBqt9naEcLb<7oWMSMa`NrL zcrrtPAwvd&nBWoG5cDWU=KjIZ4(fx`)7OZIfdqn*N=oQb0Jh0_7xP9Sh6EjY0uD$_ zK_Fmp4CKqUgf3PV7Sv1wh))VCD%XIo8_cfTID8jU3Uq<*WwIZl@i~>R!Ex^mMo$z3 z6k)|8{kc;hNn;5W(*i@OmAUz(8jCBDY&I3nl>PHe7orJ9T|=umIzENRXM*sMmWC!g zHdfr30&%iUsZj1M2Zzx6Y%gPD5tV9-4XfpG&=M2Hpf z_~X@Qh&-XXCyfp2H*AR~goJm<#ZBIO@7;{ul%wYUIBuqWd(P3jJ$obb?uGQ|Auuw@ zWzxQHmy?`u13@vVfUBP1$|NMfLd8RM7F?)R_MMzfO7(g%cYVKBf`CR~(FGLTcsoT! zj0XRpDTe44pOV!^$Hxw|nlzN~QPEui{?mj8+^o4eR^S99283xcU_v^4zTwGk5Q83{ zMDn0ipR+o!YCv}{gYk>rsG*H(Z;6_R)b%p2Gl<_hkAmi6;imaq785v@GgCN=m{Qr< zd4iU$a{2DI}r$4F$9TgC*+Q}82L-^ET`FQFav2a; z8)3rM&_biZ+S0qaxOB6Ly-myRF$GDi!@?gv#48J$P3D%w#5Yz}%Bx;i*)Eh?qM#4} zFuDKY?vBesMOBq?@kR<+c>v-a4-YM9V>f}WTaQx%2M5Pb3u(H>VlLOJdol*P4g>?^ z-dRIXkf3b?4HSy;T|RND!t2M-%&&hC^#nd_ZpJV{t4?*0BSuVY_~NG>flmF)KKhr; zyR+c5-wlOkgrO8q{_(qvdM!j4c#P0U>Q43BRv(uhLu2K3u{%xe%q3JpaWDG*OssoW z4a9%h%l%_im#{D`C70k#o<$}uDK6gLUc<1$vtINnp-2b3X$A#QaJV?zU(n;jzCe+$JJQcnc6j19)CqI3GKeYk7c#D8pX5vga=(Stk5_19Rl3`_&`gVigYdk+ zwj*As5sP78?xv^X-L%0j9LBl6N%cyUhHq8p>8?|8baaGYT3V81?6Sf@=o{%#%o#n6 z%H9SYS@-_C`0-nHZU0}(MAd_V-r)d&l3?5$(_b9BXEju z1sAjfmzjb>+`Jl*Hl+0XRe;+2`}=D(*mOZgRJF83vQ`~PJHk{O5~%fhbg(nK4t&S_ zinNNOH@HuORKWk+DDmaw{vwwUWg#Ci8&Z_``jda_`6VJEd|-T7bj+sATdo(khYvih zB^DMGxn<>*M#|kXF>WMeqyF$}>MM(WYAi;3v!i!Jgjs{T0g#p!rXeXc>9`L~FKukB zH_<4lQno)Z?8;;1pzg0vy4J2CYSprN4jufaV# zIy|fx+C?x&N5R0y|6Eu1Ha7{y?(5>>B7o>t`5k`n@bI8K0>+8lkHs;#eq0WQ?WFTN zPG?7k%t8=Jld7?Y3syCcXM1|F@%A>Y_hUHzS4B^8DoTX#AsTWMgDdDdJl*5(Dwat( zsAIyrg|DKmAWxf`(JPoo-}#DtV6lRvu9ANr$Ba!hsAM@Bt^NvDYF?ATQesXM73`8O zIs;t;)R2+#6YDw&UWsjqR^~)UwFiC5!s{Vs>=8OTgfWbAXMJ<{5V+Tie$ivHN&d2W z>2zV3!tgIEXa2LgLS*D!m=ef>mJ4s$YbxJ0%95{jZU6QrZ$>#;4Dlyv?C$S}rAz|H z@KGo$FK^@$1N;l7?fH2up#-WqZ4yiPu+LuBgF6UJxLOGSC}6+6xzS~{9bS^;kiqK) zWK^Q`m9fpdLn9OoCgpdL3Cx!j#2J+@)Hbl5@*9Vez>2$3TwPp13HSk*1GZ$mb@m{- z&nYQVId_e&IW>4I05&%E^fFokco`y)AKBWpce5 z7J_|v`asS*U}l0B9>zUBuk8N<{l{)p2roT-CkoNZ`uBz)e|Z&Q`xX45Fi!o5eQ~`gh;%e2V?M4YPYfgTxbB zWY||J6HfI(Jwbb}Cq11g+BvzoP^!^7JmN3JUQ4OdRG>j6B9{USqyP`k^7{Jv%*j9;s=ljc(gp$(#pS0Bgw}59RGDf;dzh)Q(a|`{ba+(M z%y;#`U@D{taK`vC5l3dRAXw->QWqxV3;o!U>d1 z_%_V291xsL_m~0|)G-1)m1X4yrW%^6?XAsH%x~EOmmvBL4fMGKb!Vv5a0+xFmvAM02&PY-M#m(TA&BJ0O_}6Qz%UdP`!Up!?pHmtd^xhkN z+l6745j7XVK+{&&+@h3NWu>dYq}q>WwKp#Oq%^LwYZ|Y{tj%l*-|o=~d_LO_FbVo% zs;_IvWXG&Y4_;I5osmrin-A=o6jI>?&~Ak;XGsM`|`fRi2|!DwQc~3pxRgAzv|^nffI);%6FnG-$~0 z0Jv^-8SEr?*!J)rs*dFRFlM=2pZoy)goC%a+X)JxTU&l4l0Bq4IjLj8UB#MDTRYzwv z0tcA9L_OuzLOgYC-Tt+o3J-A{n{VSqp3j93k**}m)%m>j75eZMc2NG9K|5|g4~dYD z4Sg~@iC<>Pw;FdlcEmy;q87N*-)}`Ssj8};kKD#3CGL#SwFXI~AT%X@s|F}KO z`1CT0DZ({Cs3rhvwb}V-a4yC{#HVj(sM3bbnB0H8yUtwfm1jN@?JIC z&17eX3<1iB+Q96?s&)`Cx=2V!iSdN(9G~6?DT%Y%SP&|vsHqNa^CsUP%H%%xK~Uku zZ&8SY1SN@#O{+(CdY1)B#VfFpG9Neb8iL5jA~z|z%uELnDN!8x9hL-`vvITEs8mBX zz8tP>L_t8UAfCcE*&39i`}Sppm-i!XS{@r$lY3kRjMmW`45(L)AG4&`NNl*a5&TIE z$nEUZUyxu~2%<|mF{k;ysb&=6t#=xj$Bas%Q{dJErMb_i?PHL`R$Ho53^-+2mAd}C z`4Jy7@UokLQ_9mUCBVIDT;){2x4p48NY5Yu%`bj3J(yi}e!kYmoGi$xIF7fNhO)~T z(6-|Bfil?;RlYnL7?d4b+F{o`ERPzHp+SEA1-DGd5o@YF9}G6Wmk80HG?Ank0~gL8Zw4p)O@GalrVxCe_`E*Cgq zXjZp3(J14gp&3;xND7jmHy}s1YJHn%5Vf9D=ap8w}Xu(W!i-xVtzLv5^h4 zav~4pVb=;w6}e1oqdKxMFtM3tOPN+>QA=Y||9P5xR z|Fp5;=k`1n9~>NjhX)G_3pBQRL_U-9xwG^0v=|Wq0Rbta{ZhcZ9~RSTEL@l}s`>(u z)9}I^@LQRYvWoi$2S3lx-($QmYD-T~@9yr7BjavPpNrJ6&t1^;sm>#J*xOaq)Qo`W zW{B-g5cLNA904Jr?P{ZenVC3;CYDk}9a1_A9bIH2=r%ebmRDAW^3|(9z$z0+k}z{G zXdRs}r-ohoBnB)lQvF@A^sdR}bzRjDG_zS`%I`{O`QA09s%1EODD@Jn60$rFWv|R4 zh0NRR6_iV6#i*)`SG zkRNae34>v8Fhfc}_u_)lL9VW;iHBsYsECHdJ&LdBc5{sTIiRVDd(>J?Ow7uPo)y6I z#zsKs>*DMj@14Gs5k=7$pngx0fHsmbmfzHb>tVR;PMS<_b^mtv&bAgJ48s6I^Aj2a znY~?#dNok?yyN2oMBmgM0KAz*Z9=<5%5IMcG&`b06ian+MCnsgb-TePSX>;K8%NP$8l`oa=;qI2K=~_KLvWsvzdTk|w5Q%#5B}p9^+){W>;oq&s0+ zsGvR1#lm`ygi}=Ap2%FjfKLNTY#6hVgNu)k5cUA%LjVOpl^Ao+X%ui|gz_aTnAZ<& z%A~F?%+AIwYyBaBHV2p}8aW%HyUP?6 zWsqh_%H%RTI6N|-R}1F(KL(yu*r#30VOs|$k(E(*^`K0PMo-m& z(j#Rmr|W1*2Md$O%yJ(k+tt^D7^v*?!QR3HmNg^w3%PC+OfZaS-&&iu@vWzeuUj~( zYT0izuo=d8r{~vmCJBBP;-a{tNMn%^GqTkZ?B+3R`k=-q~F5*zl5J=SV`)YZ#cyV$}QG2QcJ?aBB&qzsKxq5OG`>_b znJ|Nrf9Annq<3n)!%S>6Bx(xO82S>a>6PW>s1$0w2^3?Za-WPvOBI_xR$kH2)In5TM9W z>+3{F3`i;t4y->FOXnsn`B)MxZw9NAw;RnaQZrg4ge(gTcT&=l;^;apZEVItf$!^s z!6fleeO@A%%h6Y5&-)F2wEYNDI&SEh7GEsnFSE0Sn~*N>qxR#jCXg-w?Q1gf`rs!u z^`MTQ^EWr=`_vbG8^M3x`H^Ju?Wl4s#*>{fQ)e{3p9i30qKV%z%e>odziW?Nh1nsnHA1c zzsTU@OQlbswlEzo(jSG!C#I)e9uQDSg>tRx%nspx1IslEg`b|@7b42|_gUD4FTFxM zzxde`WctxWG&MuLCa-Bwqm90nHeXAOimXi2j@Jo37+x*zH2SG4=i@;dc=T_Trsq>V zoLz3SGr;^D53#y@5JESZDdWis2g)Ca_eheWhFDLWW2MwRcRBqrgg z`E}MhVw2R6CLeco32JK-6rTYJ%+Nr@^9c)mvvGWk)YjI<=N>|`XAh6#S6E2J4o~L7 z8%M_8E&o0?32;B8yu2&p<1t>B4tZfGeL+J@G)?uI%tFDUVn%mHQ&*n?JF|M2PVUwhv z1mKMZ+8}yr1VB)JU-0RE0&gWlqB*aNst%&?wEu$X($dmmOdF*x-Y@z z)Q{Gs`n#a!j7cc!CgU&ZXla7AjyEA2c-}F6tjMmTD*7nTk(Sxo(mv{}%mNi7 zmIYB4$7T^%SbOU+Y*9^Yu``ajSF{S`X|aYCrNPC%lpGQ{1JmF3M?U=E&rrDZw8-DT z<(XMhqCkX%1IXGXY|~^IYG(jR#qxd!WDI5;1w&3{eshWpR2#>0cq zAvnMPAopg;Ay!v6Nm8POIU8%|$wOH({HabzKn^#~!8XlPp_yW(v$Pc2iGNQ&-yF8~ z`caUoEgsRvdE4)18~r`0MtO#6sba1P(rV%g4=;e{f<5Z&9fA>Q@bU41*pupRJvM>> zq|Dg6xBzJqcKek(%{XTBuZO|jBX$%|QYjMjR`C`}#Eh%{8Dbtr{~Kd;aZ{VjMMtJ# zOeFH{9{~VWZimApeCY=I`*fikz`Xx(54VR=r;&ftv2^dAli~%&3bYmY*e!_-EOkwd z>R(4`tWMMT@=@VKk}{@?(NHupD7-B#Hd1e@Ls63GaD>22Wo2y*w71cFsk@Q1fI0-D zl)2eyfOxenrGNELdyArREFiOFDA)7lFdgP9T`#&Pm(MY`nCH*QV@92Q%U)1$xnNwC ztu1(VvDJr|uedZl&C1R$vS5Yxp53z$4%Wlny}YapC0b}Z(gnfjy^4y8mr#I$yaCQT z0WNrW_)ZzIeNh9RMc=2@kp*8<8@YW^{iyFUy3CN$5NZ%ccK}oZ$z!4^^f>P)mqA7k z81tf|qnT*bm~H4888kFCEp!&04g8j6Wz4w)x^Ut?eS)#^u3pI!dOc{mX~^8)mdcpm zhr77EEGHuqC#|Qa*KFLS&&tPlvb~K#NNBycPk#J>(GLyU<=;#}4~T&YH5dDLFUV>K zqGe@)9QG(dEFeHgwke=Jzp;^vpFgvW-ZuX?(9hl{yr5y%7d0>`c)L^cnKIN_~uM7>8Cr6tADQPBdbuDRM>C^gN^2nh14f8LN) zJ}6C9R(+S@_xZgzJzP?9c$8sZ2W8~ss;6gTfJzx`Bb8+~Gt$n%Z1rh5H+ZS@3*)eP?H-+>iW8Iy^i)aE`~kEd*In z-(~QG&i7=bq_!-JairXSaqtUpQB%{;5|9WsK(OLjogD)a-Y*#!QdXL%Xb=Ia$&W6O z7ZD&thvCFT2`vHGR7uH~&)=Er9J?1kH3b~Aef@p7n^4X(BKrFJmRg?`O1xc;O97Ik|4q_25>y(iwG@Am_x&49dZ)|?P{_MO~HG-}8Ye`A(FEe+y>AwEU zKxjRI4&b@Z!G`IJ&j#zdb#%nb!!x{~$dVLh4-){gV*v#O468D_!T+~@Dq-)*k0?t1>1gd@ybM|f`;nW)6Xnf=Ao$&_w=V8U8oylYgD zx0ib7e(}P(rLK+PDmOb0dKmMH5d?1pr==}{e4RTY@RQN@WE`euSFKD;R20!O8rY*9ta1TUeE{=d#T{`&q z_?VgP9idQtf)cx1X2Xn900VY!Mq;87d5cPB2wl-o<|GUZ(C2_sB&3Is(K9v%k}D;O z3gg1_cT9k)f4!amd6x{mZwgrN>+UvmbxmmmrQF^<7#P7*)S!v9KwO6H_x7=c%wp{p z7qH<}_mj!=KX`qL5!vNToCdLyj^HGUiqh88!+ucQM*)ig-jyrF7ff(`dgAWpmh>qF zv5lHq4hgIj9gq^4jopKUJ8Gf#?>mo=t$clbt*uY!1Y?=R1~I{C(LXQ{{!3jOa&!pP zoyxg*f+p-lnd6f)GZPbo{`vWJMsV{n0b8`Xx*Ftxz#SGn6Q&?9Xpc8(OLlY^n2f*1tNT=Zy`2&#ny7`lW zXREWZMjH|pAv!o(ncRK*f#WB6I;_2h_L~)4( z0Ygmj5)n~&%SzFvj!_r<58z^-;sT~y=tz&DTKs9jE%>bD`p=U?>+ezAt>RIXmX!;mOUJ9ZisI6vPb&T!FlT0*WT=*sr3J2@T1b=J*4%E8Y22X2ZOs=k6L{K}r+09C92F5k zdJ3o+fIvgr^(IyNBPY!H#|l155GkdW>Ukrbq) zyF1Rp=RME+o%8+t&)?>bb+4Iq&CE5|_=cr|%I_FTn#v&VgaecWB4A3gDADgHn;_;T zH`HUOXC!OA@X~ZvmTbRsq)cEL9mBi}O!D4lwv`ZC-`eZ;^|EwN{_^FktfPl&X{M3C zz+i8$36BZZ-=LYtJW^NZDKvL5dy?TIh zO6t1`9bl87`RfF}-F~n`goyWLT#)SU@_1;wq4_dTC{Dj!JVBLYHNmBCXK#O$-9vukh>oJzpjw!_ z{I5R1)6AK1lWZ&>GEj6{YKAK9w(tfMBm0bAz-R%2u&KF@W9H0!+LE7W#J z_$vrS;6&u_$K|>@I$685jv$ELHg5d(BPBLAkj+B${LN}e6i!&!vN+HYbnew7mQl9NY8m+?SiPWgQ+b4TgDwQp>rnExZNG zsDJ8&u_iDsBaGT)9;b!A+9H}%sPjd?1FaC9PRG)DhAM6s>DT~jFxWg_@hKMaTn=j* zD|1fXcAlKLIPeM4^Dyx`A-q%4Q%wb`klmA#)4zZFMoB|M=7BA#7rFH09#p6WhlETI zVicrhQN%zAxTJxW}sN^tq7G&%i-8+hIqV0FLB-*Yoe~;>I*VaC!Oq5}Sa8 zWbF3@%UCMk2pwIf^)W6#1QlQo(T^a5diKPM;~g``x%r{oaj_-@!9f35?UtR0q$Q__ zBQzaVkpRp$0YD?i)bu_~x$y^o2Ko0lY?pIk@+{S^??*>R!B!9!evW7&(Uq*`&Nn(D z_OlRv_6*2uVcowG{#>8-DCMtvbeJU5-9vZq&6xdi1U8)mM7mS0I2vbmy z;vsGYaa)3x7IAFs{Y~5b?r#eEKMV{W{ky3}9ZD;J(_vu>Km#SZ{xX%5h=_O^HBrg7 z9sw%Qo}Qk4EbK#M!0RgjPz%lwfNS5;ckK`6J^@i8AjGt6KfG37SNJ*lo05P))yN3{ zC8)`<;5xLn9A=?@7v|;Vg+di5g723}U(zU`u;uWO@BYrqHfL{QB0)?KDh1_=b4RBD z51JSgBbTtSNy*9e01yK@juxBXD<65MWZJq`^AQLcHOI&9GUzeVllkcJ>wc$U z^IH5l_tV7GwB7p~9GJ+LM1YirPlqBvSpW4amoU^Z&MX_S%HI#i5ZEdZ# zwyydQ3CC)%Y&?g@8^6ZJH2+=8eHmOU>=h;^rsCtpxv8m^;~!hBUBoUc!~@q|_W8?@xK`Y@{E?DfI__ z%zjY6#|1o3U=jjg?*jU{U`@5Uy2c`Cv?9aE$>bFQ1{~JW(NR@X0|LPzxlebg^7Ipv zlYkEYXLh#bc`MQT_pVt3eSHvod~%GZ=r*?YrZEPFYL5POQm!hIUlPgBk+o53Q78g= zanU=I!Dejy5E9ZoHbw%r#HWs)vo}Pj|9%lr6FCfc{`;w**-TbR2~TipVa&_XR7G7U zN5!MFGkEPLfU0KK4~o^ujlucoPpLt(WB=%H0bzr6Yu-#AQUT{Pm6W9~f+TN1th_11 z%Q!nT^Y`DE)hKO2PZZ2_9UK@E)6;hR#B*J5-8XqV)8)KRzNhO0Unx@cMc!w%*E9Oz zb@GLF&gX`!X;NpgJHsO>#LOj98Rt0@qR<~;Tu)?$7K@=tb)n~VNc#R^D<>{jJ)Z>U zDp^r4jc!^`9!++rppM%9RZv1sxIK_sL2vmp;=J|2CTniLmOAR7RIknG?q@nP9<3)+ z0n1vDL3EolFzj73E33Zy`5<}l_weZ2w&k`yaXk!^bMO>1k@4(xN`XZPTi`ktOeW9M zdjbT-9i)A)hU_1ybF3$m_I`e>z=Hn+;IWaixq%5n6zHYsEsAuzk_PK0ni688e zkO<2josWJ&-dIKsH1*0V*HceI0pGN71Pr5w)@u?ikw%3__IH9&z1;9=}e}}&)!M3pUEQD za>a#Qv37Q1tU!JwE-V|wR#fIIeZgzRJh4dS21s@ zzZym~#)0$RhriI%(b-vFR~KYC($e*jN+oDGyh;=aAIy`GV7%Dd?h;SA$bzyYOyGF3 zccNqb36t->Pv7zLSAzONz@FsF_A-hCqPcN599g)`Qtp|ThAIV-3A57r$2&7x_U$|p zatiP&+C2}&y}07}5Ce21}oU{GQwlQuPAWDg(v{ZBzhIy(o){reWCo!PV8@NqnT zqSsA|BMUxyd%JLTkX@Cr)%_#H#Knz`jI{jc5j-DXqQt)+s43F_8X^2M`yM?Z3wFOCa|T3OTJ=x{I!>I5h_|-Pt?r5!UFhm`hN$R@hYj78V5WRg1J2v zc&&NK%fUU@ElyCVN&sX)WeOUiTD&7ahV!s-&`@QZANKQH+_WbJ!4YA|X6E5euVmC_ z)@Qg6c(3nlNG}td8bB}B&IhmaxlqpYRHz}-+ohbLJ)iYsXNw4Omb~gUPgt#?_450!3Y05 z9ljr9-tmhwX5is+GEFzx&B9Hm-(BB`*{rh^3A ztIF@C$u3bC!vo!Iyyd&|9sRmYg}pd`y>IybFA`RWnWlevT0T-AsUku5U&uXk0aPL-9M(tn%XzsV zv7Ou3UQ+6CW4WoeC5Gl-6#lBE4s*yaZt-ibiD_MY)@mNO54MlAB$%2kXfVfJNTYRaq} zqUK$Obce14W8GL2K5Yq}kh;TA+DcmqE0 zO6GuA?5sSE~pTfD>hAs>h2_fvkS@UH*Rny0y5IX4H(MP_z{Hw{2Y#MXB0Ob+~&DygR z(@ZikF>7Q?I5J6)i!^$NZPNyb-banX9%glco31FQh;L0P&84LKq}r5tf_9okS(V=G~Tbpq|---vs82s>m zi{rt=g82^i<7)uL`?FI(-V%H&h%h7pMU4^n^P3IM4w71w$ME?Z32s;m+Ha9>et)Wa zTAuN_s;ApG=A19G(#(6wN)BxL3QOa>pdlZ%S+KJ?7~VtsHuHFc`p$~ne|Fw&@|J7u ze110U;`Hi)c;h2FTozi{>Rhq={jg*Kyu~D9gOoAH)PlB;w4-Iq@Evm;6bl(OaNqZ` zsd1zq>HcPql5A`BSQGA+T)AtnV_kPtn!kK|0vmzCQ!%hNOlmwg)Bmt-r4R(iMKbEC z)82mo6C!<}tqc&iUV*siXOXXGr}!kBD!4bKCyL<4$_^-{#=!l(xQeh|YA-#w+oC>8 zpBFYJOI4d!@$z=s{BXj2dhR+`C{6o%;u5FdnBw!E5&T5}*WdnzvC)jvyS}F=ziyi9 zlr}h-h)DX=akybfK9-~b{j~arbcxY4cvgKgw<2Alx45aL~Z8xa>yb z79B27s0_@l{A4{&0E$A7ybw>I2draMbgmRG7WW=IYP#=D)KRTRmrv*(RoohFIehcZ z{irkH*N|yLp@a0|aKP(2!AWFy4_Mpf^p0QLZ<=^F1uNV4<0dXqFb{*f=HD`OEoCxJ;F>LJYo_?=-yGAO)S?1>BFf#q;*Tm1(OEH<&E><^_ zWpWn>x7y6w+^j;KL7SK)nC9%C8CK5rWU%Yg7tr+m^_wpI|KfAk5$mB`@3_z|ZKc1y zdPgfn%*?raMRWH0(;y?|n~R0>cg3o9R`X!mb2vI^UqMI*=sKSW= zejPG?(LZ0G{nAG5u5}<%4;~fCNIUn>%2f1`^M9<${}~%lgm0qiuP&1Z2g$aTc(`3n zj0;Bb9-PIZ1iT3S<8pLJLq$tVP2}~!APt^UYW0hwzS9l z2St&&nTpDuNU?yvF*Vm~W^C~x9BUKMfFJ~fREcpZ!JHpy6C^d%wRWipq`j^%G4w^_ zi?_BKc=^IMH~xlXi}eghO%uhazaie8SCN+~Y_SBCNJ3W^TdrH5Z;z=lt(f#%Nt%+! z`bhnZbP;4#5&Ag242j#s_H&iiNpBTXvgrA3l7xvqQ@6I{2Txl8h*W|x9<3wC>b4x~ z^wg1}XOaT7D}8VE$%8SxLBccUc}%SRc9kZNWjX_nr$|#0-D8v`?6dST;SFBy`jVXA zt9!=<#T(8jO~2HePrM$O)@1V2Dn-gXafp;l0)D1k#cOJqVl_A#Vc(QPFS=Lfdm{ID z@>H#sX&B$<{qqHZU@F40xoM@C^j9M>qk}_QYX&tzqeG5x<1_1&%geWd545{UV-?_= zHE6)&OQunks;a#X7jn(8YMBvtIGi3k-Y%)EXZ^&$GM_Y?2oqyy<-Kxsc+bVb?s9h8 z8AL^yq$o=+xHLg&?fDKfxVrY3Ufy3H5Qkdl_I7u&EwA!zJCmgR{PZbydk?2oZ#y5Gnuau{yE;D;>h9oIt{_aDhqM_;i*DLJ zr+05bdg$e7h{`8oCxrOjR2=|fiM;}UI&jNFXbx-?Un${ZBRNs1{r+SLt;6l{?aRjq z{3CoY{%f1DGD=yM1tx*?Ug{1fEc4^%cQ$_2p`=p=^Jzb7(*D-T%O`%sLwYJ9_I;u8 z0m$EWsP_wbeQ|iskP#H}*#Zz^ROdu5RBD=TNtQ%wr1>IQ@fB{D4XzRn%qZZs(`J$8 zS#?bN;(CaeqBbkLrrrTp=gp-auKb#T-Y9B+%BJ_e<(hud&llTRiBHD-cS8E|TjKt; z(UD;`zetK`_fi(|#8A@pV1aaHm*>Xer6r|7@I3uGD>p3lxxbct=v?}$vTXRxQIe9k zQe}AH<>Soclw`t}%P7^<{GR7auIbnkidSH`*Xj+R{nIhD@pf}q$-172!d!Dv&tfkz z^2)?}DNEYKpOH92N|pu$yHr8sgOip7Eq@yM-Q|B&$8~Qr z6nhpS9IIwQvM*1l25?aPIQ@{Y=@P|szGqmbPJv-x>FzGlG=$eXML*tNCcqRC} zaH!0t&E3DZGQ4Px9WGyof*_FH>wF6qN5!Z)brh4>5kF7GHDk5Y%R*YyT=_FEQ~n<4 zyyB)Y+;$4cPax}Hw)(Xo%a zN$1>#{q_q#_&LdmjmW^5FBITL>3Ce}wM!+qr0*BFb2#lE%bU2pR~7nf7<&22HUCP9%d3O($Mtn%!PT z?#>ePN%BZ2`ItOZ%)ahBg?jo1T*=j;bYeRI#&1+|Y9gSI{hG%&t*dFyNcp_@m-d4@ z|G?sP8%na_Ss})3Lj&uVe1P}>J)Dc1OH${x2F{UuN&SR&!%66@!ZKDud3A;V%k|Bj z^pxaKg$7y*A{N|U)V{j!jd*m{09Ip#eS9fg@IgDtlvLm;{o}HNq*}GyzRm6hbszs$ z)EDh+Z##2145Nq8Kmd<+xd7QtJ=wf{s6TmC<|BE=MT1{76%AQ-7Gz|{FXe`;2kLzfnT&pD&LXjm&+ET#>MEHgDK#JQ=vBZ& zcT3k%_IFmd@_YmRJslqmI?8aLy8l)oP#=>+ndyip7+lFz%tqE%=a`OCGNn`~dm|QM zO#bkgS8)mLEE#K!CY-=K+d- z>MgTvqI|*_jm2N!mhL(f3WF57yO+|t%q+WRr11{Y9bNPZ_Qnp%KJ?UJz}g9<;R7eg zvo(5MQ>PgK)_3I*M2=fR%TVm2q@kb%o>NIS!&?RG)RbxbzPVl*foGu2Q@$4663x_) z`d_#+G&~IWt^1-8Jm{e3<=yWPP)&OsvSq->&yNGaL6}4YfscFzr>vYRZq*r?VijXb z5uE#e7p}2gwv)p<`28b0Q9cVlPAD3p?nr_tWctbo);KM51)z&l|2bS{m>&+@)3q;r zFr?O>DoY6dsuM42=82pZ$!%b=(OTRp>1{=Az~=Z3vp=oTL<1C=Z%d$G++EHq_o8YM zglTjW05HfmHr-(go(8JCM@HLaEJlmkj^y#YX+3Kl+!s0AUVM~T_CAcLI#;?ng(wFV{5$P{*`e`%#Vag z)yY@n=an8A`u$^a<>j)7{{|>Tm!~b> zmfv-0K01KxGxm~~6M|pX$+|eO5=#E_AhgX`Lefzlv~XU1YL%uNBxPY`l_W$#K>>3t z04KrP+WLY%g8hyDB5rfCCLS*CBOmr0Sg8Zw@qk@ib)<`;_f0va1+@X^R*G?R-*eFp zqOp{EMQ5e5)@njmkRWnDd%LwfN$ePyWoZ+7RdCmw{$!r7MZ`&*Vi85=>!T#}4P+U& zlBH(f)`8pbGwK#rD-3glo(q93z5IE$yCYH z)i)&DLASOGGNpk4uHxKbEr z)6&ocle2+grvb^y5Bo_89s`*ZAa=()JU*Uc%kL&3t-`~zytKSL_U9KPZVP%F&k#mR5gtV#Q(fIU~+X^+)dft`S@D;WMCzNeq~`2GWZ!n>&}eR_z4mRO`;p>7K|lX zBN^2PEm)vz`8*Sc_YU+)ln||wnb#H-^#LyX>?}~v6%U~aJ_TY%pppalHy;9w*o+$7 zOw7#C%YZm6FZMb%>^?mf&9VgMFluUQ-lyat)zwWAQ6KaS)sU~kqqYsxbS2>-2ADz; z+<+*+mKqX*ISYn%See`7k|4cB38tk7z4=og+FS|f$RG%md%Ih|@9%JaQ1= zh`qN@0Xii6TIx9WZ?XB)c@etvMiiv?xNIN82?W{B*p{V8Kr0c{n1eeJ-ds>Rikyj7}00|RvbC)>dr^kT=b6a+g&t`%)sNq-89 z%t%iS3l9sdFKec~1cVdKe-sGDZbWA%C=sDy^lBUEc|H|DcLfu0Q@8zfMFm9hUYVGi zcfBNm18@6CyeJc%U1y*>=6iaN@Qxa#Ji&@<3XYaa8(EBsip`cY$lTii}zjyWV5d-{@zT#2Pj}x;93dON(tDjnc zOl>IAhqldWR{|Fom-6oYPTZ!%X-I4spcEN$$}!MzCre1kWiaNqk*0?sfrdE6kDwGdIsRvmD;2O>RsXZd6pXN*p3$_n zmKU1(0lc|}(VyePy>0@fstnb8{HaSN(8$Px!JZ{seHa0>m3SVk00Iq2*4CRgdy=BiI_H&*UG`!+1S>1H~jP7HEWH01Wwyg9(%UX(o&|g zlWjP@J&{tkuB~s=N?BRi-iVfOTvr6pQ!{xv?msZEVd=usBJ;8E3yLJD9~<3sRzdu% zNuhuzu!1)%XVSpyOW=H<*_O;wCHVhx3WDkoJnJZNV2-RmQ4p%u1*8(U4T$e@8T6l~ zfXYAE>P+PKrT?dcU0QDd{QSo;;N;?&uXn{y1O;NCMF~rKO~RBN1@$Y`2C@Q6fTTgF zMGxxbZ2xfq+>|gn&^msI6C&IFW{KFu+H{GSg(bt*&d&VpN-ev0Th1HdA5A`@v(vv~ zKc^E@5WTEcQP@zhVQU9fC1A6tOsi|qy_%YwLKO#+R@lgnk z!j=cs1be%WomN(sk|sUvq->z=OMbR=Zf<{_LbLBzH~z}>>~Dt4zZ1WWqgEkN!^Y3Z z$yAk_y89DB!vgT3USFRI83&b_X+4YCp<}+>2W8N%MQ*(>AjM6&^$h-#!J_-OiJPTr zsf3B)I>wgyZlOqqy`$iN_27h~?^^v4i?x;bN zJ3KHL{UQVTZeirWanOBaIfmK>?~{sRNog6etCpQuL!6J1_d{RKQi&42XP9+fJ`UwI z&G_Ayt1MY`%MK7a?#I}P%NPFIoZlB7p_$JO?S3A4yKM3KF+g-NAEWsBBJ{w+fD@Nn z0>leyfObF}bO1*msAhb#gw^BUj}|{3De8Ugw$RAFj{~89nV25N^VpN6Eh45L2xvUL zZ(q6f_s<8;VC)Hcw+L+*lq4Z8Chqa%-sZ;2?wlNrf!~3RoozHqP>?Lm!?12rjF1rd zp6l$Th~3?Z)A#V{wgxkC$**{*=%CJq^uPAnPuejj`Q)iUHw)9Ds-}8hIMt)Oam)l` zqz=WH?mfT_5GkIXnw47J;#BS;)tZ>dURs)#Hm>gdL<_>CzTkXwxT2Y7$ZFE74Q-Lq z7Ofym`1Z1+wJk3j?hq*;msNVaOh`=B$&?M*dH%uZUiR>BnJhQl|CGG zljb^d77GdR|6N}S?%!?*I0y~>SY*{H511u7RUaPux;f+aGOU*4CT+!bVuD^BIsJ{T zVNpGGPO?ZSE-qd)lCcb6k8}1McA1X#8Z2F9w@YbV&eXg z1e!jeR|AkWz1B?0qNluyi*Aj@F8qyXqdulx8cYM#LJ{)gm|hNXPU|-MJc-Qx~gy4 z=E@x`TMyNccG<_@R@_ur*~;B7O;J%%j~ZcAM~5_^mPQ4CD%lP(Guv!8AOI)X6w$=^ zxFjl(pIGJ_CT4;0fdSkxfBkF(VgKmpx0*8iP`?jRgQQQsYp~@uSB-&F_J2K@@!m2K z3FQ#_m1GK9gqgq^IeD*{oLla_L=!4#S+Y^*s|x^K`6?2s=5~f^8!rw?=!JH+1js;Q zkjadI?le_#LwlPc&~IVHYxUPB*+}aT7`gP1g#^InR_o*781F9mPM^j53??ThN2e!N zR#p~>7S;H0>WB`E*aHMyKq*sB2)^f)139|^Iw58Rm($YC)n~)9ea#MrRAwZw{tL7Y zfPl~7UBxAs`}u!u;W4P=x;^v{%9aJOAtSXru*TBXb zcrOd90UfBbz`ktM7YJtKrWI&nG-%6>gg9pVX8Wd>!Y!q60(>B_*Ym36u&51hTNcvsLeLvWZmrGOMh49;nq&Df(vW z`?nR`C&B{+lc>;Pyu2U>PnNugJ~jXg1N$@yG#~V~0YNF96@#x)QERC)lE4(qceU?#bOCWk51k0~2=sJM-cRhPt25dOdwsc2AJ@jQh5BFQ z08T)x4(2&o{`_|jFXh7cL;UO7*4NqU&-kNnZoIXfDXsvuZ};xN)s=c^?Bq z+CGcQM@4l)-)(!T)f4F7m7fnlnD{C+radh!kS>Bki-Dg5^F>uu2B9=4xnP1^*PnHi zijt~E>++f!!GX4y0{7O4aSt^>O#cWp_)tZ`5_yuaa0f`I5aGqeK#k`s2vh*AUq)H^ zK~n4PoFU*v1I>h2GRgrg)+8-l%RDx3O?nXFR`=qORkhwnr08T%jm_eA_pGmj+3~$?Dhg02cz)1EQ-KKAr+}N}{4UpTWz6}_{9S!L zKhyX=s=9Y?qHR(7{+u>mKu#KT*C?z$|A0WC@B1hI*lh=tCHBHX485s>34B<=X1d3X zZGFa{2MZf_f4C1p#av1d5xpS3opaYItXLq(bialae?d4vj`2p{1n|zvguiogaiKp3 zk$C&js4Z;-P`1ayDkv-@^w_`#d5))!%yPtRwzPjYhk0OF90fHX6yF5&2F_F${R;QD z{;Kx>DsJ~JLu}l*Zu*OWq_0`13DBmwxw(F0(@MjcNxBo__Tnq8(di{9@yMMH6$h`$ zmHO3+ge&%hvax>BUU1bX1{v|a9%G^=-4{}YuX#Q(5N^LUi^bj`+5{Wyf0k9dw7j-9 zDKYV#scDWTM{jjsnKPegzx!Uh@ET;p#XF@!Y_0dc2pOob>rJh|*hT7LF4)51a~|4V zGpBZat!xYuq(AS%TqyL)%VYAJn->$+ui_JREOx_3sGq$O?wWH_KogLB|KO~DszIC1 zQL+AR_2cB0{S2smhS)1Virf3aJd5>H8WU7aqTp`w{BfaaUnDlF4W#*SW?ssd|0nkDS*oWM{)5}UlRC5f@@&BC zQwLYh6Ga7W8t#bKPsy6=$eje9g*7UA%!aS4V64gQN*8_)g75aQ|L=yFSfoip{vT=+ z>V{?W z2tK5>zieKiRzVrV=b`iCs|?nM5D(Zwv0;v^A>xpEX#G zM)y4|_1@~>tMlp>I9OZtXL3Ewx8TZ3dk%l~pJ>Wo%E-djx*mvpSV#f_U|EJi7F_Ws zJ#0Nq*Y^ljmV%?!B>O|Ox%YQCdXiNVgJODU6Udma;!WV#Wu&pnWtkgSdzwEY-fF%K zgl=;mm!DxBfhw|H(rfKE%l%v!I6;z2pf)=AOThvCD>gjiNP$GVa||afGt&iacff;G z-KU#5%T%f&(sA ztQ0)~G!dLvi`uLdlqvcDeN(y5P>~`ZPR<#j0J{um5Q%^l#^p9Esc38q$keoEJ1c%A zH2SLV-%#0d9j}Cz5UG9EUG(tHXbg?3X*C`uE|JX)NDn@Jbkz}pbrh&TL$fhHd-ezo z|FZ=VtCJBoQ*FQmTHUF3c1sa#OM5iyaW5!DE+4vzS^D0{x{jL^jyz+-*ay4$`utlW zudx5bp#y!hjlRV|v(htaJIly9x5*|m{i9F*g9iWCgHJ%q-^r$HtS3OPe~WDjtm0sC z2jEbBDAOwSV`qOXZo_alBeLF|C~#!I0O%QWXSKef&#s!&mw0WN^Up97XVWz}ruIj! zkKZFTh#f1M$DKshFsT#6K5zL>4q=2z3Cx+uZp&Jmf zxf7o~d>3oxl*o3!KPdn0k9kG)b;6g2k3fEh^E2*H<88uM_qURREu4~o(F4rdUm^-g zw@%8X*}Uiya~@NA{_*$ILD!}TIOCIlES^Xe5ij_YQ~am5?>>!tjR|%RQWEb1N?cE| zyH{v&8C6Q44AXFL-AD=jGp}v@gqFXMHne#c1>-Nbqv#3kq@N!Q=4duMeq32)`vjV} z(O-A7Q<1y8s4U|zVoT7acoG-ydNL zKs`Pi3Jlv5mD#5HRS?voZ8q#?H$?e!awLxKOP{UiphG}hAuQ`C8k$TBA!b6Pn$$V8 zixJKPcMB4!*zu2Ed;bDe%A3SySF?H7a=%a+5~kGKD)EL~A;2x^>qmYFC>j(eMe3QJYp4|e{k^7z*Pbhr)3s8c3Evd1%3&>w4vf+~-_IIHk z2Jn=KU0DUD)@x(u?e%Q@*F8ynf>LO+!Hkgu4`@$+ikLa;P>s4Od7_<_k*eK!S$wSB zy<9}x!9iY-jK29u4^xnZS8{Dk*hWYv51&bFl!9Zcwrq~QCGPeQ-uz_pho1C(BpO{- z7}z)}ZPy!Dr^}TurhaDV9|f<10!^3rreAxi&Kgg`g6TMJvS@os5fje9S8^RGtd~;U zCf>g1p_q>CrACM2UgdsBfRNCtd{g)H_0r0sl+Uyq)`0IvUU15l1pi-e0gm2ui4gt8 zIEz$$#PqKpUMiI3hHoRF$co*FQ1ORjGzy%OL2Evd4ofJN>&bt>>HDuSy5i6w>*yO{ z4`4iwffMD9p(qCp5Gdgl3@a6~G;-`B)GQrc2c5(|>W?w{nA!St`%*625QDcr#gtq%-|g}YaeCx1?tF#&2mpl%7KoX8zAnmC}mJ&ffrIzYli7*B}-U|Y!#CxF#{DF$jPOjc6g@ri8o3>ZC~0o3L9#` zi{89}&2?H>= zbV$^t+Cc+JKh~&r(vFe4&9y54Euu6hpZJ z*XcLhQ%apreP8ubQ|oml&|D<|2@o76GYNrb7JJJmqWz?`t3kd|RsvP>+0btJrwzu0v{Hm-h#OG6WjiVOvQ_`|NXI0q(B_eD`Nz$P3_ire$ zVY~=?7V(4ObM53dmu{`9yW{sQ0H=AaITURsoUZfutOexWp8mj}mMDMs9<@pQy5q0j z9-EI3D{o$YNMh!@Rnv3bmzL^uDIZ2x0ctyIj7;Oj-c8cIYT@5_-t2N7ujID4_;Aqw zLglXi@#-M{-p$IMf$iVs-wq=zrD&~DI7=~bIF8rb$3ZTOlGgb}FQDs*SIfQzC$|8O zvf0ioZ$>9KZ6!D`GKJKpb|t8;0v2X`wQf0qM|8>e1i-($fvd8_0jk@ExwhSW+Uhf# z`0CUiTVHObP38#_BCcK#!b=`8zo}F(IDmen6kVr|tkh+CM%;Jfs0b_2h_qxY#(^ zICgh;Jfot~Z$MmEE~hV%9G{9mv`9sv_#|1#9S9Bq{Xb6FLKkxxE8jP#D@~55K!5sh zHSz>rpyTuwMIHz=GdOC#dvo|Om66jM=y;OKGKBP6;fo6i#K$B=P*bI*Jg@is?}utk zs%;mYz31&ccjjW+5_KKyeE~S&9Ojd6;RMktr^IlSwlByjj{8Xfo6%K>?yrZ#dvF{GZTO{$ zM*n%XUpa#eSiLk+cTXycVqwM`Z!Esz;Op`;|GYc)z5;xy@{iotf--2oJ{cvegerDM z)RIgDAVw6jm+!Ie*FV3CTWSn_`zJ!C>rbH({ZR6o#?@LR97OVq>(IJlUA&bmy&_!Wl&J#(D zy4l&^ZOj}B+>-1qGE=S)*|z9#EcV>Vk;R% z`ak(YdCSw6)wc<6qB{wS!?gDKWR3w5tyr`wQM{S>T%nj?TrK&dBYJ!$nLZY@;QO*l z$XfKt*L@KpT=$A@%R@VcvYR@BVsi4f{1IK6C4`rwO7ls?(yB=-)Bl@wNP#*`Lg^&X zk3>N7jKofbR(uNHGW{pEhC`LYfRp{C*j$CdEGs!tj`->K#vK0U0w5eO(+UnqwOTrT z6GuyI|9%b*&&#Vv2D48E1pyRS@5z24)gF*|jzwHj+T=f;nZnslS3Tc9*$ncnCCX96 zpW*0#JFsg}wsuqJm%3H}2GUyW+D=eH%im?4Y(Ru!2@rMjGaN)^cL9h4LZ#vgw&@hp z=-0m$+2xgd9=o|LN^xo!a&cptHQiPl%yfKo&i}Cl(N(xz2xYO>_E<*o0<7b0$MH9U zY9H>J8wDLBmTULC?jlKUGnss2R0udmgPqC6X%bwer34bF9YbP&{i;e!HJTd# z)jlS;u)x)%;D(M!x!~o2t@UnLN`3qZvo9zq-B{n$+9S09QWNygL}DnT5|U+#A2gy^ zFW+2Z$TP?Eb+dk9(}Ss$MM=d|Nwo!y`!6nn`MMMHPDky~*|!GKupSGV?3IP3FBL(@ zuCzgSoq8%f`1=*F!eJCT(_hs1WFAopQbBab+|W-3qmCeu=kdo&JNsV0e_Ky$&TYhd zAWA|QtFD86U#hA>WA_h>W@)1n^_w+mAahW!tu-H>=8dbtjEg7XTu1e>Sca{5F2s#( zL%X}S_&lb;TqzuKUtvAHq}()YV*?@Xb;7b;162cJ+8w(}A80*PPa%NCE_?+PUi~GD zKf$J|1!LM8a*5xg$JHHp& z2dBYQrwVh)=P&3!Efrier2qch{;Zy-WsZ-uAt0ChO|Q$ywN3vF3#|FLuY3MTZpk|8 zit#XJE3xlIt0($zY2ROE&5nCK^8(JpwsP-T!9!4OvUs2u-~1H+_*UR-D}h!trBb`# znbDV5Wi6kHcvTctoiz)R@sHpxx@2S)b+rv|Y`hqlxdIb_wOlZ~!8SB;vJUg|`%)%u z{pm%SL^hJj`06sL;_$#JXak507b=-eir&~Mv)|fIG17mlqVpi~H(cFX0m>me_;)Kc zbxcaU(SJvoyE*;{5)=5|vK9JF2DVHpH(#H494;tweMB2~qF5=rNVIi%{_31Ws7!TK zRA$2-vGR}#^L8a-=c3z{5t6Yhd?WUik_uA^r&{nSSSFi)%d{arZ8y4QF{xy#P@`Vl zOMsOjp*pppm*sBcdt>LNv=<^D?|b-r$CvdG5@YxwZ$whQ-`A?gXXC2Ihur98NJW8@ z$kH}y3fx!P5PqXBMgrd#4Qcq(iGTsuhuw8apMj{T`7$98Bmmqot*Z38#Ze3V5EMS0vJ0^Z_QG`Y(R% zr-!uoGrx6&zb6!#ZGhpM16FLyHJ_7FTcL6fe&;a@H5!ua?hh@CZ!O&|auR(=)X~gz zXwzag%<{I{sdpu|Oi~Cny88JjV;duc^pJg=B^8!w(Wk|J?hOpX=A!#j5n_<*$^bDu zP$WdzK|MO0Z=!uweD~JZKtn&Z&s^@3Az@b8(rEs|c52?6K$%_hZtHfVt%jN8{j1%@ z=3Bm~(dHYRySQK`{n^Qavz+*i3#Jo>};dsBTqaW+fUBGOGm z@%34vw2HUz{i?n?H1&CHxCj>(6VjQV%JjWZA|Ia^ia5{nTPt(7_ss~eW9QX)E4tET zcYK|FIXik!^T z!@qWG;TM=6B>K`Qi%@DiiL;yBEl=% z7Kq>+ZNAQT%A4g0326%rfH}M{`1L$C$`fMP%KpQu3`vrl=zce(G4wpu3rPUF?;-LZphaNq?y`^}j14s0zg0cTTSy^Smyd zUR}KIr2@AXj3aJ9L4WG4`oYpzH7e!ZwtJoWr-p(}O3LEl)ryAfza!Rs;}hdY8?Yj( zCDPf&ba_EdH=X+Zil8m>29$;Xy?uN>^-5~^Wb+YEL?cReTjbz)(2BC(4u60)&LJT9j`vbdJOqX{}4 zr?e2#0)~?Mf%>*F&SqsTYrgdNYbgZo9%5)><`T~k%ZohvGnN&b{iR7n;NMtc-3Ji7 z=D!<{2uMc9f0>GgMYo%pf+hqpWdGOi{@SS9XRr&1w$B*teGweX@Q(Uvl~FHLmf2%M z_?yu-PkO$Ejzj8UPzcgzYTCp&*a%Bed3Mp|^06ixvz!u5g|@Fms0jL!v)dU*Mt%X)rc9A3*k z9oYmH-WR23F%zwi`TD(d9{3>HsSBiSuV$J&1rN6DXHA{daW>kao=|r4qAJ|6)oogf|9J6Q&HU-3_pk4^@x4CXErz(Vr5@_XnP2So>_j}N zYEaO-``heseKBk!({x=llm#;u=+JW2XlFa3je%Z~yBeOUe3`f%j(pQMyc!;7?KcIT zef2fp{7D3N@(#aLBk5-qrOPfVnmrlv;^f7RO|-Iw;F#+qqfsbYh-_(T89%lWdTD8+ ziW&Rn2;9sCuajx0!I#J6Jt^ssLk?ijO5^XJdav{ZL*}K2Pbjz;_#BW_1!9+r3N)H?a4U1|>NK z+&i)pRG*kVpkwAre=oZm6kx5<|H3M30hL6U;T%<{Od^z|8JyCh-rml$CGTY2yiEhm zG8@rm*20&ah6Z)A-~2_zZH?o5DrOSDm)RFl09=iRGjT&3I286?lCX@ORt(b%W()=^ zW<_iH5+%itj_hUJ(dD?yaUYOpRr8SEjzv9EAALo?uTbWtKPu46p_Wt}`etp?s96E| zFfkfkd|zNRf2kDv70)*H-OSkwBcES_RaJvi&m`DM-mr_Xf&Wu#)kCSCF!Hd zgA9!i;}l-D3f4pqbb|-s95~#Uy8klp2-wK<+KV?t=5``tLZR|<*+?(gNy6D)RUD@` zit3V@zaW!V`e{91=G8JQt_&>mMpL&a zWb0OJtNtPx<+dAoc{!;@Ee*XEvq&0u<`h7M$jO2W_|qJFd28CNd- zUe4F4`c;TR((g^gJ>*-VE+Zf!{QkXhkm-RMfNmsi1;HR3rgsDrXVimchy$30q3hB| z;-W%gPfzgUv@|LC`CRy%B*MZJm1o}nocPJEsq7f%j$ZBR`+^r;jwn3q0-JQ@P((}w z7ZMir0dK1l$k^#*Eun%8gg{w=HZ4h8!nm{a5VU+F9VI|Y_qj0Q3+5XlqCly3%Xndh z>QF^LedP*R)K=!(J;)<9_TG(?Y(JQr4<7g4OD*UBr?|HatE!9IMiE6|BcZTGI;2}t zT1vWOOM}ugH{PkK z=ltindk-LR7p&a?P`N6Wz63V-8_V(;hRV%3u`ro%U8bFo;8@eD5rdb8rs}S5r}Xb@ z9HHOq?4Z|+1Fpr^xR1VQ0=q4kVYh%%DMFl_gG|j(99W&<>GE2{35J;8$jCoRH8IWQ z+Cei$pZHkrs;1W4J{UP`{?1cag`N&nNy;6ERA$dA`ISoO_cz?R89mmbLN0$>3Acc! zRvP`HB#73jpL-s}tLuIk&C-y%`SD^*%+3atuC57qlCz!9duK0_P6mEi*@1wc6E%GO zqq@68hEGCaZ4NeZqj`c>%8~9kef$Ih-SHvU*7;J+-5){l4ppACEAZg(>#tp5@%EOL z>q8kY)kQ7L&;509sH?5(VdL68tvt%(5*hOHk*ajDtFsZ@!`ff=GXw51BN{yDPU{l% z)dDuHDIU*vRY(#sU?-%sbAGfYE~+l*LuW-_hB-TD2_JyUxf0adXYJ$Y#Rl0m6l95vNwju!H; zZ3|rM1)(0w!^ED*LG)e7N@6pY7V{*1q^-Q-?P*9C8z;tD7tzGNGqCa{vN)ei55?Wr zsw`ds?<#3WRn@XRC4J@QE>18zoioO6y9L;}<%L%W@7G_PP91-q2Aj;ZwqSsMQnEol zx2;VGviK?&d0P}G?Z+>!k4%bamm8VW2I4e*@`$A-!AyMI?P>i)K2zs26)&^T6JzaC z((^rbqc0mGJm9-pg~=JWxG}{$63#*}zl`0P7vwOAxOJ-SiZ`r2#LZOS^yd6J9$HA~ zNHb2fpg_k60R!{Cx0mN;#w@9q&je!$$Q~c>gpv~)CU+AHxNp?e8@$3-ZDlQL1T8!X zyBW(qgh=8b4VIReDubyQHunSlp{m1A0wi&8jEyWl=)3600br8N+37LT<=1^j8dn;G zK`o5>WYHLin(22}-;0cueE#SkgQU0(;-azpLH-{Nw*pPgUA3sIGatvi1!zy(os>)O z+JB~HOe9v2@{+SRr`Ya5di&9SL5y6EGsD;eg!kwZX@#F|C(N9t=#B#?B}038;a4#h z;faAgk@@2)GLk-ODLh~OC~yB>fxF7@^0e!j)a4QLnKJ&VDcO#B{CQvXv4 zGa>P(n9CpT-`>sBJNY!6s$xwn=r-UsO$Lk^DLkM}H|;(ePkCW8r8ufB(a)U-r*$9Z0$$ns7q&ixjb{> z-DuZ%_{{2w;?w(yA#V$4v=kAP)la4`1PHK{-4D}0$=rUA!+6&>@ncBrM|rs)T%4=A z0+&8}S}J{mVP8N?!C!JnV0=s{+vw;x4;QuRYh&@Voi$Zkh5n8;+62CV{WYXplt@x z5x$owWGW1sqsG*HOy44=pAw&?wnUsi6@a4=+ACV-MCYp@i^+()ypSenS>D~lY`(rh zmz%dYOmL4(ABJ;ZH*Zwc`z^CeEmjya>OG98M0sXJN2H43Lh_*L5IdGrzeMpJh-KD( zov?w-jH3-mbRZDop0)J{v`#9mvL++|bPahenYYd}-3^RCT5fHoUC%u$3E z>eWsI4pk2}_5k*(4`N|5>Ny|9_P5jS*?GUqZ@llWLUs^@Z^z9T#r+EzewQXWd&DcX zKDbhXpJjU=*Imy&X5=m?1ub!f_ z_gytsJ}Z}*9*1Xt0(Z0so|1V{RyYA4 zduaYv*$w9{*Ox7V!kJh4i3dgsOs$SHlh0YPnd|n79gi{!8{A{=wJ<+MbDw>kHs7j^ zZS=cr$m6&BD!8I=G#rpWG)vnaBx3bsRnwxhwCLya^_B2h=%fPf4y1)T$u&FzhV_7$ z`w2(u2vSu(Aho0<`%r>{>lG`A@9gxZQHctjf*_|XzGwd+VaE6TeETt_(@)=(H3bFp zjHPj*pjm3?WzL4v@l6*zyFB9S$kOO{>)p=%92nhimi^r6Hml1f&inQgLv$zaXIdhQ z%q~ys1m$ccTN}=P=9gs%?T=A}HgVkU;P==Njq-|;d1b!}W;>b!fx!H@mmJ`@jo zWOS0%xHz77jC3)4e0&=IVp&sTVm?CY?DqR=m*1AX&A|_L7^!3>_(UGBD60yLYXJbZ0ZzU3XrV&@g62B$>sKld= zZG)P2WocRJ%9~Uo9u!(nyb#d@$fS?CqGRqJZUNoZJI`^TA}T4We4(g~ofQAFsPFh* zRov>f98*eOs*QcG%`0t05#+*TB+1&QiMf-Zb)Bx|_D%ux)5`;DorVC~CpcyPb;8MR z9EEPd^XIub*{=LHI%Ml}DCrGzN%vKTIz@H7nF}_c5-R&Mqbt>EIW21ijMpY><|X2@ zb+D&|9~AB+U^car^b6b61yqyh{IC?Lp(W+h>}RVup)Q;^X_!+hjv53gk zbzWN7cA`M7!A_fn>g-EGnFLW%`2b3;2l#sGErF{A)0IucsYSGQn}xEI{eF*F&Aavs zq|GeT)jUpyH8)<}rJPb8ICR?ua8Szq*)wliDSQzO-lN!mV zm@$rfW^~t1vj58K=6V1>sFV<}bTVBhDn)kttD3gbm5p*lnmsj{qQA2;JSY#SfXhc1 z+Dc8H^>%yrUD6cudSmSZw~T&QgwPnF={|$dnNhy_&JOQ}WjzNp1~}0N%ng!qnAF6m z+XDTF<TMkgA+nsOS2ZLkFr4!uY8TFuDzc(d|a zu=e)=JqfeLY!{Cu#S|rA<~-s3)i6>J<-Rk(m8zyXnXyEvmJ@^7ea}9gns{@j4yh`- zy7vV{ojExv?(=78Z}Fb>qkV7hoW4BC)#HJJ2m0@a^z|*)a|J8U!Bt>~eR~bFShoDt zG5RiUzZx!iR#zXfp@8;If4=XX?TEYST%kL3h?m(d3CpWM2*jAW7xkNOab(Z2&rVRQ zisbTtOc3kLlc<81;{}S1h=_@HFK?BlpEpx`TsBzD(4J;$z9~ZM=b+EX`JG!h)n*Kx zR0aS7Fk%1vQA-OoVCj!95k5y4+U;vvofhSy4O2}9dlra*Bhi3T?xyh0mMcA8kdZ6~ z_d_`_GA)8RJCH^sTBcl+b=$D*w(dfU;#@Rfg?B>^V}ad03*o)PEynTwZNmrp->2&i zYp%b?L$+oYq_^_=1TMACzCa2Qv_f|~I)Fs~Vq+xh2qR=GJ<{V48IIPpQG-_KOkleB z>x~r09sY)CNRLYo^`YQpL;c2`(mKzD7_&r=mZZSYIRDVItR{K{+{Hn8!C_<{20@!_ zk{X}#{2JONj}z&-o%a|CxfL_+aq`}a2b;RbZdlqZ?4>P9?xC6i?!uJUPrzYn@w%_O zcj*$d(v#{TjGotT@HH=bm0f5_JN-^TsHiQIs_nfGJ%u~e1dEBMXJZ6dz>y)qKqApZ zbm(lJ{Bj1th9nF&i%o{2gyo?)hX&q36L5kT6VypNm)NAhcq87)9?2dyi`5Oi2p@k3 zLn!E8N%H8u^zfVnQ4?00j%xX@2&E5a=>E*$m3N7(@E0&u=7R`C0ze+QKD)rd1UK~m`!7GiiZt>;|K^|%AJUh=;>1UT z=3VM{OUDTD@J`}p&X&PQbTd#Y6!0)etZ<~^*R)GwVq&Ba88w0>Vl5&VCHSt?V#D zUf|6qY=mF8z+%jn0G1_p_;lK3yKcXi7c@LJKzR`cMgw>1vEu`kG-y$6>SSXxpf86o ziR_4k;MtYB0rdwBx>;{UrVg$FB|J@fTH4~K@!IC5-M?R2%eV&tPxoaBd|?I14T9;O zJ)NDYEnw(!ScHkCWyX@Xx3_#>vZx=o4?cpm6L>=iOlbQMoDspZoo0t=r%dpr3n79J zYn#CA8B^0W(2sC(lF;ICcNfSFd3m?%eofbG*K4Y)n{vjjudkctHpdSn+?uThX8}R$ z;W88ja?)^dSlDrgor42a=biaiaS}JtT$~FxH#ZUz4CnfgJ#SR)@a#vT}At_Qudo%a?4o{BM1BQRlJzl8fPNC=JT z;0S>o2mbac()9`<79w~m|JjEBul`c{jjQX~y6)vTr+6BQREn*s8iFU!)k+pT2NU>S zzs@a^>WU;E$3UojboF4cW^>N=jTE{Rx!`8C81XG_d$y6zDZQY1LSE0XT|yN&(* zb8{&N28hq@g6ow*s=R$Okn5dAo~y~hoz`*qVQE_FN>uX~_OjIn}0%8(k0TZWHD-=uD{$K~G zcdTGVOhV?u6i)+^K7F3Qjc`X>0@TE{1$U>ZEUc|%AMo9ty$9}t9aMTKd6GHWS$w#h z@=KOp9Wu+$%a)apJ70{DPctS!05%Yz{{j2)AhOSFAmXA{m^KXqZBGw#WTG{~DA*a# zq(MPCG$v}l;SlQ}9%KPgKLjU!P7F(YivX4^nGCFt+u>clZWQe>s?1Cg@>GG#v$t!p z$dklZS8v{FHvuztFR?L&dX-en&zk1L54vw#UhTfmWDQxBxtV^KZhoZ3YeHSkoj>t! z{!RqoUZBvs{EZ>hJ8;(Y(p4$&=I_4FV1a==-!AJ#LQBi)Y6uI}sJ9k+b-#>+~oJ7dUW?;`tsYr8A{T&k1a9B(6c zkd19gby%Cf?i)3Ar18o3$2s{~WqHL_ORF8&YAl7xG;Gu{Rs^OV9u2vfnMG-N%kEPh zYio`D*18@IMdcsxIgP^>6=#M5va?G%b3PVWN)>a|q}rGmL|QfXfIxTl>gBObS{FV` zsXozP2dnuTMO4w$$v}qCN423b`Nt7PG&Ln7KRbC~t9FuS<5*QyK(?udgcJuDRAOmq z#mgWjMkBAK1W7MdbyJWKwKWGbMToF-0v~`nO&W?3E`Gqgf~*oP4#j#SR}?;0T;x^$ zye2CzJ3TUI{I^ibocTJKd{NQh?&1Io7dKQsNB=rB1eBO&nr6;MN@f}wMi0va`D8C= zv7)A?$0Q}Y^d7F>!i_XT`lItF9TZ1bf(8Aa(sJ{cFW@B_;E(gv9P`n|X{aho2Mj6G$t`!7ap9HK zdRRX@>G0|9QE#^%nk-x(u*berh~Rj2bnbEepdb1%JV=w|yMQCWh=vv!o)9OW4^`1o zWi;S4GEkHPi7|L}QJH8i$Z6Q5Q}j^>!hA{$@J$So;&df?l5vip5Fca$+UUXdMEF2M z&CxxEvOaYN_N|cMfX9!UR;m<~fBX4vIsI1RFFPx$69H)pd)WeV3i7}WoGJ(_q3eWB zCE)x#Zv$`GlU$Rnqwi?jEpC-SNmr$5C2g+8N-s1<*V8&78JxS$ z5<|Z~cT?l+oXvoAXzrz`aFcVxc-AqgqjSA9AXW|gR3Fa*9U`{YZo4wX1*r3Cad zNEPESBoUGrFD>Hcpo6DdD1uwsq65Zr;Jo_YCV^o1E0Yr@|n0BH}eLkN* zN18EYXBl)2rJZIVFQ$7nlebZ4W`)_Ie+Z|VBK%5^@W(F69zjAt``_qj6MZuy@LXg9 zND^i&=$*9BlxPxS6CQs7jow5wJ7hxBldYw@2H8p@w>ArBMkg1g)i>X%ow=quM%~>i zw>vBY+g>K!tBE{Ns>?LRs__Vjf0C2IZbA^*A(FS6X-sYkXNBV`2}#m&yq~hP{0qb(P<6 zj2wZ+>@8O0{lvH5i%js=;OxCf7#bpAaztvpHh}%{Fvq!{Tbp$YYm92bfnj~m0q+iZTbFvZNPu6;@|A=9Y{aNjoq{S z3ZsK1ch6_kf`9VZSPSTp2pQFbR?!Fp;^iwVgApz>wOIfkgaWDf67Xp#w_UE zf*ZN&?k1vQUOV~gqvHp8x#CV_U*G&AdCEN}o#avds`Vw2hk+M{va*t0vu|}&IxS~Y z{dRMJM&!@2hRs3gdh5&0-RwW!<^byj*3>X+rke|6R6nK2qFg>{GnZ?1Bj(wVYrc?r zr_Njk>R-cE&_s_?L530Xk`2r~H-b7kB^N{ws^N>DNgQ>v= zSxfoc&Xot*Ku#d(4FyLz-w?7-QD^g)mo(IIhEg;DiGa*++O2b7`m1;u=@^qf$I8k) zQHsM>R$|;o1I30;NMZucA~LQoFK0t58{R*D`~)>1a&QJq#%)IMDV7zK;s}!Vsf9uV z{b}6(+9XwnomQ6m4g^T$I+I{3473F$oJz07smojJ>8Z&~^-MnPMJ(guwmLBZR_LEM zR{%>!X(6v@Wwk0tX3>z7;*hFE^r6@I;QtXUYdVW$R}(vOI99t_-5Da{1|}s77`9uS zkB<5I9P#~&m)4FHK0IBu77ckgVxmc&&)`wDO;x;yg9P5<^tQ&!A}SJY-gA?BnLuR4N4AGlY+Hfret(;Qb zK&+9+s5WV%Ense9`aqx*obFC*Z-Herxx1bMjhM(~@$T+e6*mVjrQ!0T(&MqR?{Fhg z(Vm_$qe!FNjZ`Etx4_P_&bzxfvSVtTc0QuQJz#IH>H;scdx*+$b+^{Z;Qfy>JTPyA zbf|HZ^9%4D9F44R{8;JOEgrrIN9qC?t^ngILVDkut&@`fC8DPc=MiBwNZ5~bQG=0m z!W?LP^D9scV!;fWX&~)9^Y#l#sw9>SeSG@P5aro9%Ox4dlL9g)4P(P!xR@k^a9xVo4pGOU%BX=G8LAh(@bygVJ(WoSO*MYloOJEt|-Pzk^zT!Yn!s_ zK3Wi%E?@Q&8>`(Yk*`7$LS&5R?LZF+l)k?7qT^^z_T^d>sw0v$`kz~jX_gXQH)h68hciobsCMJO;0 zh&4DJUkOlFWt)ZzfAhJALO%qUVFleB|{9>J+2E@aLj|kmQGw5p(E3a@z|2-aK z07V~K`cbEkQ|U!IB9ZBUnL`RJOu2ajW8c0pu;|jXtE;*oaqz0HK~2OroZ7H{mm)SX z5xO%gZ9v<_mY~qm9557lm|ZeuLHMqj2-u*#7Yx*w?C+aZB`t;!j-Db7vjNtbkCTcI z8xS`CY=JFEZBzFKLlFB^U7cDlJ!tw+I^6!LGSr_2E<;zC_u!`@-eO)(o!94toCAp3 z@87r#J~Hp0Jf@n{vBQg>D>(zKEv|7326oQN*=Q+9(F0@W>;^;1wj*#nVgpsX2z1iHrzDv{%rGZ8d%o%0yRkzbWRSyqrA1 zecH`@7;-afU`jC_De#R;iw9KNa=1hdO*egiQp@1VG=S=es1W>$@F!~$@U!_9D>Mjp)`A>dqc}^^Bm;z z-LWaC|K6OnMWJ47lJUp`Z%I<%;Jy3Ab>s|iY*Qr@NjYxrY~%>iw30p+6VggY#|S!^ zgAej^^BdA;s=YRIrlQ>1+8(sgG=@2=!9lnv|BRGUPDWO9Q(5dd(QQ2T0qEDNKK3;% z3`BseSQoytlU~C5y&b;~(IY<`ad5E3eR`R84`khOqe&wd zB0T+buw#xOYH_z8;m#juGbi~X_b{+*Z*7-W;g#C#zvwl1#gkvMj?54(F8ZxR_R8j@ zVTQY4fjyL1e-RlDGpK1}vE%f49A_8cgrsC7x3%|0+(2~HOhR;MGCm#Hk$gb*wpiHn zuYrppUtwFJm7gGGVPe6^O7&69P)SXWxD?GaR-Nbfs}R5wO zc7#AvwpMpHh4$T!fY8_`r^|i?8DVnzaL0$+z%IMmgd1jM<+zu@sr>n;Q3@MxqQ`-hNUQj$(c(qy2>=)8FLLO?S)nTgM!F~Ld`nmAQ#D5)w*M^afR4VoYdlXDCPohCmXift}>o^iWe4BLhl;!E6Z&?K-H=9N=+1 zk*@&M?6{8pOS8{)8>BR>RF=+dM@3%Apn_4VFt6Y~HE4WI3Z3=2$|U0y7J9v{aU zx4Rljs_AOAQEzb8-I!mHPASfe@ApCd*CLmY+ztG%EQPHSIG$#G*%6?y6}vhA4o46` zYPoo?3f)-^ym?n!8_?v}HwP3X<3~Ue`o`oHfRy^5H3G4V_WS>s%IdrS1N-;C!H8LK zA*{ca;QzA=X@$U^^6>!7GB!CaP_A*3&n09*l)#v8aaQ82&ae+Q2T;4!QDHZz_Ak+m zRR4X#Is95-K)HazicNppz6l2#XWzd4rl`oz592;{Gw0%Pr+{P;c-0mO+F+9lyib-^ z*+Trg)V{gbLCh^7G7y#niwNRP5Tk(L5+2Yt1Ms737;fsy0c0~l+ZIqNTqm;OmO806 zxHpTVRStWU6rZYnfQhji$6ERp0E1)OrQbO7`DGg{rOl#}cO?_ioRI1-fK40f0m_%- z?r_UM`jvJ40F1#Cb2@AyOVuh|uDBS~ z7MW3~(ilXqN2a0wS|-@JjGIz-y5InCkGv2}Gd z^b|lrOp}B3$jb$^{A#1lgJ-G9?J_rHrPWl#%&&r)p{_H;E}7lo=5Kvqe0b{ALGb1q zKd*45K>PenBAj4aV{sT)m!$ru)V=mku{lH>aVKp!F;Sps7~?}QsF_j7<*cai(T-n- zE^0h&s04sly4=p*4)Y#*P|(g)S|`9cG;%R&Dquc@B5l_hUl+qjw(*3*bFn>0P`1M& zLL0RO{8@p%xdR>MRMZWqFZfDN$mbsaIZ=`~_5RW9j(;dq{nLh;3h_7e^wc5wTO@@2 zbcTAl46}?(%%#IbF3W%qh2vife+{~DaIlq>h^Em(O#o~1S(Ge3KXDxzsoB0I)E}y? z)cJFj_)e?cehUR-gj1>#K;UYva;Ptzgqt3>26Un;d#o0y{5`zZ=sI7`8hEECj8k{n zk#a6lGW(eP-_xKwWmB?`LIeA$$Y`Xzens+^HjsT1CJJEiCu5Jdc=?2vlqRkG%i!F( zBV+~aa{NI8HuIzOeRCDJ0+@p3oKLOSu@e%Vs&NA}wVzgqLB3Tz%~;9u)2WC<`pr>T z--XD8{P?lud_s{h^&J;k@d(A>s^pBDN8l^ggSKeOTUIvCpIKLyaqSNeSPs$8b~#%A z)S*QSNf_{O^QY^V6;409z5cOa3+(x&hXM^Sg)JQHuD1>KLh)IXMQB9Txi|JpD-)Di zii)ni7ap}Sk}F`zy7Dg3KuA+G4Coo&#OaPUTR0u6Bk1A-@I^45dUz+2;=NvanpAvH zG1ap6_?6K(+HbW7H5bg2`GO<#G!+UR^#0YRQNJK7_MK){Y)fR+6mlw-qhgp-(Epw< z1;>K?TwN`l>4}-`A`kE6>?N{^A<)GvcR2tRVpV3=-43u|g`Is5GgApN&^~>8At&It zf*YkEnpdS;aklzBzIDL(XT`XPm8sZLmJ=8rz(&c~EN`X9fmXu6piurt%o+Lay6{VT zr{0p|(5Cl(ahjTn#k-NcTT);iZF+`re-_Nx1G1;DS)(9X@`RCdE!I=~O+|8AI(*c3ajzoVVy<3%y0651>$DZ05bVV&Ze zJr;z0!{>~E1n>=w^*{7K)&($=^;L6Ii-kdE>XjcyXC*I|LBSm0zemM!wKSP`W}E-= ziB&r9JcKTtC}5gW8qTgZkR*5R>^uuo!zH*MZk+G;ArGP?=E#W7yMmdE7#IKH)BFL+ zZIbt}r}r#gNnNw%d_n=#;+pb)}YnS&hMKa^ShnD-9rNzrV`mYw+tY;xALe2MlNJUH*r6;Y&254orQ|CQGb`mZX}@!^_#a8&5l(x;lqZ_u_Br0wB>4AR>$4nP zZG<&J)(p59Q1JmA3I!By2c-I+f7=O5fe`YA0lTW^NWY__tthe|hT@-cANtiDEJdTv z=PoHFRX%Y0Kmu1ww&QwAZpIkvYpU39sldlwf1n8A735YZeA`nZyBu4JXYuLJU5eeZ1w3=*Rr%_jpi%WHB;miFxg_~d?YZn6GR(`3Y z$Q&8f6UlI6;0%7Id?Le1X?&IVsVq@;Wps3s+≠DX5BC_#XHZe^;mF`;`70PVtuj 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 diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml deleted file mode 100644 index 4e53bed..0000000 --- a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml +++ /dev/null @@ -1,44 +0,0 @@ -@startuml system-enterprise-diagram-for-internet-banking-system-c4context -!include ../.c4s/C4_Context.puml - -UpdateElementStyle("system", $bgColor=#D4E6F1,$fontColor=#1A5276,$borderColor=#1A5276,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_system", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("person", $bgColor=#797D7F,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("component", $bgColor=#FAE5D3,$fontColor=#CA6F1E,$borderColor=#CA6F1E,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_component", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateElementStyle("container", $bgColor=#EAF2F8,$fontColor=#2E86C1,$borderColor=#2E86C1,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=2) -UpdateElementStyle("external_container", $bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape(),$borderStyle=SolidLine(),$borderThickness=1) -UpdateBoundaryStyle($elementName=system,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=container,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -UpdateBoundaryStyle($elementName=enterprise,$bgColor=#F8F9F9,$fontColor=#797D7F,$borderColor=#797D7F,$shadowing="false",$shape=RoundedBoxShape()) -SHOW_PERSON_PORTRAIT() -LAYOUT_TOP_DOWN() - -title System Enterprise diagram for Internet Banking System - -Person_Ext(customer, "Personal Banking Customer", "A customer of the bank, with personal bank accounts.") - -Enterprise_Boundary(enterprise.boundary, "Domain A") { - System(BankingSystem, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") - -Enterprise_Boundary(enterprise.boundary.1, "Domain Internal Users") { - Person(internalcustomer, "Personal Banking Customer", "An customer of the bank, with personal bank accounts.") -} - - -Enterprise_Boundary(enterprise.boundary.2, "Domain Managers") { - Person(manager, "Manager Banking Customer", "A manager of the bank, with personal bank accounts.") -} - -} - -System_Ext(Mainframe, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") -System_Ext(MailSystem, "E-mail system", "The internal Microsoft Exchange e-mail system.") - -Rel(customer, BankingSystem, "uses") -Rel(internalcustomer, BankingSystem, "uses") -Rel(manager, BankingSystem, "uses") -Rel_Back(customer, MailSystem, "Sends e-mails to") -Rel_Neighbor(BankingSystem, MailSystem, "Sends e-mails", "SMTP") -Rel(BankingSystem, Mainframe, "uses") -@enduml diff --git a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg b/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg deleted file mode 100644 index 0520387..0000000 --- a/docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg +++ /dev/null @@ -1 +0,0 @@ -System Enterprise diagram for Internet Banking System«enterprise_boundary»«boundary»Domain A[Enterprise]«enterprise_boundary»«boundary»Domain Internal Users[Enterprise]«enterprise_boundary»«boundary»Domain Managers[Enterprise]Personal BankingCustomer A customer of the bank, withpersonal bank accounts.«external_person»«external_system»Mainframe BankingSystem Stores all of the corebanking information aboutcustomers, accounts,transactions, etc.«external_system»E-mail system The internal MicrosoftExchange e-mail system.«system»Internet Banking System Allows customers to viewinformation about their bankaccounts, and makepayments.Personal BankingCustomer An customer of the bank,with personal bank accounts.«person»Manager BankingCustomer A manager of the bank, withpersonal bank accounts.«person»usesusesusesSends e-mails toSends e-mails[SMTP]uses \ No newline at end of file diff --git a/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs b/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs index 71cca9d..13397ac 100644 --- a/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs +++ b/samples/ModelDiagrams/Diagrams/ComponentDiagramSample.cs @@ -14,9 +14,11 @@ public class ComponentDiagramSample : ComponentDiagram { protected override string Title => "Internet Banking System API Application"; protected override DiagramLayout FlowVisualization => DiagramLayout.LeftRight; + protected override bool ShowLegend => true; protected override IEnumerable Structures => new Structure[] { + new Api(), MobileApp, SqlDatabase, Mainframe, diff --git a/samples/ModelDiagrams/IPersonController.cs b/samples/ModelDiagrams/IPersonController.cs new file mode 100644 index 0000000..32b5a66 --- /dev/null +++ b/samples/ModelDiagrams/IPersonController.cs @@ -0,0 +1,6 @@ +namespace ModelDiagrams; + +public class PersonController +{ + +} \ No newline at end of file diff --git a/samples/ModelDiagrams/Structures/People.cs b/samples/ModelDiagrams/Structures/People.cs index f8dcefd..ddf68af 100644 --- a/samples/ModelDiagrams/Structures/People.cs +++ b/samples/ModelDiagrams/Structures/People.cs @@ -8,7 +8,7 @@ public static class People public static Person Customer => new ("customer", "Personal Banking Customer", "A customer of the bank, with personal bank accounts.", Boundary.External); - public static Person InternalCustomer => new Person("internalcustomer", "Personal Banking Customer", + public static Person InternalCustomer => new ("internalcustomer", "Personal Banking Customer", "An customer of the bank, with personal bank accounts."); public static Person Manager => new ("manager", "Manager Banking Customer", From 37473edc053738f74fadbd1bd363e8690428882d Mon Sep 17 00:00:00 2001 From: yanjustino Date: Fri, 18 Jul 2025 22:31:57 -0300 Subject: [PATCH 2/4] Refactor code structure and update diagram samples for improved clarity and consistency --- .github/workflows/codeql-analysis.yml | 72 - .github/workflows/dotnet.yml | 20 +- README.md | 163 +- docs/.c4s/C4.puml | 1658 ----------------- docs/.c4s/C4_Component.puml | 83 - docs/.c4s/C4_Container.puml | 103 - docs/.c4s/C4_Context.puml | 434 ----- docs/.c4s/C4_Deployment.puml | 140 -- docs/.c4s/C4_Sequence.puml | 398 ---- .../c4bank-deposit-area-c4container-bw.png | Bin 0 -> 59768 bytes ...-for-internet-banking-system-c4context.png | Bin 0 -> 44215 bytes ...for-internet-banking-system-c4context.puml | 28 + ...-for-internet-banking-system-c4context.svg | 1 + ...internet-banking-system-v2-c4container.png | Bin 0 -> 108086 bytes ...nternet-banking-system-v2-c4container.puml | 44 + ...internet-banking-system-v2-c4container.svg | 1 + ...ing-system-api-application-c4component.png | Bin 0 -> 107198 bytes ...ng-system-api-application-c4component.puml | 42 + ...ing-system-api-application-c4component.svg | 1 + ...for-internet-banking-system-c4sequence.png | Bin 0 -> 36216 bytes ...or-internet-banking-system-c4sequence.puml | 30 + ...for-internet-banking-system-c4sequence.svg | 1 + ...r-internet-banking-system-c4deployment.png | Bin 0 -> 126422 bytes ...-internet-banking-system-c4deployment.puml | 65 + ...r-internet-banking-system-c4deployment.svg | 1 + ...-for-internet-banking-system-c4context.png | Bin 0 -> 71823 bytes ...for-internet-banking-system-c4context.puml | 44 + ...-for-internet-banking-system-c4context.svg | 1 + ...ternet-banking-system-c4context.mermaid.md | 31 - .../Diagrams/ComponentDiagramSample.cs | 16 +- .../Diagrams/ContainerDiagramSample.cs | 96 +- .../Diagrams/ContextDiagramSample.cs | 12 +- .../Diagrams/DeploymentDiagramSample.cs | 22 +- .../Diagrams/EnterpriseDiagramSample.cs | 14 +- .../Diagrams/SequenceDiagramSample.cs | 52 +- samples/ModelDiagrams/Program.cs | 2 +- samples/ModelDiagrams/Structures/People.cs | 24 +- samples/ModelDiagrams/Structures/Systems.cs | 27 +- src/C4Sharp.Tools/C4Sharp.Tools.csproj | 4 +- src/C4Sharp/C4Sharp.csproj | 7 +- .../Commons/FileSystem/C4FileException.cs | 13 - .../Commons/FileSystem/C4SharpDirectory.cs | 4 - src/C4Sharp/Commons/TabIndentation.cs | 2 +- .../Diagrams/Builders/ComponentDiagram.cs | 4 +- .../Diagrams/Builders/ContainerDiagram.cs | 4 +- .../Diagrams/Builders/ContextDiagram.cs | 4 +- .../Diagrams/Builders/DeploymentDiagram.cs | 14 +- .../Diagrams/Builders/SequenceDiagram.cs | 4 +- src/C4Sharp/Diagrams/Diagram.cs | 37 +- src/C4Sharp/Diagrams/DiagramBuilder.cs | 3 - src/C4Sharp/Diagrams/DiagramConstants.cs | 2 +- .../Diagrams/Interfaces/IDiagramBuilder.cs | 6 - .../Plantuml/Constants/BorderStyle.cs | 16 +- .../Plantuml/Constants/ElementName.cs | 24 +- .../Diagrams/Plantuml/PlantumlContext.cs | 41 +- .../Diagrams/Plantuml/PlantumlDiagram.cs | 38 +- .../Diagrams/Plantuml/PlantumlResources.cs | 17 - .../Diagrams/Plantuml/PlantumlStructure.cs | 2 +- .../Diagrams/Plantuml/Style/BoundaryStyle.cs | 42 +- .../Diagrams/Plantuml/Style/ElementStyle.cs | 40 +- src/C4Sharp/Elements/Component.cs | 66 +- src/C4Sharp/Elements/Container.cs | 1 + .../Elements/Relationships/Relationship.cs | 6 +- src/C4Sharp/Elements/Structure.cs | 2 +- src/C4Sharp/Elements/StructureCollection.cs | 2 +- src/C4Sharp/Resources/C4.puml | 1658 ----------------- src/C4Sharp/Resources/C4_Component.puml | 83 - src/C4Sharp/Resources/C4_Container.puml | 103 - src/C4Sharp/Resources/C4_Context.puml | 434 ----- src/C4Sharp/Resources/C4_Deployment.puml | 140 -- src/C4Sharp/Resources/C4_Dynamic.puml | 165 -- src/C4Sharp/Resources/C4_Sequence.puml | 398 ---- 72 files changed, 685 insertions(+), 6327 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml delete mode 100644 docs/.c4s/C4.puml delete mode 100644 docs/.c4s/C4_Component.puml delete mode 100644 docs/.c4s/C4_Container.puml delete mode 100644 docs/.c4s/C4_Context.puml delete mode 100644 docs/.c4s/C4_Deployment.puml delete mode 100644 docs/.c4s/C4_Sequence.puml create mode 100644 docs/images/c4bank-deposit-area-c4container-bw.png create mode 100644 docs/images/component-diagram-for-internet-banking-system-c4context.png create mode 100644 docs/images/component-diagram-for-internet-banking-system-c4context.puml create mode 100644 docs/images/component-diagram-for-internet-banking-system-c4context.svg create mode 100644 docs/images/container-diagram-for-internet-banking-system-v2-c4container.png create mode 100644 docs/images/container-diagram-for-internet-banking-system-v2-c4container.puml create mode 100644 docs/images/container-diagram-for-internet-banking-system-v2-c4container.svg create mode 100644 docs/images/internet-banking-system-api-application-c4component.png create mode 100644 docs/images/internet-banking-system-api-application-c4component.puml create mode 100644 docs/images/internet-banking-system-api-application-c4component.svg create mode 100644 docs/images/sequence-diagram-for-internet-banking-system-c4sequence.png create mode 100644 docs/images/sequence-diagram-for-internet-banking-system-c4sequence.puml create mode 100644 docs/images/sequence-diagram-for-internet-banking-system-c4sequence.svg create mode 100644 docs/images/system-context-diagram-for-internet-banking-system-c4deployment.png create mode 100644 docs/images/system-context-diagram-for-internet-banking-system-c4deployment.puml create mode 100644 docs/images/system-context-diagram-for-internet-banking-system-c4deployment.svg create mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.png create mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.puml create mode 100644 docs/images/system-enterprise-diagram-for-internet-banking-system-c4context.svg delete mode 100644 docs/system-enterprise-diagram-for-internet-banking-system-c4context.mermaid.md delete mode 100644 src/C4Sharp/Resources/C4.puml delete mode 100644 src/C4Sharp/Resources/C4_Component.puml delete mode 100644 src/C4Sharp/Resources/C4_Container.puml delete mode 100644 src/C4Sharp/Resources/C4_Context.puml delete mode 100644 src/C4Sharp/Resources/C4_Deployment.puml delete mode 100644 src/C4Sharp/Resources/C4_Dynamic.puml delete mode 100644 src/C4Sharp/Resources/C4_Sequence.puml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index ded3ec7..0000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,72 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ main ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ main ] - schedule: - - cron: '28 14 * * 4' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - language: [ 'csharp' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - - name: Setup .NET - uses: actions/setup-dotnet@v1 - with: - dotnet-version: '6.0' - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index bb8ed8e..35f71d6 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -7,8 +7,8 @@ on: branches: [ main ] env: - VERSION: 7.0.${{ github.run_number }} - CLI_VERSION: 3.0.${{ github.run_number }} + VERSION: 8.0.${{ github.run_number }} + CLI_VERSION: 4.0.${{ github.run_number }} NUGET_INDEX: https://api.nuget.org/v3/index.json BUILD_TYPE: Release @@ -25,30 +25,22 @@ jobs: - name: Release CLI version run: echo ${{env.CLI_VERSION}} - - - name: Setup .NET Core 6.0.x - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.x - - name: Setup .NET Core 7.0.x + - name: Setup .NET Core 8.0.x uses: actions/setup-dotnet@v1 with: - dotnet-version: 7.0.x + dotnet-version: 8.0.x - - name: Setup .NET Core 8.0.x + - name: Setup .NET Core 9.0.x uses: actions/setup-dotnet@v1 with: - dotnet-version: 8.0.x + dotnet-version: 9.0.x - name: Restore dependencies run: dotnet restore - name: Build run: dotnet build --no-restore --configuration Release - -# - name: Integrated Tests -# run: dotnet test ./tests/**/*.IntegratedTests.csproj --no-restore - name: Publish DLL Artifact if: github.ref == 'refs/heads/main' diff --git a/README.md b/README.md index acb707f..4f3735f 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Deployment diagrams. The library generates the following diagram types: PNG, SVG ## Getting Started -First, you will need the [.NET 5.0+](https://docs.microsoft.com/pt-br/dotnet/standard/net-standard) +First, you will need the [.NET 8.0+](https://docs.microsoft.com/pt-br/dotnet/standard/net-standard) and [Java](https://www.java.com/en/download/) to run C4Sharp. Also, you should install the C4Sharp package in your project. This package is available through [Nuget Packages](https://www.nuget.org/packages/C4Sharp). @@ -31,55 +31,89 @@ This package is available through [Nuget Packages](https://www.nuget.org/package To build a diagram using the C4S library we need to identify the structures and their relationships through a class that inherits properties directly from `DiagramBuilder` (_ContainerDiagram, ComponentDiagram, ContextDiagram, SequenceDiagram, DeploymentDiagram_). See the following example of building a container diagram: -```C# +```csharp public class ContainerDiagramSample : ContainerDiagram { - protected override string Title => "Container diagram for Internet Banking System"; + protected override string Title => "Container diagram for Internet Banking System v2"; + + protected override IEnumerable Structures => + [ + Person.None | Boundary.External | ( + alias: "Customer", + label: "Personal Banking Customer", + description: "A customer of the bank, with personal bank accounts." + ), + + SoftwareSystem.None | ( + alias: "BankingSystem", + label: "Internet Banking System", + description: "Allows customers to view information about their bank accounts, and make payments." + ), + + SoftwareSystem.None | Boundary.External | ( + alias: "MailSystem", + label: "E-mail system", + description: "The internal Microsoft Exchange e-mail system." + ), - protected override IEnumerable Structures => new Structure[] - { - Person.None | Boundary.External - | ("Customer", "Personal Banking Customer", "A customer of the bank, with personal bank accounts."), - - SoftwareSystem.None | ("BankingSystem", "Internet Banking System", - "Allows customers to view information about their bank accounts, and make payments."), - - SoftwareSystem.None | Boundary.External - | ("MailSystem", "E-mail system", "The internal Microsoft Exchange e-mail system."), - Bound("c1", "Internet Banking", - Container.None | (WebApplication, "WebApp", "WebApp", "C#, WebApi", - "Delivers the static content and the Internet banking SPA"), - - Container.None | (Spa, "Spa", "Spa", "JavaScript, Angular", - "Delivers the static content and the Internet banking SPA"), - - Container.None | (Mobile, "MobileApp", "Mobile App", "C#, Xamarin", - "Provides a mobile banking experience"), - - Container.None | (Database, "SqlDatabase", "SqlDatabase", "SQL Database", - "Stores user registration information, hashed auth credentials, access logs, etc."), - - Container.None | (Queue, "RabbitMQ", "RabbitMQ", "RabbitMQ", - "Stores user registration information, hashed auth credentials, access logs, etc."), - - Container.None | (Api, "BackendApi", "BackendApi", "Dotnet, Docker Container", - "Provides Internet banking functionality via API.") + Container.Undefined | ( + type: WebApplication, + alias: "WebApp", + label: "WebApp", + technology: "C#, WebApi", + description: "Delivers the static content and the Internet banking SPA" + ), + Container.None | ( + type: Spa, + alias: "Spa", + label: "Spa", + technology: "JavaScript, Angular", + description: "Delivers the static content and the Internet banking SPA" + ), + Container.None | ( + type: Mobile, + alias: "MobileApp", + label: "Mobile App", + technology: "C#, Xamarin", + description: "Provides a mobile banking experience" + ), + Container.None | ( + type: Database, + alias: "SqlDatabase", + label: "SqlDatabase", + technology: "SQL Database", + description: "Stores user registration information, hashed auth credentials, access logs, etc." + ), + Container.None | ( + type: Queue, + alias: "RabbitMQ", + label: "RabbitMQ", + technology: "RabbitMQ", + description: "Stores user registration information, hashed auth credentials, access logs, etc." + ), + Container.None | ( + type: Api, + alias: "BackendApi", + label: "BackendApi", + technology: "Dotnet, Docker Container", + description: "Provides Internet banking functionality via API." + ) ) - }; + ]; protected override IEnumerable Relationships => new[] { this["Customer"] > this["WebApp"] | ("Uses", "HTTPS"), this["Customer"] > this["Spa"] | ("Uses", "HTTPS"), this["Customer"] > this["MobileApp"] | "Uses", - + this["WebApp"] > this["Spa"] | "Delivers" | Position.Neighbor, this["Spa"] > this["BackendApi"] | ("Uses", "async, JSON/HTTPS"), this["MobileApp"] > this["BackendApi"] | ("Uses", "async, JSON/HTTPS"), this["SqlDatabase"] < this["BackendApi"] | ("Uses", "async, JSON/HTTPS") | Position.Neighbor, this["RabbitMQ"] < this["BackendApi"] | ("Uses", "async, JSON"), - + this["Customer"] < this["MailSystem"] | "Sends e-mails to", this["MailSystem"] < this["BackendApi"] | ("Sends e-mails using", "sync, SMTP"), this["BackendApi"] > this["BankingSystem"] | ("Uses", "sync/async, XML/HTTPS") | Position.Neighbor @@ -93,25 +127,50 @@ you can create structures that will be used in the diagram, as in the following ```c# -//Person -public static Person Customer => new ("customer", "Personal Banking Customer", - "A customer of the bank, with personal bank accounts.", Boundary.External); - -public static Person InternalCustomer => new Person("internalcustomer", "Personal Banking Customer", - "An customer of the bank, with personal bank accounts."); - -public static Person Manager => new ("manager", "Manager Banking Customer", - "A manager of the bank, with personal bank accounts."); - -//SoftwareSystem -public static SoftwareSystem BankingSystem => new("BankingSystem", "Internet Banking System", - "Allows customers to view information about their bank accounts, and make payments."); - -public static SoftwareSystem Mainframe => new("Mainframe", "Mainframe Banking System", - "Stores all of the core banking information about customers, accounts, transactions, etc.", Boundary.External); +public static class People +{ + public static Person Customer => new( + alias: "customer", + label: "Personal Banking Customer", + description: "A customer of the bank, with personal bank accounts.", + boundary: Boundary.External + ); + + public static Person InternalCustomer => new( + alias: "internalcustomer", + label: "Personal Banking Customer", + description: "An customer of the bank, with personal bank accounts." + ); + + public static Person Manager => new( + alias: "manager", + label: "Manager Banking Customer", + description: "A manager of the bank, with personal bank accounts." + ); +} -public static SoftwareSystem MailSystem => new ("MailSystem", "E-mail system", - "The internal Microsoft Exchange e-mail system.", Boundary.External); +public static class Systems +{ + public static SoftwareSystem BankingSystem => new( + alias: "BankingSystem", + label: "Internet Banking System", + description: "Allows customers to view information about their bank accounts, and make payments." + ); + + public static SoftwareSystem Mainframe => new( + alias: "Mainframe", + label: "Mainframe Banking System", + description: "Stores all of the core banking information about customers, accounts, transactions, etc.", + boundary: Boundary.External + ); + + public static SoftwareSystem MailSystem => new( + alias: "MailSystem", + label: "E-mail system", + description: "The internal Microsoft Exchange e-mail system.", + boundary: Boundary.External + ); +} ``` diff --git a/docs/.c4s/C4.puml b/docs/.c4s/C4.puml deleted file mode 100644 index 3d7e330..0000000 --- a/docs/.c4s/C4.puml +++ /dev/null @@ -1,1658 +0,0 @@ -' C4-PlantUML - -' Global pre-settings -' ################################## -' ENABLE_ALL_PLANT_ELEMENTS -' If ENABLE_ALL_PLANT_ELEMENTS is set BEFORE the first C4_* file is loaded, nearly "all" PlantUML elements can be used like -' Component(StorageA, "Storage A ", $baseShape="storage") -' ENABLE_ALL_PLANT_ELEMENTS can be set via -' !ENABLE_ALL_PLANT_ELEMENTS = 1 -' or with additional command line argument -DENABLE_ALL_PLANT_ELEMENTS=1 - -'Version -' ################################## -!function C4Version() - ' 2 spaces and ' are used as unique marker, that the release scripts makes the correct version update - !$c4Version = "2.10.0beta1" - !return $c4Version -!end function - -!procedure C4VersionDetails() -rectangle C4VersionDetailsArea <> [ -| PlantUML | **%version()** | -| C4-PlantUML | **C4Version()** | -] -!end procedure - -' Colors -' ################################## -!$ELEMENT_FONT_COLOR ?= "#FFFFFF" - -!$ARROW_COLOR ?= "#666666" -!$ARROW_FONT_COLOR ?= $ARROW_COLOR - -!$BOUNDARY_COLOR ?= "#444444" -!$BOUNDARY_BG_COLOR ?= "transparent" -!$BOUNDARY_BORDER_STYLE ?= "dashed" - -!$LEGEND_TITLE_COLOR ?= "#000000" -!$LEGEND_FONT_COLOR ?= "#FFFFFF" -!$LEGEND_BG_COLOR ?= "transparent" -!$LEGEND_BORDER_COLOR ?= "transparent" -' %darken(darkkhaki,50), #khaki -!$LEGEND_DARK_COLOR ?= "#66622E" -!$LEGEND_LIGHT_COLOR ?= "#khaki" - -!$SKETCH_BG_COLOR ?= "#EEEBDC" -!$SKETCH_FONT_COLOR ?= "" -!$SKETCH_WARNING_COLOR ?= "red" -!$SKETCH_FONT_NAME ?= "Comic Sans MS" - -' Labels -' ################################## - -!$LEGEND_SHADOW_TEXT ?= "shadow" -!$LEGEND_NO_SHADOW_TEXT ?= "no shadow" -!$LEGEND_NO_FONT_BG_TEXT ?= "last text and back color" -!$LEGEND_NO_FONT_TEXT ?= "last text color" -!$LEGEND_NO_BG_TEXT ?= "last back color" -!$LEGEND_NO_LINE_TEXT ?= "last line color" -!$LEGEND_ROUNDED_BOX ?= "rounded box" -!$LEGEND_EIGHT_SIDED ?= "eight sided" -!$LEGEND_DOTTED_LINE ?= "dotted" -!$LEGEND_DASHED_LINE ?= "dashed" -!$LEGEND_BOLD_LINE ?= "bold" -!$LEGEND_SOLID_LINE ?= "solid" - -!$LEGEND_BOUNDARY ?= "boundary" -' ignore (boundary) transparent atm, that the legend is smaller -' !$LEGEND_BOUNDARY_TRANSPARENT_INCL_COMA ?= "transparent, " -!$LEGEND_BOUNDARY_TRANSPARENT_INCL_COMA ?= "" -' (boundary) dashed should not be ignored atm -!$LEGEND_BOUNDARY_DASHED_INCL_COMA ?= "dashed, " -' !$LEGEND_BOUNDARY_DASHED_INCL_COMA ?= "" - -!$LEGEND_THICKNESS ?= "thickness" - -!$SKETCH_FOOTER_WARNING ?= "Warning:" -!$SKETCH_FOOTER_TEXT ?= "Created for discussion, needs to be validated" - -' Styling -' ################################## - -!$STEREOTYPE_FONT_SIZE ?= 12 -!global $TRANSPARENT_STEREOTYPE_FONT_SIZE = $STEREOTYPE_FONT_SIZE/2 -!$TECHN_FONT_SIZE ?= 12 - -!$ARROW_FONT_SIZE ?= 12 - -!$LEGEND_DETAILS_SMALL_SIZE ?= 10 -!$LEGEND_DETAILS_NORMAL_SIZE ?= 14 -!global $LEGEND_DETAILS_SIZE = $LEGEND_DETAILS_SMALL_SIZE - -' element symbols typically 4 times too big in legend -!$LEGEND_IMAGE_SIZE_FACTOR ?= 0.25 - -!$ROUNDED_BOX_SIZE ?= 25 -!$EIGHT_SIDED_SIZE ?= 18 - -' Default element wrap width (of an element) -!$DEFAULT_WRAP_WIDTH ?= 200 -' Maximum size in pixels, of a message (in a sequence diagram?) -!$MAX_MESSAGE_SIZE ?= 150 -' PlantUML supports no DETERMINISTIC/automatic line breaks of "PlantUML line" (C4 Relationships) -' therefore Rel...() implements an automatic line break based on spaces (like in all other objects). -' If a $type contains \n then these are used (and no automatic space based line breaks are done) -' $REL_TECHN_MAX_CHAR_WIDTH defines the automatic line break position -!$REL_TECHN_MAX_CHAR_WIDTH ?= 35 -!$REL_DESCR_MAX_CHAR_WIDTH ?= 32 - -' internal -' ################################## - -!global $ROUNDED_BOX = "roundedBox" -!global $EIGHT_SIDED = "eightSided" - -!global $DOTTED_LINE = "dotted" -!global $DASHED_LINE = "dashed" -!global $BOLD_LINE = "bold" -' solid is not defined in plantUML, but works as reset of all other styles too -!global $SOLID_LINE = "solid" - -!global $LEGEND_DETAILS_NONE = "none" -!global $LEGEND_DETAILS_NORMAL = "normal" -!global $LEGEND_DETAILS_SMALL = "small" - -skinparam defaultTextAlignment center - -skinparam wrapWidth $DEFAULT_WRAP_WIDTH -skinparam maxMessageSize $MAX_MESSAGE_SIZE - -skinparam LegendFontColor $LEGEND_FONT_COLOR -skinparam LegendBackgroundColor $LEGEND_BG_COLOR -skinparam LegendBorderColor $LEGEND_BORDER_COLOR - -skinparam rectangle<> { - backgroundcolor $LEGEND_BG_COLOR - bordercolor $LEGEND_BORDER_COLOR -} - -skinparam rectangle { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam database { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam queue { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam participant { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam arrow { - Color $ARROW_COLOR - FontColor $ARROW_FONT_COLOR - FontSize $ARROW_FONT_SIZE -} - -skinparam person { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} - -skinparam actor { - StereotypeFontSize $STEREOTYPE_FONT_SIZE - style awesome -} - -!if %variable_exists("ENABLE_ALL_PLANT_ELEMENTS") -skinparam agent { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam artifact { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam boundary { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam card { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam circle { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam cloud { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam collections { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam control { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam entity { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam file { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam folder { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam frame { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam hexagon { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam interface { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam label { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam stack { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam storage { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam usecase { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -skinparam person { - StereotypeFontSize $STEREOTYPE_FONT_SIZE -} -!endif - -' Some boundary skinparams have to be set as package skinparams too (PlantUML uses internal packages) -' UpdateBoundaryStyle() called in boundary section below -skinparam rectangle<> { - StereotypeFontSize $TRANSPARENT_STEREOTYPE_FONT_SIZE - StereotypeFontColor $BOUNDARY_BG_COLOR - BorderStyle $BOUNDARY_BORDER_STYLE -} - -skinparam package { - StereotypeFontSize $TRANSPARENT_STEREOTYPE_FONT_SIZE - StereotypeFontColor $BOUNDARY_BG_COLOR - FontStyle plain - BackgroundColor $BOUNDARY_BG_COLOR -} - -' Legend and Tags -' ################################## -!global $tagDefaultLegend = "" -!global $tagCustomLegend = "" - -' rel specific -!unquoted function $toStereos($tags) - !if (%strlen($tags) == 0) - !return '' - !endif - !$stereos = '' - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$stereos = $stereos + '<<' + $tag + '>>' -%set_variable_value("$" + $tag + "_LineLegend", %true()) - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$stereos = $stereos + '<<' + $tags + '>>' -%set_variable_value("$" + $tags + "_LineLegend", %true()) - !endif - !return $stereos -!endfunction - -' if $sprite/$techn is an empty argument, try to calculate it via the defined $tag -!unquoted function $toRelArg($arg, $tags, $varPostfix) - !if ($arg > "") - !return $arg - !endif - - !if (%strlen($tags) == 0) - !return $arg - !endif - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$newArg = %get_variable_value("$" + $tag + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$newArg = %get_variable_value("$" + $tags + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !endif - !return $arg -!endfunction - -' element specific (unused are hidden based on mask) -!unquoted function $toStereos($elementType, $tags) - !if (%strlen($tags) == 0) - !$stereos = '<<' + $elementType + '>>' -%set_variable_value("$" + $elementType + "Legend", %true()) - !return $stereos - !endif - !$stereos = '' - !$mask = $resetMask() - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$stereos = $stereos + '<<' + $tag + '>>' - !$mergedMask = $combineMaskWithTag($mask, $tag) - !if ($mergedMask != $mask) -%set_variable_value("$" + $tag + "Legend", %true()) - !$mask = $mergedMask - !endif - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$stereos = $stereos + '<<' + $tags + '>>' - !$mergedMask = $combineMaskWithTag($mask, $tags) - !if ($mergedMask != $mask) -%set_variable_value("$" + $tags + "Legend", %true()) - !$mask = $mergedMask - !endif - !endif - ' has to be last, otherwise PlantUML overwrites all tag specific skinparams - !$stereos = $stereos + '<<' + $elementType + '>>' - !$mergedMask = $combineMaskWithTag($mask, $elementType) - !if ($mergedMask != $mask) -%set_variable_value("$" + $elementType + "Legend", %true()) - !$mask = $mergedMask - !endif - !return $stereos -!endfunction - -' if $sprite/$techn is an empty argument, try to calculate it via the defined $tag -!unquoted function $toElementArg($arg, $tags, $varPostfix, $elementType) - !if ($arg > "") - !return $arg - !endif - - !if (%strlen($tags) == 0) - !$newArg = %get_variable_value("$" + $elementType + $varPostfix) - !if ($newArg > "") - !return $newArg - !else - !return $arg - !endif - !endif - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$newArg = %get_variable_value("$" + $tag + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$newArg = %get_variable_value("$" + $tags + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !$newArg = %get_variable_value("$" + $elementType + $varPostfix) - !if ($newArg > "") - !return $newArg - !endif - !endif - !return $arg -!endfunction - -' if $value is empty try to load it via variable, optional can it store the calculated value -!function $restoreEmpty($elementType, $property, $value, $store) - !$var = "$" + $elementType + "Restore" + $property - !if ($value == "") - !$value = %get_variable_value($var) - !elseif ($store) - %set_variable_value($var, $value) - !endif - !return $value -!endfunction - -' clear the restore property -!function $clearRestore($elementType, $property) - !$var = "$" + $elementType + "Restore" + $property - %set_variable_value($var, "") - !return "" -!endfunction - -!function $elementTagSkinparams($element, $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !$elementSkin = "skinparam " + $element + "<<" + $tagStereo + ">> {" + %newline() - !if ($fontColor != "") - !if (%strpos($tagStereo, "boundary") < 0) - !$elementSkin = $elementSkin + " StereotypeFontColor " + $fontColor + %newline() - !endif - !$elementSkin = $elementSkin + " FontColor " + $fontColor + %newline() - !endif - !if ($bgColor != "") - !$elementSkin = $elementSkin + " BackgroundColor " + $bgColor + %newline() - !endif - !if ($borderColor != "") - !$elementSkin = $elementSkin + " BorderColor " + $borderColor+ %newline() - !endif - !if ($shadowing == "true") - !$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "true" + %newline() - !endif - !if ($shadowing == "false") - !$elementSkin = $elementSkin + " Shadowing<<" + $tagStereo + ">> " + "false" + %newline() - !endif - ' only rectangle supports shape(d corners), define both skinparam that overlays are working - !if ($shape != "" && $element == "rectangle") - !if ($shape == $ROUNDED_BOX) - !$elementSkin = $elementSkin + " RoundCorner " + $ROUNDED_BOX_SIZE+ %newline() - !$elementSkin = $elementSkin + " DiagonalCorner " + "0" + %newline() - !elseif ($shape == $EIGHT_SIDED) - !$elementSkin = $elementSkin + " RoundCorner " + "0" + %newline() - !$elementSkin = $elementSkin + " DiagonalCorner " + $EIGHT_SIDED_SIZE+ %newline() - !endif - !endif - !if ($borderStyle != "") - !$elementSkin = $elementSkin + " BorderStyle " + $borderStyle + %newline() - !endif - !if ($borderThickness != "") - !$elementSkin = $elementSkin + " BorderThickness " + $borderThickness + %newline() - !endif - !$elementSkin = $elementSkin + "}" + %newline() - !return $elementSkin -!endfunction - -!unquoted procedure $defineSkinparams($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - ' only rectangle supports shape(d corners) - !$tagSkin = $elementTagSkinparams("rectangle", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("database", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("queue", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' plantuml.jar bug - actor have to be after person - !$tagSkin = $tagSkin + $elementTagSkinparams("person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' actor has style awesome, therefore $fontColor is ignored and text uses $bgColor too - !$tagSkin = $tagSkin + $elementTagSkinparams("actor", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' sequence requires participant - !$tagSkin = $tagSkin + $elementTagSkinparams("participant", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("sequencebox", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !if (%strpos($tagStereo, "boundary") >= 0 && $bgColor != "") - !$tagSkin = $tagSkin + "skinparam package<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + %newline() - !$tagSkin = $tagSkin + "skinparam rectangle<<" + $tagStereo + ">>StereotypeFontColor " + $bgColor + %newline() - !endif - !if %variable_exists("ENABLE_ALL_PLANT_ELEMENTS") - !$tagSkin = $tagSkin + $elementTagSkinparams("agent", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("artifact", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("card", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("cloud", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("collections", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("file", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("folder", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("frame", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("hexagon", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("package", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("stack", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("storage", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("usecase", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' elements without background: font uses $bgColor - !$tagSkin = $tagSkin + $elementTagSkinparams("boundary", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("circle", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("control", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("entity", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !$tagSkin = $tagSkin + $elementTagSkinparams("interface", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - ' label uses wrong font color? (should be $bgColor too) - !$tagSkin = $tagSkin + $elementTagSkinparams("label", $tagStereo, $bgColor, $bgColor, $borderColor, $shadowing, "", $borderStyle, $borderThickness) - !endif -$tagSkin -!endprocedure - -' arrow colors cannot start with # (legend background has to start with #) -!function $colorWithoutHash($c) - !if (%substr($c, 0, 1) == "#") - !$c = %substr($c,1) - !endif - !return $c -!endfunction - -!unquoted procedure $defineRelSkinparams($tagStereo, $textColor, $lineColor, $lineStyle, $lineThickness) - !$elementSkin = "skinparam arrow<<" + $tagStereo + ">> {" + %newline() - !if ($lineColor != "") || ($textColor != "") || ($lineStyle != "") - !$elementSkin = $elementSkin + " Color " - !if ($lineColor != "") - !$elementSkin = $elementSkin + $colorWithoutHash($lineColor) - !endif - !if ($textColor != "") - !$elementSkin = $elementSkin + ";text:" + $colorWithoutHash($textColor) - !endif - !if ($lineStyle != "") - !$elementSkin = $elementSkin + ";line." + $lineStyle - !endif - !$elementSkin = $elementSkin + %newline() - !endif - !if ($lineThickness != "") - !$elementSkin = $elementSkin + " thickness " + $lineThickness + %newline() - !endif - !$elementSkin = $elementSkin + "}" + %newline() -$elementSkin -!endprocedure - -' %is_dark() requires PlantUML version >= 1.2021.6 -!if (%function_exists("%is_dark")) - !$PlantUMLSupportsDynamicLegendColor = %true() -!else - !$PlantUMLSupportsDynamicLegendColor = %false() - !log "dynamic undefined legend colors" requires PlantUML version >= 1.2021.6, therefore only static assigned colors are used -!endif - -!unquoted function $contrastLegend($color) - !if (%is_dark($color)) - !$value = $LEGEND_LIGHT_COLOR - !else - !$value = $LEGEND_DARK_COLOR - !endif - !return $value -!endfunction - -!unquoted function $flatLegend($color) - !if (%is_dark($color)) - !$value = $LEGEND_DARK_COLOR - !else - !$value = $LEGEND_LIGHT_COLOR - !endif - !return $value -!endfunction - -' legend background has to start with # -!function $colorWithHash($c) - !if (%substr($c, 0, 1) != "#") - !$c = "#" + $c - !endif - !return $c -!endfunction - -!function $addMaskFlag($mask, $attr) - !if ($attr == "") - !$mask = $mask + "0" - !else - !$mask = $mask + "1" - !endif - !return $mask -!endfunction - -!function $orFlags($flag1, $flag2) - !if ($flag1 == "0" && $flag2 == "0") - !return "0" - !endif - !return "1" -!endfunction - -!function $tagLegendMask($bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $borderStyle, $borderThickness) - !$mask = "" - !$mask = $addMaskFlag($mask, $bgColor) - !$mask = $addMaskFlag($mask, $fontColor) - !$mask = $addMaskFlag($mask, $borderColor) - !$mask = $addMaskFlag($mask, $shadowing) - !$mask = $addMaskFlag($mask, $shape) - !$mask = $addMaskFlag($mask, $sprite) - !$mask = $addMaskFlag($mask, $borderStyle) - !$mask = $addMaskFlag($mask, $borderThickness) - !return $mask -!endfunction - -!function $resetMask() - !return "00000000" -!endfunction - -!function $combineMasks($mask1, $mask2) - !$mask = "" - !$mask = $mask + $orFlags(%substr($mask1, 0, 1), %substr($mask2, 0, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 1, 1), %substr($mask2, 1, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 2, 1), %substr($mask2, 2, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 3, 1), %substr($mask2, 3, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 4, 1), %substr($mask2, 4, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 5, 1), %substr($mask2, 5, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 6, 1), %substr($mask2, 6, 1)) - !$mask = $mask + $orFlags(%substr($mask1, 7, 1), %substr($mask2, 7, 1)) - !return $mask -!endfunction - -!function $combineMaskWithTag($mask1, $tag) - !$mask2 = %get_variable_value("$" + $tag+ "LegendMask") - !if ($mask2 == "") - ' !log combineMaskWithTag $mask1, $tag, ... only $mask1 - !return $mask1 - !endif - - ' !log combineMaskWithTag $mask1, $tag, $mask2 ... $combineMasks($mask1, $mask2) - !return $combineMasks($mask1, $mask2) -!endfunction - -' element symbols typically 4 times too big in legend -!function $smallVersionSprite($sprite) - ' ,scale= ... has to be first (...,color=black,scale=0.25... is invalid too) - !if (%strpos($sprite, "=") < 0) - !if (%substr($sprite, 0, 4) == "img:") - !$smallSprite = $sprite + "{scale=" + $LEGEND_IMAGE_SIZE_FACTOR + "}" - !else - !$smallSprite = $sprite + ",scale=" + $LEGEND_IMAGE_SIZE_FACTOR - !endif - !else - !$smallSprite = $sprite - !endif - !return $smallSprite -!endfunction - -' format sprite that it can be used in diagram -!function $getSprite($sprite) - ' if it starts with & it's a OpenIconic, details see https://useiconic.com/open/ - ' if it starts with img: it's an image, details see https://plantuml.com/creole - !if (%substr($sprite, 0, 1) != "&" && %substr($sprite, 0, 4) != "img:") - !$formatted = "<$" + $sprite + ">" - !else - !$formatted = "<" + $sprite + ">" - !endif - !return $formatted -!endfunction - -!function $setTagLegendVariables($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) - !$bg = $bgColor - !$fo = $fontColor - !$bo = $borderColor - - !if ($fo == "") - !if ($bg != "") -!if ($PlantUMLSupportsDynamicLegendColor) - !$fo = $contrastLegend($bg) -!else - !$fo = $LEGEND_DARK_COLOR -!endif - !else - !if ($bo == "") - !$fo = $LEGEND_DARK_COLOR - !$bg = $LEGEND_LIGHT_COLOR - !else -!if ($PlantUMLSupportsDynamicLegendColor) - !$fo = $flatLegend($bo) - !$bg = $contrastLegend($bo) -!else - !$fo = $LEGEND_DARK_COLOR - !$bg = $LEGEND_LIGHT_COLOR -!endif - !endif - !endif - !else - !if ($bg == "") -!if ($PlantUMLSupportsDynamicLegendColor) - !$bg = $contrastLegend($fo) -!else - !$bg = $LEGEND_LIGHT_COLOR -!endif - !endif - !endif - - !if ($bo == "") - !$bo = $bg - !endif - - !$tagEntry = "|" - !$tagDetails = "(" - !$tagEntry = $tagEntry + "<" + $colorWithHash($bg) +">" - ' ..white rectangle - !$tagEntry = $tagEntry + " " - !$tagEntry = $tagEntry + "" - !if ($legendSprite != "") - !$tagEntry = $tagEntry + $getSprite($legendSprite) + " " - !endif - - !$isBoundary = 0 - !if ($legendText == "") - !if (%strpos($tagStereo, "boundary") >= 0) - !if ($tagStereo == "boundary") - !$isBoundary = 1 - !$tagEntry = $tagEntry + " " + $LEGEND_BOUNDARY + " " - !else - ' if contains/ends with _boundary remove _boundary and add "boundary (dashed)" - !$pos = %strpos($tagStereo, "_boundary") - !if ($pos > 0) - !$isBoundary = 1 - !$tagEntry = $tagEntry + " " + %substr($tagStereo, 0 ,$pos) + " " +$LEGEND_BOUNDARY + " " - !endif - !endif - !endif - !if ($isBoundary == 0) - !$tagEntry = $tagEntry + " " + $tagStereo + " " - !endif - - !if ($isBoundary == 1 && ($bgColor == "#00000000" || %lower($bgColor) == "transparent")) - !$tagDetails = $tagDetails + $LEGEND_BOUNDARY_TRANSPARENT_INCL_COMA - !endif - !if ($shadowing == "true") - !$tagDetails = $tagDetails + $LEGEND_SHADOW_TEXT + ", " - !endif - !if ($shadowing == "false") - !$tagDetails = $tagDetails + $LEGEND_NO_SHADOW_TEXT + ", " - !endif - !if ($shape == $ROUNDED_BOX) - !$tagDetails = $tagDetails + $LEGEND_ROUNDED_BOX + ", " - !endif - !if ($shape == $EIGHT_SIDED) - !$tagDetails = $tagDetails + $LEGEND_EIGHT_SIDED + ", " - !endif - !if ($fontColor == "" && $bgColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_FONT_BG_TEXT + ", " - !else - !if ($fontColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_FONT_TEXT + ", " - !endif - !if ($bgColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_BG_TEXT + ", " - !endif - !endif - !if ($borderStyle != "") - !if ($borderStyle == $DOTTED_LINE) - !$tagDetails = $tagDetails + $LEGEND_DOTTED_LINE + ", " - !elseif ($borderStyle == $DASHED_LINE) - !if ($isBoundary == 1) - !$tagDetails = $tagDetails + $LEGEND_BOUNDARY_DASHED_INCL_COMA - !else - !$tagDetails = $tagDetails + $LEGEND_DASHED_LINE + ", " - !endif - !elseif ($borderStyle == $BOLD_LINE) - !$tagDetails = $tagDetails + $LEGEND_BOLD_LINE + ", " - !elseif ($borderStyle == $SOLID_LINE) - !$tagDetails = $tagDetails + $LEGEND_SOLID_LINE + ", " - !else - !$tagDetails = $tagDetails + $lineStyle + ", " - !endif - !endif - !if ($borderThickness != "") - !$tagDetails = $tagDetails + $LEGEND_THICKNESS + " " + $borderThickness + ", " - !endif - !if ($tagDetails=="(" || $tagDetails=="(, ") - !$tagDetails = "" - !else - !$tagDetails = %substr($tagDetails, 0, %strlen($tagDetails)-2) - !$tagDetails = $tagDetails + ")" - !endif - !else - !$brPos = %strpos($legendText, "\n") - !if ($brPos > 0) - !$tagEntry = $tagEntry + %substr($legendText, 0, $brPos) + " " - !$details = %substr($legendText, $brPos + 2) - !if ($details=="") - !$tagDetails = "" - !else - !$tagDetails = $tagDetails + $details + ")" - !endif - !else - !$tagEntry = $tagEntry + " " + $legendText + " " - !$tagDetails = "" - !endif - !endif - - !$tagDetails = $tagDetails + " " - !$tagDetails = $tagDetails + "|" -%set_variable_value("$" + $tagStereo + "LegendEntry", $tagEntry) -%set_variable_value("$" + $tagStereo + "LegendDetails", $tagDetails) - !return $tagEntry -!endfunction - -!function $setTagRelLegendVariables($tagStereo, $textColor, $lineColor, $lineStyle, $legendText, $legendSprite, $lineThickness) - !$tc = $textColor - !$lc = $lineColor - - !if ($tc == "") - !if ($PlantUMLSupportsDynamicLegendColor) - !$tc = $flatLegend($ARROW_FONT_COLOR) - !else - !$tc = $LEGEND_DARK_COLOR - !endif - !endif - !if ($lc == "") - !if ($PlantUMLSupportsDynamicLegendColor) - !$lc = $flatLegend($ARROW_COLOR) - !else - !$lc = $LEGEND_DARK_COLOR - !endif - !endif - - !$tagEntry = "|" - !$tagDetails = "(" - ' ..white line - !$tagEntry = $tagEntry + " " - !$tagEntry = $tagEntry + "" - !if ($legendSprite != "") - !$tagEntry = $tagEntry + $getSprite($legendSprite) + " " - !endif - !if ($legendText == "") - !$tagEntry = $tagEntry + " " + $tagStereo + " " - !if ($textColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_FONT_TEXT + ", " - !endif - !if ($lineColor == "") - !$tagDetails = $tagDetails + $LEGEND_NO_LINE_TEXT + ", " - !endif - !if ($lineStyle != "") - !if ($lineStyle == $DOTTED_LINE) - !$tagDetails = $tagDetails + $LEGEND_DOTTED_LINE + ", " - !elseif ($lineStyle == $DASHED_LINE) - !$tagDetails = $tagDetails + $LEGEND_DASHED_LINE + ", " - !elseif ($lineStyle == $BOLD_LINE) - !$tagDetails = $tagDetails + $LEGEND_BOLD_LINE + ", " - !else - !$tagDetails = $tagDetails + $lineStyle + ", " - !endif - !endif - !if ($lineThickness != "") - !$tagDetails = $tagDetails + $LEGEND_THICKNESS + " " + $lineThickness + ", " - !endif - !if ($tagDetails=="(") - !$tagDetails = "" - !else - !$tagDetails = %substr($tagDetails, 0, %strlen($tagDetails)-2) - !$tagDetails = $tagDetails + ")" - !endif - !else - !$brPos = %strpos($legendText, "\n") - !if ($brPos > 0) - !$tagEntry = $tagEntry + " " + %substr($legendText, 0, $brPos) + " " - !$details = %substr($legendText, $brPos + 2) - !if ($details=="") - !$tagDetails = "" - !else - !$tagDetails = $tagDetails + $details + ")" - !endif - !else - !$tagEntry = $tagEntry + " " + $legendText + " " - !$tagDetails = "" - !endif - !endif - - !$tagDetails = $tagDetails + " " - !$tagDetails = $tagDetails + "|" -%set_variable_value("$" + $tagStereo + "_LineLegendEntry", $tagEntry) -%set_variable_value("$" + $tagStereo + "_LineLegendDetails", $tagDetails) - !return $tagEntry -!endfunction - -!unquoted procedure $addTagToLegend($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") -'' if a combined element tag is defined (e.g. "v1.0&v1.1") then it is typically a merged color, -'' like a new $fontColor="#fdae61" therefore it should be added to the legend -'' and the & combined tags will be not removed -' !if (%strpos($tagStereo, "&") < 0) - !$dummyAlreadyVariables = $setTagLegendVariables($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) - !$tagCustomLegend = $tagCustomLegend + $tagStereo + "\n" - !$tagMask = $tagLegendMask( $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $borderStyle, $borderThickness) -%set_variable_value("$" + $tagStereo + "LegendMask", $tagMask) -' !endif -!endprocedure - -!unquoted procedure $addRelTagToLegend($tagStereo, $textColor="", $lineColor="", $lineStyle="", $legendText="", $legendSprite="", $lineThickness="") -'' Arrows have a bug with stereotype/skinparams and cannot combine text colors of one stereotype -'' and the line color of another stereotype. Therefore the text color of one tag and the line color -'' of another tag have to be combined via a "workaround" tag ("v1.0&v1.1"). -'' This workaround tag could be theoretically removed in the legend but after that there would -'' be an inconsistency between the element tags and the rel tags and therefore -'' & combined workaround tags are not removed too (and in unlikely cases the color itself could be changed) -' !if (%strpos($tagStereo, "&") < 0) - !$dummyAlreadyVariables = $setTagRelLegendVariables($tagStereo, $textColor, $lineColor, $lineStyle, $legendText, $legendSprite, $lineThickness) - !$tagCustomLegend = $tagCustomLegend + $tagStereo + "_Line\n" -' !endif -!endprocedure - -!procedure $showActiveLegendEntries($allDefined) - !$brPos = %strpos($allDefined, "\n") - !while ($brPos >= 0) - !$tagStereo = %substr($allDefined, 0, $brPos) - !$allDefined = %substr($allDefined, $brPos+2) - !$brPos = %strpos($allDefined, "\n") - !if (%variable_exists("$" + $tagStereo + "Legend")) - ' is part of legendDetails - !$part1 = %get_variable_value("$" + $tagStereo + "LegendEntry") - !$partSize = "" - !$part2 = %get_variable_value("$" + $tagStereo + "LegendDetails") - !$line = $part1 + $partSize + $part2 -$line - !endif - !endwhile - !if (%strlen($allDefined) > 0) - !$tagStereo = $allDefined - !if (%variable_exists("$" + $tagStereo + "Legend")) - ' is part of legendDetails - !$part1 = %get_variable_value("$" + $tagStereo + "LegendEntry") - !$partSize = "" - !$part2 = %get_variable_value("$" + $tagStereo + "LegendDetails") - !$line = $part1 + $partSize + $part2 -$line - !endif - !endif -!endprocedure - -!function RoundedBoxShape() -!return $ROUNDED_BOX -!endfunction - -!function EightSidedShape() -!return $EIGHT_SIDED -!endfunction - -!function DottedLine() -!return $DOTTED_LINE -!endfunction - -!function DashedLine() -!return $DASHED_LINE -!endfunction - -!function BoldLine() -!return $BOLD_LINE -!endfunction - -!function SolidLine() -!return $SOLID_LINE -!endfunction - -' used by new defined tags -!unquoted procedure AddElementTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") -$defineSkinparams($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !if ($sprite!="") -%set_variable_value("$" + $tagStereo + "ElementTagSprite", $sprite) - !if ($legendSprite == "") - !$legendSprite = $smallVersionSprite($sprite) - !endif - !endif - !if ($techn != "") -%set_variable_value("$" + $tagStereo + "ElementTagTechn", $techn) - !endif -$addTagToLegend($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -!unquoted procedure $addElementTagInclReuse($elementName, $tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - !$bgColor=$restoreEmpty($elementName, "bgColor", $bgColor, %false()) - !$fontColor=$restoreEmpty($elementName, "fontColor", $fontColor, %false()) - !$borderColor=$restoreEmpty($elementName, "borderColor", $borderColor, %false()) - !$shadowing=$restoreEmpty($elementName, "shadowing", $shadowing, %false()) - !$shape=$restoreEmpty($elementName, "shape", $shape, %false()) - !$sprite=$restoreEmpty($elementName, "sprite", $sprite, %false()) - !$techn=$restoreEmpty($elementName, "techn", $techn, %false()) - ' new style should has its own legend text - ' !$legendText=$restoreEmpty($elementName, "legendText", $legendText, %false()) - !$legendSprite=$restoreEmpty($elementName, "legendSprite", $legendSprite, %false()) - !$borderStyle=$restoreEmpty($elementName, "borderStyle", $borderStyle, %false()) - !$borderThickness=$restoreEmpty($elementName, "borderThickness", $borderThickness, %false()) - - AddElementTag($tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -' used by new defined rel tags -!unquoted procedure AddRelTag($tagStereo, $textColor="", $lineColor="", $lineStyle="", $sprite="", $techn="", $legendText="", $legendSprite="", $lineThickness="") -$defineRelSkinparams($tagStereo, $textColor, $lineColor, $lineStyle, $lineThickness) - !if ($sprite != "") -%set_variable_value("$" + $tagStereo + "RelTagSprite", $sprite) - !if ($legendSprite == "") - ' relation symbols typically 1:1 no additional scale required - !$legendSprite = $sprite - !endif - !endif - !if ($techn != "") -%set_variable_value("$" + $tagStereo + "RelTagTechn", $techn) - !endif -$addRelTagToLegend($tagStereo, $textColor, $lineColor, $lineStyle, $legendText, $legendSprite, $lineThickness) -!endprocedure - -' update the style of existing elements like person, ... -!unquoted procedure UpdateElementStyle($elementName, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") -!$bgColor=$restoreEmpty($elementName, "bgColor", $bgColor, %true()) -!$fontColor=$restoreEmpty($elementName, "fontColor", $fontColor, %true()) -!$borderColor=$restoreEmpty($elementName, "borderColor", $borderColor, %true()) -!$shadowing=$restoreEmpty($elementName, "shadowing", $shadowing, %true()) -!$shape=$restoreEmpty($elementName, "shape", $shape, %true()) -!$sprite=$restoreEmpty($elementName, "sprite", $sprite, %true()) -!$techn=$restoreEmpty($elementName, "techn", $techn, %true()) -!$legendText=$restoreEmpty($elementName, "legendText", $legendText, %true()) -!$legendSprite=$restoreEmpty($elementName, "legendSprite", $legendSprite, %true()) -!$borderStyle=$restoreEmpty($elementName, "borderStyle", $borderStyle, %true()) -!$borderThickness=$restoreEmpty($elementName, "borderThickness", $borderThickness, %true()) - -$defineSkinparams($elementName, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $borderStyle, $borderThickness) - !if ($sprite != "") -%set_variable_value("$" + $elementName + "ElementTagSprite", $sprite) - !if ($legendSprite == "") - !$legendSprite = $smallVersionSprite($sprite) - !endif - !endif - !if ($techn != "") -%set_variable_value("$" + $elementName + "ElementTagTechn", $techn) - !endif - !$dummyAlreadyVariables = $setTagLegendVariables($elementName, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $legendText, $legendSprite, $borderStyle, $borderThickness) - ' default tags sets at least bgColor and fontColor - !$tagMask = $tagLegendMask("CHANGED", "CHANGED", $borderColor, $shadowing, $shape, $sprite, $borderStyle, $borderThickness) -%set_variable_value("$" + $elementName + "LegendMask", $tagMask) -!endprocedure - -/' @deprecated in favor of UpdateElementStyle '/ -!unquoted procedure UpdateSkinparamsAndLegendEntry($elementName, $bgColor="", $fontColor="", $borderColor="", $shadowing="") -UpdateElementStyle($elementName, $bgColor, $fontColor, $borderColor, $shadowing) -!endprocedure - -' update the style of default relation, it has to set both properties (combined statement not working) -!unquoted procedure UpdateRelStyle($textColor, $lineColor) - !$elementSkin = "skinparam arrow {" + %newline() - !$elementSkin = $elementSkin + " Color " + $lineColor + %newline() - !$elementSkin = $elementSkin + " FontColor " + $textColor + %newline() - !$elementSkin = $elementSkin + "}" + %newline() -$elementSkin -!endprocedure - -' tags/stereotypes have to be delimited with \n -!unquoted procedure SetDefaultLegendEntries($tagStereoEntries) - !$tagDefaultLegend = $tagStereoEntries -!endprocedure - -' Links -' ################################## - -!function $getLink($link) - !if ($link != "") - !return "[[" + $link + "]]" - !else - !return "" - !endif -!endfunction - -' Line breaks -' ################################## - -!unquoted function $breakText($text, $usedNewLine, $widthStr="-1") -!$width = %intval($widthStr) -!$multiLine = "" -!if (%strpos($text, "\n") >= 0) - !while (%strpos($text, "\n") >= 0) - !$brPos = %strpos($text, "\n") - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $usedNewLine - !else - ' non breaking change that newLine breaks with formats can be used with \n\n - !$multiLine = $multiLine + "" + $usedNewLine - !endif - !$text = %substr($text, $brPos+2) - !if (%strlen($text) == 0) - !$text = "" - !endif - !endwhile -!else - !while ($width>0 && %strlen($text) > $width) - !$brPos = $width - !while ($brPos > 0 && %substr($text, $brPos, 1) != ' ') - !$brPos = $brPos - 1 - !endwhile - - !if ($brPos < 1) - !$brPos = %strpos($text, " ") - !else - !endif - - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $usedNewLine - !$text = %substr($text, $brPos + 1) - !else - !$multiLine = $multiLine+ $text - !$text = "" - !endif - !endwhile -!endif -!if (%strlen($text) > 0) - !$multiLine = $multiLine + $text -!endif -!return $multiLine -!endfunction - -!unquoted function $breakLabel($text) -!$usedNewLine = "\n== " -!$multiLine = $breakText($text, $usedNewLine) -!return $multiLine -!endfunction - -!unquoted function $breakDescr($text, $widthStr) - !$usedNewLine = "\n" - !return $breakText($text, $usedNewLine, $widthStr) -!endfunction - -' $breakTechn() supports //...//; $breakNode() in C4_Deployment supports no //....// -!unquoted function $breakTechn($text, $widthStr) - !$usedNewLine = '//\n//' - !return $breakText($text, $usedNewLine, $widthStr) -!endfunction - -' Element base layout -' ################################## - -!function $getElementBase($label, $techn, $descr, $sprite) - !$element = "" - !if ($sprite != "") - !$element = $element + $getSprite($sprite) - !if ($label != "") - !$element = $element + '\n' - !endif - !endif - !if ($label != "") - !$element = $element + '== ' + $breakLabel($label) - !else - !$element = $element + '.' - !endif - !if ($techn != "") - !$element = $element + '\n//[' + $breakTechn($techn, '-1') + ']//' - !endif - !if ($descr != "") - !$element = $element + '\n\n' + $descr - !endif - !return $element -!endfunction - -!function $getElementLine($umlShape, $elementType, $alias, $label, $techn, $descr, $sprite, $tags, $link) - !$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", $elementType) - !$techn=$toElementArg($techn, $tags, "ElementTagTechn", $elementType) - !$baseProp = $getElementBase($label, $techn, $descr, $sprite) + $getProps() - !$stereo = $toStereos($elementType,$tags) - !$calcLink = $getLink($link) - - !$line = $umlShape + " " + %chr(34) + $baseProp + %chr(34) +" " + $stereo + " as " + $alias + $calcLink - !return $line -!endfunction - -' Element properties -' ################################## - -' collect all defined properties as table rows -!global $propTable = "" -!global $propTableCaption = "" -!global $propColCaption = "=" - -!unquoted function SetPropertyHeader($col1Name, $col2Name, $col3Name = "", $col4Name = "") - !$propColCaption = "" - !$propTableCaption = "|= " + $col1Name + " |= " + $col2Name + " |" - !if ($col3Name != "") - !$propTableCaption = $propTableCaption + "= " + $col3Name + " |" - !endif - !if ($col4Name != "") - !$propTableCaption = $propTableCaption + "= " + $col4Name + " |" - !endif - !return "" -!endfunction - -!unquoted function WithoutPropertyHeader() - !$propTableCaption = "" - !$propColCaption = "=" - !return "" -!endfunction - -!unquoted function AddProperty($col1, $col2, $col3 = "", $col4 = "") - !if ($propTable == "") - !if ($propTableCaption != "") - !$propTable = $propTableCaption + "\n" - !endif - !else - !$propTable = $propTable + "\n" - !endif - !$propTable = $propTable + "| " + $col1 + " |" + $propColCaption + " " + $col2 + " |" - !if ($col3 != "") - !$propTable = $propTable + " " + $col3 + " |" - !endif - !if ($col4 != "") - !$propTable = $propTable + " " + $col4 + " |" - !endif - !return "" -!endfunction - -!unquoted function $getProps($alignedNL = "\n") - !if ($propTable != "") - !$retTable = $alignedNL + $propTable - !$propTable = "" - !return $retTable - !endif - !return "" -!endfunction - -!unquoted function $getProps_L() - !return $getProps("\l") -!endfunction - -!unquoted function $getProps_R() - !return $getProps("\r") -!endfunction - -SetPropertyHeader("Property","Value") - -' Layout -' ################################## - -!function $getLegendDetailsSize($detailsFormat) - !if $detailsFormat == $LEGEND_DETAILS_NONE - !$size = 0 - !elseif $detailsFormat == $LEGEND_DETAILS_SMALL - !$size = $LEGEND_DETAILS_SMALL_SIZE - !else - !$size = $LEGEND_DETAILS_NORMAL_SIZE - !endif - !return $size -!endfunction - -!procedure $getHideStereotype($hideStereotype) -!if ($hideStereotype == "true") -hide stereotype -!endif -!endprocedure - -!procedure $getLegendTable($detailsFormat) -!global $LEGEND_DETAILS_SIZE = $getLegendDetailsSize($detailsFormat) -<$colorWithHash(transparent),$colorWithHash(transparent)>|**Legend** | -$showActiveLegendEntries($tagDefaultLegend) -$showActiveLegendEntries($tagCustomLegend) -!endprocedure - -!procedure $getLegendArea($areaAlias, $hideStereotype, $details) -$getHideStereotype($hideStereotype) -rectangle $areaAlias<> [ -$getLegendTable($details) -] -!endprocedure - -!procedure HIDE_STEREOTYPE() -hide stereotype -!endprocedure - -!unquoted procedure SET_SKETCH_STYLE($bgColor="_dont_change_", $fontColor="_dont_change_", $warningColor="_dont_change_", $fontName="_dont_change_", $footerWarning="_dont_change_", $footerText="_dont_change_") -!if $bgColor != "_dont_change_" - !global $SKETCH_BG_COLOR = $bgColor -!endif -!if $fontColor != "_dont_change_" - !global $SKETCH_FONT_COLOR = $fontColor -!endif -!if $warningColor != "_dont_change_" - !global $SKETCH_WARNING_COLOR = $warningColor -!endif -!if $fontName != "_dont_change_" - !global $SKETCH_FONT_NAME = $fontName -!endif -!if $footerWarning != "_dont_change_" - !global $SKETCH_FOOTER_WARNING = $footerWarning -!endif -!if $footerText != "_dont_change_" - !global $SKETCH_FOOTER_TEXT = $footerText -!endif -!endprocedure - -!procedure LAYOUT_AS_SKETCH() - skinparam handwritten true -!if $SKETCH_BG_COLOR > "" - skinparam backgroundColor $SKETCH_BG_COLOR -!endif -!if $SKETCH_FONT_COLOR > "" - skinparam footer { - FontColor $SKETCH_FONT_COLOR - } - !if $ARROW_COLOR == "#666666" - !global $ARROW_COLOR = $SKETCH_FONT_COLOR - !global $ARROW_FONT_COLOR = $SKETCH_FONT_COLOR - skinparam arrow { - Color $ARROW_COLOR - FontColor $ARROW_FONT_COLOR - } - !endif - !if $BOUNDARY_COLOR == "#444444" - !global $BOUNDARY_COLOR = $SKETCH_FONT_COLOR - skinparam rectangle<> { - FontColor $BOUNDARY_COLOR - BorderColor $BOUNDARY_COLOR - } - !endif -!endif -!if $SKETCH_FONT_NAMES > "" - skinparam defaultFontName $SKETCH_FONT_NAME -!endif -!if $SKETCH_FOOTER_WARNING > "" || $SKETCH_FOOTER_TEXT > "" - !$line = "footer "+ $SKETCH_FOOTER_WARNING + " " + $SKETCH_FOOTER_TEXT - $line -!endif -!endprocedure - -!global $fix_direction=%false() - -!function $down($start,$end) -!if ($fix_direction) -!return $start+"RIGHT"+$end -!else -!return $start+"DOWN"+$end -!endif -!endfunction - -!function $up($start,$end) -!if ($fix_direction) -!return $start+"LEFT"+$end -!else -!return $start+"UP"+$end -!endif -!endfunction - -!function $left($start,$end) -!if ($fix_direction) -!return $start+"UP"+$end -!else -!return $start+"LEFT"+$end -!endif -!endfunction - -!function $right($start,$end) -!if ($fix_direction) -!return $start+"DOWN"+$end -!else -!return $start+"RIGHT"+$end -!endif -!endfunction - -!procedure LAYOUT_TOP_DOWN() -!global $fix_direction=%false() -top to bottom direction -!endprocedure - -!procedure LAYOUT_LEFT_RIGHT() -!global $fix_direction = %false() -left to right direction -!endprocedure - -!procedure LAYOUT_LANDSCAPE() -!global $fix_direction = %true() -left to right direction -!endprocedure - -' legend details can displayed as Normal(), Small(), None() -!function None() -!return $LEGEND_DETAILS_NONE -!endfunction - -!function Normal() -!return $LEGEND_DETAILS_NORMAL -!endfunction - -!function Small() -!return $LEGEND_DETAILS_SMALL -!endfunction - -' has to be last call in diagram -!unquoted procedure SHOW_LEGEND($hideStereotype="true", $details=Small()) -$getHideStereotype($hideStereotype) -legend right -$getLegendTable($details) -endlegend -!endprocedure - -/' @deprecated in favor of SHOW_LEGEND '/ -!unquoted procedure SHOW_DYNAMIC_LEGEND($hideStereotype="true") -SHOW_LEGEND($hideStereotype) -!endprocedure - -' legend is reserved and cannot be uses as alias of SHOW_FLOATING_LEGEND() therefore -' LEGEND() is introduced. It returns the default name of the floating alias "floating_legend_alias" -' and can be used in the Lay_Distance() calls -!function LEGEND() -!return "floating_legend_alias" -!endfunction - -' enables that legend can be located in drawing area of the diagram. It has to be last call in diagram followed by Lay_Distance() -!unquoted procedure SHOW_FLOATING_LEGEND($alias=LEGEND(), $hideStereotype="true", $details=Small()) -$getLegendArea($alias, $hideStereotype, $details) -!endprocedure - -' Boundaries -' ################################## - -!unquoted procedure UpdateBoundaryStyle($elementName="", $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $type="", $legendText="", $borderStyle="", $borderThickness="") - !if ($elementName != "") - !$elementBoundary = $elementName + '_boundary' - UpdateElementStyle($elementBoundary, $bgColor, $fontColor, $borderColor, $shadowing, $shape, "", $type, $legendText, "", $borderStyle, $borderThickness) - !else - UpdateElementStyle("boundary", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "", $type, $legendText, "", $borderStyle, $borderThickness) - ' simulate color inheritance - UpdateBoundaryStyle("enterprise", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "Enterprise", "", $borderStyle, $borderThickness) - UpdateBoundaryStyle("system", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "System", "", $borderStyle, $borderThickness) - UpdateBoundaryStyle("container", $bgColor, $fontColor, $borderColor, $shadowing, $shape, "Container", "", $borderStyle, $borderThickness) - !endif -!endprocedure - -!unquoted procedure AddBoundaryTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $type="", $legendText="", $borderStyle="", $borderThickness="") - !$tagBoundary = $tagStereo + '_boundary' - AddElementTag($tagBoundary, $bgColor, $fontColor, $borderColor, $shadowing, $shape, "", $type, $legendText, "", $borderStyle, $borderThickness) -!endprocedure - -' add _boundary to all tags that short tag version can be used -!unquoted function $addBoundaryPostfix($tags) - !if (%strlen($tags) == 0) - !return '' - !endif - !$boundaryTags = '' - !$brPos = %strpos($tags, "+") - !while ($brPos >= 0) - !$tag = %substr($tags, 0, $brPos) - !$boundaryTags = $boundaryTags + $tag + '_boundary+' - !$tags = %substr($tags, $brPos+1) - !$brPos = %strpos($tags, "+") - !endwhile - !if (%strlen($tags) > 0) - !$boundaryTags = $boundaryTags + $tags + '_boundary' - !endif - !return $boundaryTags -!endfunction - -!function $getBoundary($label, $type) - !if ($type == "") - !return '== ' + $breakLabel($label) - !endif - !if (type != "") - !return '== ' + $breakLabel($label) + '\n[' + $type + ']' - !endif -!endfunction - -!unquoted procedure Boundary($alias, $label, $type="", $tags="", $link="") -!$boundaryTags = $addBoundaryPostfix($tags) -' nodes $type reuses $techn definition of $boundaryTags -!$type=$toElementArg($type, $boundaryTags, "ElementTagTechn", "boundary") -rectangle "$getBoundary($label, $type)" $toStereos("boundary", $boundaryTags) as $alias $getLink($link) -!endprocedure - -' Boundary Styling -UpdateBoundaryStyle("", $bgColor=$BOUNDARY_BG_COLOR, $fontColor=$BOUNDARY_COLOR, $borderColor=$BOUNDARY_COLOR, $borderStyle=DashedLine()) - -' Index -' ################################## - -' Dynamic/Sequence diagram supports (automatically) numbered interactions: -' preferred function calls -' (Uppercase) LastIndex(): return the last used index (function which can be used as argument) -' (Uppercase) Index($offset=1): returns current index and calculates next index (function which can be used as argument) -' (Uppercase) SetIndex($new_index): returns new set index and calculates next index (function which can be used as argument) - -' old procedures calls -' (lowercase) increment($offset=1): increase current index (procedure which has no direct output) -' (lowercase) setIndex($new_index): set the new index (procedure which has no direct output) - -!$lastIndex = 0 -!$index = 1 - -!procedure increment($offset=1) - !$lastIndex = $index - !$index = $index + $offset -!endprocedure - -!procedure setIndex($new_index) - !$lastIndex = $index - !$index = $new_index -!endprocedure - -!function Index($offset=1) - !$lastIndex = $index - !$index = $lastIndex + $offset - !return $lastIndex -!endfunction - -!function LastIndex() - !return $lastIndex -!endfunction - -!function SetIndex($new_index, $offset=1) - !$lastIndex = $new_index - !$index = $new_index + $offset - !return $lastIndex -!endfunction - -!unquoted function $getPrefix($index) - !if ($index == "") - !$pre = Index() + ": " - !else - !$pre = $index + ": " - !endif - !return $pre -!endfunction - -' Relationship -' ################################## - -!function $getRel($direction, $alias1, $alias2, $label, $techn, $descr, $sprite, $tags, $link) - !$sprite = $toRelArg($sprite, $tags, "RelTagSprite") - !$techn = $toRelArg($techn, $tags, "RelTagTechn") - !$rel = $alias1 + ' ' + $direction + ' ' + $alias2 - !if ($tags != "") - !$rel = $rel + ' ' + $toStereos($tags) - !endif - !$rel = $rel + ' : ' - !if ($link != "") - !$rel = $rel + '**[[' + $link + ' ' - !endif - !if ($sprite != "") - !$rel = $rel + $getSprite($sprite) - !if ($label != "") - !$rel = $rel + ' ' - !endif - !endif - !if ($link != "") - !$usedNewLine = ']]**\n**[[' + $link + ' ' - ' if sprite and label is empty than the link url is shown (otherwise link cannot be activated at all) - !$rel = $rel + $breakText($label, $usedNewLine) + ']]**' - !else - !if ($label != "") - !$usedNewLine = '**\n**' - !$rel = $rel + '**' + $breakText($label, $usedNewLine) + '**' - !else - !$rel = $rel + '.' - !endif - !endif - !if ($techn != "") - ' line break is not deterministic, calculate it - !$rel = $rel + '\n//[' + $breakTechn($techn, $REL_TECHN_MAX_CHAR_WIDTH) + ']//' - !endif - !if ($descr != "") - ' line break is not deterministic, calculate it - !$rel = $rel + '\n\n' + $breakDescr($descr, $REL_DESCR_MAX_CHAR_WIDTH) - !endif - !$prop = $getProps() - !if ($prop != "") - ' reuse table - !$rel = $rel + $prop - !endif - !return $rel -!endfunction - -!unquoted procedure Rel_($alias1, $alias2, $label, $direction) -$getRel($direction, $alias1, $alias2, $label, "", "", "", "", "") -!endprocedure -!unquoted procedure Rel_($alias1, $alias2, $label, $techn, $direction) -$getRel($direction, $alias1, $alias2, $label, $techn, "", "", "", "") -!endprocedure - -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("-->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<-->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Back($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<--", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<->>", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_Back_Neighbor($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel("<<-", $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_D($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Down($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_D($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Down($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($down("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_U($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Up($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_U($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Up($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($up("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_L($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Left($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_L($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Left($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($left("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Rel_R($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel_Right($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure BiRel_R($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure BiRel_Right($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -$getRel($right("<<-","->>"), $from, $to, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -' Layout Helpers -' ################################## - -!function $getHiddenLine($distance) - !return '-[hidden]' + %substr('------------', 0, %intval($distance) + 1) -!endfunction - -!unquoted procedure Lay_D($from, $to) -$from -[hidden]D- $to -!endprocedure -!unquoted procedure Lay_Down($from, $to) -$from -[hidden]D- $to -!endprocedure - -!unquoted procedure Lay_U($from, $to) -$from -[hidden]U- $to -!endprocedure -!unquoted procedure Lay_Up($from, $to) -$from -[hidden]U- $to -!endprocedure - -!unquoted procedure Lay_R($from, $to) -$from -[hidden]R- $to -!endprocedure -!unquoted procedure Lay_Right($from, $to) -$from -[hidden]R- $to -!endprocedure - -!unquoted procedure Lay_L($from, $to) -$from -[hidden]L- $to -!endprocedure -!unquoted procedure Lay_Left($from, $to) -$from -[hidden]L- $to -!endprocedure - -' PlantUML bug: lines which does "not match" with the orientation/direction of the diagram -' use the same length therefore the method offers no direction at all. -' If a direction is required the Lay_...() methods can be used -!unquoted procedure Lay_Distance($from, $to, $distance="0") -$from $getHiddenLine($distance) $to -!endprocedure diff --git a/docs/.c4s/C4_Component.puml b/docs/.c4s/C4_Component.puml deleted file mode 100644 index a4137d6..0000000 --- a/docs/.c4s/C4_Component.puml +++ /dev/null @@ -1,83 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Container.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml -!endif - -' Scope: A single container. -' Primary elements: Components within the container in scope. -' Supporting elements: Containers (within the software system in scope) plus people and software systems directly connected to the components. -' Intended audience: Software architects and developers. - -' Colors -' ################################## - -!$COMPONENT_FONT_COLOR ?= "#000000" -!$COMPONENT_BG_COLOR ?= "#85BBF0" -!$COMPONENT_BORDER_COLOR ?= "#78A8D8" - -!$EXTERNAL_COMPONENT_FONT_COLOR ?= $COMPONENT_FONT_COLOR -!$EXTERNAL_COMPONENT_BG_COLOR ?= "#CCCCCC" -!$EXTERNAL_COMPONENT_BORDER_COLOR ?= "#BFBFBF" - -' Styling -' ################################## - -UpdateElementStyle("component", $COMPONENT_BG_COLOR, $COMPONENT_FONT_COLOR, $COMPONENT_BORDER_COLOR, false) -UpdateElementStyle("external_component", $EXTERNAL_COMPONENT_BG_COLOR, $EXTERNAL_COMPONENT_FONT_COLOR, $EXTERNAL_COMPONENT_BORDER_COLOR, false) - -' shortcuts with default colors -!unquoted procedure AddComponentTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("component", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalComponentTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_component", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -' Layout -' ################################## - -SetDefaultLegendEntries("person\nsystem\ncontainer\ncomponent\nexternal_person\nexternal_system\nexternal_container\nexternal_component\nenterprise_boundary\nsystem_boundary\ncontainer_boundary\nboundary") - -!procedure LAYOUT_WITH_LEGEND() -hide stereotype -legend right -|**Legend** | -|<$PERSON_BG_COLOR> person | -|<$SYSTEM_BG_COLOR> system | -|<$CONTAINER_BG_COLOR> container | -|<$COMPONENT_BG_COLOR> component | -|<$EXTERNAL_PERSON_BG_COLOR> external person | -|<$EXTERNAL_SYSTEM_BG_COLOR> external system | -|<$EXTERNAL_CONTAINER_BG_COLOR> external container | -|<$EXTERNAL_COMPONENT_BG_COLOR> external component | -endlegend -!endprocedure - -' Elements -' ################################## - -!unquoted procedure Component($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape, "component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Component_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape, "external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure diff --git a/docs/.c4s/C4_Container.puml b/docs/.c4s/C4_Container.puml deleted file mode 100644 index bccd6fd..0000000 --- a/docs/.c4s/C4_Container.puml +++ /dev/null @@ -1,103 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Context.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml -!endif - -' Scope: A single software system. -' Primary elements: Containers within the software system in scope. -' Supporting elements: People and software systems directly connected to the containers. -' Intended audience: Technical people inside and outside of the software development team; including software architects, developers and operations/support staff. - -' Colors -' ################################## - -!$CONTAINER_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$CONTAINER_BG_COLOR ?= "#438DD5" -!$CONTAINER_BORDER_COLOR ?= "#3C7FC0" - -!$CONTAINER_BOUNDARY_COLOR ?= $BOUNDARY_COLOR -!$CONTAINER_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR -!$CONTAINER_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE - -!$EXTERNAL_CONTAINER_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$EXTERNAL_CONTAINER_BG_COLOR ?= "#B3B3B3" -!$EXTERNAL_CONTAINER_BORDER_COLOR ?= "#A6A6A6" - -' Styling -' ################################## -UpdateElementStyle("container", $CONTAINER_BG_COLOR, $CONTAINER_FONT_COLOR, $CONTAINER_BORDER_COLOR, false) -UpdateElementStyle("external_container", $EXTERNAL_CONTAINER_BG_COLOR, $EXTERNAL_CONTAINER_FONT_COLOR, $EXTERNAL_CONTAINER_BORDER_COLOR, false) - -UpdateBoundaryStyle("container", $bgColor=$CONTAINER_BOUNDARY_BG_COLOR, $fontColor=$CONTAINER_BOUNDARY_COLOR, $borderColor=$CONTAINER_BOUNDARY_COLOR, $type="Container", $shadowing="false") - -' shortcuts with default colors -!unquoted procedure AddContainerTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("container", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalContainerTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $techn="", $legendText="", $legendSprite="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_container", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $techn, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -!unquoted procedure UpdateContainerBoundaryStyle($bgColor=$CONTAINER_BOUNDARY_BG_COLOR, $fontColor=$CONTAINER_BOUNDARY_COLOR, $borderColor=$CONTAINER_BOUNDARY_COLOR, $shadowing="", $shape="", $type="Container", $legendText="", $borderStyle="", $borderThickness="") - UpdateBoundaryStyle("container", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness) -!endprocedure - -' Layout -' ################################## - -SetDefaultLegendEntries("person\nsystem\ncontainer\nexternal_person\nexternal_system\nexternal_container\nenterprise_boundary\nsystem_boundary\ncontainer_boundary\nboundary") - -!procedure LAYOUT_WITH_LEGEND() -hide stereotype -legend right -|**Legend** | -|<$PERSON_BG_COLOR> person | -|<$SYSTEM_BG_COLOR> system | -|<$CONTAINER_BG_COLOR> container | -|<$EXTERNAL_PERSON_BG_COLOR> external person | -|<$EXTERNAL_SYSTEM_BG_COLOR> external system | -|<$EXTERNAL_CONTAINER_BG_COLOR> external container | -endlegend -!endprocedure - -' Elements -' ################################## - -!unquoted procedure Container($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape , "container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Container_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getElementLine($baseShape , "external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("database", "external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getElementLine("queue", "external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -' Boundaries -' ################################## - -!unquoted procedure Container_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+container' - !else - !$allTags = 'container' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure diff --git a/docs/.c4s/C4_Context.puml b/docs/.c4s/C4_Context.puml deleted file mode 100644 index 71b2574..0000000 --- a/docs/.c4s/C4_Context.puml +++ /dev/null @@ -1,434 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4.puml -!endif - -' Scope: A single software system. -' Primary elements: The software system in scope. -' Supporting elements: People and software systems directly connected to the software system in scope. -' Intended audience: Everybody, both technical and non-technical people, inside and outside of the software development team. - -' Colors -' ################################## - -!$PERSON_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$PERSON_BG_COLOR ?= "#08427B" -!$PERSON_BORDER_COLOR ?= "#073B6F" - -!$EXTERNAL_PERSON_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$EXTERNAL_PERSON_BG_COLOR ?= "#686868" -!$EXTERNAL_PERSON_BORDER_COLOR ?= "#8A8A8A" - -!$SYSTEM_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$SYSTEM_BG_COLOR ?= "#1168BD" -!$SYSTEM_BORDER_COLOR ?= "#3C7FC0" - -!$SYSTEM_BOUNDARY_COLOR ?= $BOUNDARY_COLOR -!$SYSTEM_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR -!$SYSTEM_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE - -!$EXTERNAL_SYSTEM_FONT_COLOR ?= $ELEMENT_FONT_COLOR -!$EXTERNAL_SYSTEM_BG_COLOR ?= "#999999" -!$EXTERNAL_SYSTEM_BORDER_COLOR ?= "#8A8A8A" - -!$ENTERPRISE_BOUNDARY_COLOR ?= $BOUNDARY_COLOR -!$ENTERPRISE_BOUNDARY_BG_COLOR ?= $BOUNDARY_BG_COLOR -!$ENTERPRISE_BOUNDARY_BORDER_STYLE ?= $BOUNDARY_BORDER_STYLE - -' Styling -' ################################## - -UpdateElementStyle("person", $PERSON_BG_COLOR, $PERSON_FONT_COLOR, $PERSON_BORDER_COLOR, false) -UpdateElementStyle("external_person", $EXTERNAL_PERSON_BG_COLOR, $EXTERNAL_PERSON_FONT_COLOR, $EXTERNAL_PERSON_BORDER_COLOR, false) -UpdateElementStyle("system", $SYSTEM_BG_COLOR, $SYSTEM_FONT_COLOR, $SYSTEM_BORDER_COLOR, false) -UpdateElementStyle("external_system", $EXTERNAL_SYSTEM_BG_COLOR, $EXTERNAL_SYSTEM_FONT_COLOR, $EXTERNAL_SYSTEM_BORDER_COLOR, false) - -UpdateBoundaryStyle("system", $bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $type="System", $shadowing="false") -UpdateBoundaryStyle("enterprise", $bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $type="Enterprise", $shadowing="false") - -' shortcuts with default colors -!unquoted procedure AddPersonTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalPersonTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_person", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddSystemTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("system", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure AddExternalSystemTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $legendText="", $legendSprite="", $type="", $borderStyle="", $borderThickness="") - $addElementTagInclReuse("external_system", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -!unquoted procedure UpdateEnterpriseBoundaryStyle($bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $shadowing="", $shape="", $type="Enterprise", $legendText="", $borderStyle="", $borderThickness="") - UpdateBoundaryStyle("enterprise", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness) -!endprocedure -!unquoted procedure UpdateSystemBoundaryStyle($bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $shadowing="", $shape="", $type="System", $legendText="", $borderStyle="", $borderThickness="") - UpdateBoundaryStyle("system", $bgColor, $fontColor, $borderColor, $shadowing, $shape, $type, $legendText, $borderStyle, $borderThickness) -!endprocedure - -' Sprites -' ################################## - -sprite $person [48x48/16] { -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -0000000000000000000049BCCA7200000000000000000000 -0000000000000000006EFFFFFFFFB3000000000000000000 -00000000000000001CFFFFFFFFFFFF700000000000000000 -0000000000000001EFFFFFFFFFFFFFF80000000000000000 -000000000000000CFFFFFFFFFFFFFFFF6000000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -00000000000001FFFFFFFFFFFFFFFFFFF900000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000 -0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000 -0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000 -0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000 -00000000000000EFFFFFFFFFFFFFFFFFF800000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -000000000000000BFFFFFFFFFFFFFFFF5000000000000000 -0000000000000001DFFFFFFFFFFFFFF70000000000000000 -00000000000000000BFFFFFFFFFFFF500000000000000000 -0000000000000000005DFFFFFFFFA1000000000000000000 -0000000000000000000037ABB96100000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000025788300000000005886410000000000000 -000000000007DFFFFFFD9643347BFFFFFFFB400000000000 -0000000004EFFFFFFFFFFFFFFFFFFFFFFFFFFB1000000000 -000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD200000000 -00000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE10000000 -0000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0000000 -000000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5000000 -000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000 -000009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF200000 -00000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF600000 -00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA00000 -00000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000 -000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000 -0000008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3000000 -000000014555555555555555555555555555555300000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -} - -sprite $person2 [48x48/16] { -0000000000000000000049BCCA7200000000000000000000 -0000000000000000006EFFFFFFFFB3000000000000000000 -00000000000000001CFFFFFFFFFFFF700000000000000000 -0000000000000001EFFFFFFFFFFFFFF80000000000000000 -000000000000000CFFFFFFFFFFFFFFFF6000000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -00000000000001FFFFFFFFFFFFFFFFFFF900000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFF00000000000000 -0000000000000BFFFFFFFFFFFFFFFFFFFF40000000000000 -0000000000000EFFFFFFFFFFFFFFFFFFFF70000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000FFFFFFFFFFFFFFFFFFFFF80000000000000 -0000000000000DFFFFFFFFFFFFFFFFFFFF60000000000000 -0000000000000AFFFFFFFFFFFFFFFFFFFF40000000000000 -00000000000006FFFFFFFFFFFFFFFFFFFE00000000000000 -00000000000000EFFFFFFFFFFFFFFFFFF800000000000000 -000000000000007FFFFFFFFFFFFFFFFFF100000000000000 -000000000000000BFFFFFFFFFFFFFFFF5000000000000000 -0000000000000001DFFFFFFFFFFFFFF70000000000000000 -00000000000000000BFFFFFFFFFFFF500000000000000000 -0000000000000000005DFFFFFFFFA1000000000000000000 -0000000000000000000037ABB96100000000000000000000 -000000000002578888300000000005888864100000000000 -0000000007DFFFFFFFFD9643347BFFFFFFFFFB4000000000 -00000004EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB10000000 -0000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2000000 -000006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE100000 -00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB00000 -0000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50000 -0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0000 -0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2000 -000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000 -000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB000 -001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA000 -000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -000DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6000 -0009FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF2000 -0003FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFD0000 -0000BFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF50000 -00003FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFB00000 -000006FFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFE100000 -0000007FFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFD2000000 -00000004EFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFB10000000 -0000000007DF8FFFFFFFFFFFFFFFFFFFFFF8FB4000000000 -000000000002578888888888888888888864100000000000 -} - -sprite $robot [48x48/16] { -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000005BFFFFFFFFFFFFFFFFFFFFFE9100000000000 -0000000000AFFFFFFFFFFFFFFFFFFFFFFFFFE30000000000 -0000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFE1000000000 -000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000 -000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFD000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000699405FFFFFFC427FFFFFFFFFC427FFFFFFE009982000 -008FFF705FFFFFE10006FFFFFFFE00007FFFFFE00FFFF100 -00CFFF705FFFFFA00001FFFFFFF900002FFFFFE00FFFF500 -00DFFF705FFFFFB00002FFFFFFFA00003FFFFFE00FFFF500 -00DFFF705FFFFFF4000AFFFFFFFF3000BFFFFFE00FFFF500 -00DFFF705FFFFFFFA8DFFFFFFFFFFA8DFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00DFFF705FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFFF500 -00CFFF705FFFFFF87777777777777777CFFFFFE00FFFF500 -008FFF705FFFFFF100000000000000009FFFFFE00FFFF100 -000699405FFFFFF76666666666666666CFFFFFE009982000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000 -000000004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000000 -000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFFF7000000000 -0000000005FFFFFFFFFFFFFFFFFFFFFFFFFFFD0000000000 -00000000004CFFFFFFFFFFFFFFFFFFFFFFFF910000000000 -000000000000011111111111111111111110000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000 -} - -sprite $robot2 [48x48/16] { -000000000000000088888888888888880000000000000000 -000000000000000AFFFFFFFFFFFFFFFFA000000000000000 -00000000000000CFFFFFFFFFFFFFFFFFFC00000000000000 -00000000000004EFFFFFFFFFFFFFFFFFFE40000000000000 -0000000000000AFFFFFFFFFFFFFFFFFFFFA0000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000888FFFFFFFFFFFFFFFFFFFF88800000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000008FF8FFFFFFFFFFFFFFFFFFFF8FF80000000000 -00000000000888FFFFFFFFFFFFFFFFFFFF88800000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000008FFFFFFFFFFFFFFFFFFFF80000000000000 -00000000000004CFFFFFFFFFFFFFFFFFFC40000000000000 -000000488888848CFFFFFFFFFFFFFFFFC848888884000000 -00000CFFFFFFFFC888888888888888888CFFFFFFFFC00000 -00008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000 -0000CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0008FFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFF8000 -0000CFFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFFC0000 -00008FFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFF80000 -00000CFFFFFF8FFFFFFFFFFFFFFFFFFFFFF8FFFFFFC00000 -000000488887578888888888888888888864688884000000 -000000000000000000000000000000000000000000000000 -} - -' Layout -' ################################## - -SetDefaultLegendEntries("person\nsystem\nexternal_person\nexternal_system\nenterprise_boundary\nsystem_boundary\nboundary") - -!procedure LAYOUT_WITH_LEGEND() -hide stereotype -legend right -|**Legend** | -|<$PERSON_BG_COLOR> person | -|<$SYSTEM_BG_COLOR> system| -|<$EXTERNAL_PERSON_BG_COLOR> external person | -|<$EXTERNAL_SYSTEM_BG_COLOR> external system | -endlegend -!endprocedure - -!global $defaultPersonSprite = "person" -!$dummy = $restoreEmpty("person", "sprite", $defaultPersonSprite, %true()) -UpdateElementStyle("person") -' workaround of plantuml.jar bug - person overwrites external_person setting -!$dummy = $restoreEmpty("external_person", "sprite", $defaultPersonSprite, %true()) -UpdateElementStyle("external_person") -!global $portraitPerson = "false" - -!procedure $clearPersonRestore() - !$dummy = $clearRestore("person", "sprite") - !$dummy = $clearRestore("person", "legendSprite") - %set_variable_value("$" + "person" + "ElementTagSprite", "") - UpdateElementStyle("person") - ' workaround of plantuml.jar bug - person overwrites external_person setting - !$dummy = $clearRestore("external_person", "sprite") - !$dummy = $clearRestore("external_person", "legendSprite") - %set_variable_value("$" + "external_person" + "ElementTagSprite", "") - UpdateElementStyle("external_person") -!endprocedure - -!procedure HIDE_PERSON_SPRITE() - !$defaultPersonSprite = "" - !$portraitPerson = "false" - $clearPersonRestore() -!endprocedure - -!unquoted procedure SHOW_PERSON_SPRITE($sprite="") - !if ($sprite == "") - !$defaultPersonSprite = "person" - !else - !$defaultPersonSprite = $sprite - !endif - !$dummy = $restoreEmpty("person", "sprite", $defaultPersonSprite, %true()) - UpdateElementStyle("person") - ' workaround of plantuml.jar bug - person overwrites external_person setting - !$dummy = $restoreEmpty("external_person", "sprite", $defaultPersonSprite, %true()) - UpdateElementStyle("external_person") - !$portraitPerson = "false" -!endprocedure - -!unquoted procedure SHOW_PERSON_PORTRAIT() - !$defaultPersonSprite = "" - !$portraitPerson = "portrait" - $clearPersonRestore() -!endprocedure - -!unquoted procedure SHOW_PERSON_OUTLINE() - !$defaultPersonSprite = "" - !$portraitPerson = "outline" - $clearPersonRestore() -!endprocedure - -' Elements -' ################################## - -!function $getPerson($label, $type, $descr, $sprite) - !if ($sprite == "") && ($defaultPersonSprite != "") - !$sprite = $defaultPersonSprite - !endif - !return $getElementBase($label, $type, $descr, $sprite) -!endfunction - -!unquoted procedure Person($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "person") -' $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "person") -!if ($portraitPerson == "portrait") && ($sprite == "") -actor "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link) -!elseif ($portraitPerson == "outline") && ($sprite == "") -person "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link) -!else -rectangle "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("person", $tags) as $alias $getLink($link) -!endif -!endprocedure - -!unquoted procedure Person_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "external_person") -' $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "external_person") -!if ($portraitPerson == "portrait") && ($sprite == "") -actor "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link) -!elseif ($portraitPerson == "outline") && ($sprite == "") -person "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link) -!else -rectangle "$getPerson($label, $type, $descr, $sprite)$getProps()" $toStereos("external_person", $tags) as $alias $getLink($link) -!endif -!endprocedure - -!unquoted procedure System($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getElementLine($baseShape, "system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("database", "system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("queue", "system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure System_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getElementLine($baseShape , "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("database", "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getElementLine("queue", "external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -' Boundaries -' ################################## - -!unquoted procedure Enterprise_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+enterprise' - !else - !$allTags = 'enterprise' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -!unquoted procedure System_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+system' - !else - !$allTags = 'system' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure diff --git a/docs/.c4s/C4_Deployment.puml b/docs/.c4s/C4_Deployment.puml deleted file mode 100644 index afc9945..0000000 --- a/docs/.c4s/C4_Deployment.puml +++ /dev/null @@ -1,140 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Container.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml -!endif - -' Colors -' ################################## - -!$NODE_FONT_COLOR ?= "#000000" -!$NODE_BG_COLOR ?= "#FFFFFF" -!$NODE_BORDER_COLOR ?= "#A2A2A2" - -' Styling -' ################################## - -' PlantUML supports no automatic line breaks of "PlantUML containers" (C4 Deployment_Node is a "PlantUML container") -' therefore (Deployment_)Node() implements an automatic line break based on spaces (like in all other objects). -' If a $type contains \n then these are used (and no automatic space based line breaks are done) -' $NODE_TYPE_MAX_CHAR_WIDTH defines the automatic line break position -!$NODE_TYPE_MAX_CHAR_WIDTH ?= 35 -!$NODE_DESCR_MAX_CHAR_WIDTH ?= 32 - -UpdateElementStyle("node", $bgColor=$NODE_BG_COLOR, $fontColor=$NODE_FONT_COLOR, $borderColor=$NODE_BORDER_COLOR, false) -skinparam rectangle<> { - FontStyle normal -} - -' shortcuts with default colors -' node specific: $techn is only used in old scripts, new scripts uses $type ($techn has to remain, it could be called via named argument) -!unquoted procedure AddNodeTag($tagStereo, $bgColor="", $fontColor="", $borderColor="", $shadowing="", $shape="", $sprite="", $type="", $legendText="", $legendSprite="", $techn="", $borderStyle="", $borderThickness="") - !$type=$type+$techn - $addElementTagInclReuse("node", $tagStereo, $bgColor, $fontColor, $borderColor, $shadowing, $shape, $sprite, $type, $legendText, $legendSprite, $borderStyle, $borderThickness) -!endprocedure - -' Layout -' ################################## - -' comment if node should not be added to legend. No calculated legend extension required -SetDefaultLegendEntries("person\nsystem\ncontainer\nexternal_person\nexternal_system\nexternal_container\nnode\nenterprise_boundary\nsystem_boundary\ncontainer_boundary\nboundary") - -' Line breaks -' ################################## - -' $breakTechn() in C4 supports //...//; $breakNode() in C4_Deployment supports no //....// -!unquoted function $breakNode($text, $widthStr) - !$usedNewLine = '\n' - !return $breakText($text, $usedNewLine, $widthStr) -!endfunction - -' Elements -' ################################## - -!function $getNode($label, $type, $descr, $sprite) - !$nodeText = "" - !if ($sprite != "") - !$nodeText = $nodeText + $getSprite($sprite) + '\n' - !endif - !$nodeText = $nodeText + '== ' + $breakText($label, "\n== ") - !if ($type != "") - !$nodeText = $nodeText + '\n[' + $breakNode($type, $NODE_TYPE_MAX_CHAR_WIDTH) + ']' - !endif - !if ($descr != "") - !$nodeText = $nodeText + '\n\n' + $breakDescr($descr, $NODE_DESCR_MAX_CHAR_WIDTH) - !endif - !return $nodeText -!endfunction - -!function $getNode_L($label, $type, $descr, $sprite) - !$nodeText = "" - !if ($sprite != "") - !$nodeText = $nodeText + $getSprite($sprite) + '\l' - !endif - !$nodeText = $nodeText + '== ' + $breakText($label, "\l== ") - !if ($type != "") - !$nodeText = $nodeText + '\l[' + $breakNode($type, $NODE_TYPE_MAX_CHAR_WIDTH) + ']' - !endif - !if ($descr != "") - !$nodeText = $nodeText + '\l\l' + $breakDescr($descr, $NODE_DESCR_MAX_CHAR_WIDTH) - !endif - !return $nodeText -!endfunction - -!function $getNode_R($label, $type, $descr, $sprite) - !$nodeText = "" - !if ($sprite != "") - !$nodeText = $nodeText + $getSprite($sprite) + '\r' - !endif - !$nodeText = $nodeText + '== ' + $breakText($label, "\r== ") - !if ($type != "") - !$nodeText = $nodeText + '\r[' + $breakNode($type, $NODE_TYPE_MAX_CHAR_WIDTH) + ']' - !endif - !if ($descr != "") - !$nodeText = $nodeText + '\r\r' + $breakDescr($descr, $NODE_DESCR_MAX_CHAR_WIDTH) - !endif - !return $nodeText -!endfunction - -!unquoted procedure Deployment_Node($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode($label, $type, $descr, $sprite)$getProps()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Deployment_Node_L($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_L($label, $type, $descr, $sprite)$getProps_L()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Deployment_Node_R($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_R($label, $type, $descr, $sprite)$getProps_R()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Node($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode($label, $type, $descr, $sprite)$getProps()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Node_L($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_L($label, $type, $descr, $sprite)$getProps_L()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure - -!unquoted procedure Node_R($alias, $label, $type="", $descr="", $sprite="", $tags="", $link="") -!$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", "node") -' nodes $type reuses $techn definition of $tags -!$type=$toElementArg($type, $tags, "ElementTagTechn", "node") -rectangle "$getNode_R($label, $type, $descr, $sprite)$getProps_R()" $toStereos("node",$tags) as $alias $getLink($link) -!endprocedure diff --git a/docs/.c4s/C4_Sequence.puml b/docs/.c4s/C4_Sequence.puml deleted file mode 100644 index ee40694..0000000 --- a/docs/.c4s/C4_Sequence.puml +++ /dev/null @@ -1,398 +0,0 @@ -' convert it with additional command line argument -DRELATIVE_INCLUDE="relative/absolute" to use locally -!if %variable_exists("RELATIVE_INCLUDE") - !include ./C4_Component.puml -!else - !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml -!endif - -' Scope: Interactions in an enterprise, software system or container. -' Primary and supporting elements: Depends on the diagram scope - -' enterprise - people and software systems Related to the enterprise in scope -' software system - see system context or container diagrams, -' container - see component diagram. -' Intended audience: Technical and non-technical people, inside and outside of the software development team. - -' Sequence diagram introduces (automatically) numbered interactions: -' (lowercase) increment($offset=1): increase current index (procedure which has no direct output) -' (lowercase) setIndex($new_index): set the new index (procedure which has no direct output) -' -' (Uppercase) LastIndex(): return the last used index (function which can be used as argument) -' (Uppercase) Index($offset=1): returns current index and calculates next index (function which can be used as argument) -' (Uppercase) SetIndex($new_index): returns new set index and calculates next index (function which can be used as argument) - -' enables multi-level boxes -!pragma teoz true - - -' Legend redefintion -' ################################## -' sequence has no dashed boxes -!if ($LEGEND_DASHED_BOUNDARY == "dashed") - !$LEGEND_DASHED_BOUNDARY = "" -!endif -!if ($LEGEND_DASHED_TRANSPARENT_BOUNDARY == "dashed") - !$LEGEND_DASHED_TRANSPARENT_BOUNDARY = "" -!endif -UpdateBoundaryStyle("", $bgColor=$BOUNDARY_BG_COLOR, $fontColor=$BOUNDARY_COLOR, $borderColor=$BOUNDARY_COLOR) -UpdateBoundaryStyle("enterprise", $bgColor=$ENTERPRISE_BOUNDARY_BG_COLOR, $fontColor=$ENTERPRISE_BOUNDARY_COLOR, $borderColor=$ENTERPRISE_BOUNDARY_COLOR, $type="Enterprise") -UpdateBoundaryStyle("system", $bgColor=$SYSTEM_BOUNDARY_BG_COLOR, $fontColor=$SYSTEM_BOUNDARY_COLOR, $borderColor=$SYSTEM_BOUNDARY_COLOR, $type="System") -UpdateBoundaryStyle("container", $bgColor=$CONTAINER_BOUNDARY_BG_COLOR, $fontColor=$CONTAINER_BOUNDARY_COLOR, $borderColor=$CONTAINER_BOUNDARY_COLOR, $type="Container") - -' Styling and Layout -' ################################## - -!global $display_element_description = %false() - -' typically the element/participant descriptions are not displayed in a sequence diagram, but it can be activated with this call -!unquoted procedure SHOW_ELEMENT_DESCRIPTIONS($show="true") -!if ($show == "true") - !global $display_element_description = %true() -!else - !global $display_element_description = %false() -!endif -!endprocedure - -' typically the foot boxes descriptions are not displayed in a sequence diagram, but it can be activated with this call -!unquoted procedure SHOW_FOOT_BOXES($show="true") -!if ($show == "true") - show footbox -!else - hide footbox -!endif -!endprocedure - -!global $show_index = %false() -' All relation specific (default) ordinary index numbers can be shown with this call -!unquoted procedure SHOW_INDEX($show="true") -!if ($show == "true") - !global $show_index = %true() -!else - !global $show_index = %false() -!endif -!endprocedure - -' ======= if no theme is defined hide foot box and activate C4_blue styles -!if (%variable_exists("$THEME")) -!else -' $BOUNDARY_BG_COLOR... have to be defined in theme itself that it can be used in styles,... -' (no default values which are defined in C4.puml) -' If skinparams and styles are defined with concrete values no variables are required -!$BOUNDARY_BG_COLOR ?= "transparent" -!$BOUNDARY_COLOR ?= "#444444" -!$ARROW_COLOR ?= "#666666" - -' replace transparent with concrete background that it can be used as font color too -!if ($BOUNDARY_BG_COLOR == "transparent") - !$SEQUENCE_BG_COLOR = white -!else - !$SEQUENCE_BG_COLOR = $BOUNDARY_BG_COLOR -!endif - -' "C4 styled" default is no foot boxes -hide footbox -' "C4 styled" default is that lifeline is arrow color -skinparam SequenceLifelineBorderColor $ARROW_COLOR - -skinparam SequenceGroupBodyBackgroundColor $SEQUENCE_BG_COLOR -skinparam SequenceGroupFontColor $BOUNDARY_COLOR -skinparam SequenceGroupBackgroundColor $BOUNDARY_COLOR -skinparam SequenceGroupHeaderFontColor $SEQUENCE_BG_COLOR -skinparam SequenceGroupBorderColor $BOUNDARY_COLOR - -skinparam SequenceReferenceBackgroundColor $SEQUENCE_BG_COLOR -skinparam SequenceReferenceFontColor $BOUNDARY_COLOR -skinparam SequenceReferenceHeaderBackgroundColor $BOUNDARY_COLOR -' VIA STYLE -' skinparam SequenceReferenceHeaderFontColor $SEQUENCE_BG_COLOR - -skinparam SequenceReferenceBorderColor $BOUNDARY_COLOR - -skinparam SequenceDividerBackgroundColor $SEQUENCE_BG_COLOR -skinparam SequenceDividerFontColor $BOUNDARY_COLOR -skinparam SequenceDividerBorderColor $BOUNDARY_COLOR - -' VIA STYLE -' skinparam SequenceDelayFontColor green - -!endif -' ======= if no theme is defined hide foot box and activate C4_blue styles - -' Elements redefinition -' ################################## - -' all elements have to be displayed as participant -' participants requires ` %newline()` instead of `\n` - -!unquoted function $breakWithNewline($text, $lineEnd, $lineStart, $widthStr="-1") -!$width = %intval($widthStr) -!$multiLine = "" -!if (%strpos($text, "\n") >= 0) - !while (%strpos($text, "\n") >= 0) - !$brPos = %strpos($text, "\n") - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $lineEnd + %newline() + $lineStart - !else - ' non breaking change that newLine breaks with formats can be used with \n\n - !$multiLine = $multiLine + "" + $lineEnd + %newline() + $lineStart - !endif - !$text = %substr($text, $brPos+2) - !if (%strlen($text) == 0) - !$text = "" - !endif - !endwhile -!else - !while ($width>0 && %strlen($text) > $width) - !$brPos = $width - !while ($brPos > 0 && %substr($text, $brPos, 1) != ' ') - !$brPos = $brPos - 1 - !endwhile - - !if ($brPos < 1) - !$brPos = %strpos($text, " ") - !else - !endif - - !if ($brPos > 0) - !$multiLine = $multiLine + %substr($text, 0, $brPos) + $lineEnd + %newline() + $lineStart - !$text = %substr($text, $brPos + 1) - !else - !$multiLine = $multiLine+ $text - !$text = "" - !endif - !endwhile -!endif -!if (%strlen($text) > 0) - !$multiLine = $multiLine + $text -!endif -!return $multiLine -!endfunction - -!unquoted function $breakNewLineLabel($text) -!$multiLine = $breakWithNewline($text, "", "==") -!return $multiLine -!endfunction - -!unquoted function $breakNewLineDescr($text) - !return $breakWithNewline($text, "", "", $REL_DESCR_MAX_CHAR_WIDTH) -!endfunction - -!unquoted function $breakNewLineTechn($text) - !$lineStart = "//" - !$lineEnd = '//' - !return $breakWithNewline($text, $lineStart, $lineEnd, $REL_TECHN_MAX_CHAR_WIDTH) -!endfunction - -' description is not displayed (size too big, line breaks not supported) -' properties are not displayed in sequence diagram (size would be too big) -' $breakLabel() not required by participant -!procedure $getParticipant($elementType, $alias, $label, $techn, $descr, $sprite, $tags, $link) - !$sprite=$toElementArg($sprite, $tags, "ElementTagSprite", $elementType) - !$techn=$toElementArg($techn, $tags, "ElementTagTechn", $elementType) - !$stereo = $toStereos($elementType,$tags) - !$calcLabel = "== " + $breakNewLineLabel($label) - !$calcTech = "//[" + $breakNewLineTechn($techn) + "]//" - !$calcDescr = $breakNewLineDescr($descr) - !$calcLink = $getLink($link) - -participant $alias $stereo $calcLink [ -!if ($sprite != "") -$getSprite($sprite) -!endif -!if ($label != "") -$calcLabel -!endif -!if ($techn != "") -$calcTech -!endif -!if ($display_element_description == %true() && $descr != "") - -$calcDescr -!endif -] -!endprocedure - - -!unquoted procedure Person($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("person", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Person_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("external_person", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure System($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getParticipant("system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure System_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="", $baseShape="rectangle") - ' $type reuses $techn definition of $tags - $getParticipant("external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemDb_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure SystemQueue_Ext($alias, $label, $descr="", $sprite="", $tags="", $link="", $type="") - ' $type reuses $techn definition of $tags - $getParticipant("external_system", $alias, $label, $type, $descr, $sprite, $tags, $link) -!endprocedure - - - -!unquoted procedure Container($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Container_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ContainerQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_container", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - - - -!unquoted procedure Component($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure Component_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $baseShape="rectangle") - $getParticipant("external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentDb_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - -!unquoted procedure ComponentQueue_Ext($alias, $label, $techn="", $descr="", $sprite="", $tags="", $link="") - $getParticipant("external_component", $alias, $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure - - -' Boundary redefinition -' ################################## - -' all boundaries have to be displayed as box and -' !!! important changes: without { at the end; and boundary ends with Boundary_End() instead of } - -' alias ignored -' $breakLabel() not required by participant - -!unquoted procedure Boundary($alias, $label, $type="", $tags="", $link="") -!$boundaryTags = $addBoundaryPostfix($tags) -' nodes $type reuses $techn definition of $boundaryTags -!$type=$toElementArg($type, $boundaryTags, "ElementTagTechn", "boundary") -!if ($link != "") - !$usedNewLine = ']]\n== [[' + $link + ' ' - !$labelType = '== [[' + $link + ' ' + $breakText($label, $usedNewLine) + ']]' -!else - !$usedNewLine = '\n== ' - !$labelType = $breakText($label, $usedNewLine) -!endif -!if (type != "") - !$labelType = $labelType + '\n[' + $type + ']' -!endif -box "$labelType" $toStereos("boundary", $boundaryTags) -!endprocedure - -!procedure Boundary_End() -end box -!endprocedure - -!unquoted procedure Enterprise_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+enterprise' - !else - !$allTags = 'enterprise' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -!unquoted procedure System_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+system' - !else - !$allTags = 'system' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -!unquoted procedure Container_Boundary($alias, $label, $tags="", $link="") - !if ($tags != "") - !$allTags = $tags + '+container' - !else - !$allTags = 'container' - !endif - ' $type defined via $tag style - Boundary($alias, $label, "", $allTags, $link) -!endprocedure - -' Relationship (redefinition) -' ################################## - -' only Rel is supported in sequence diagram - -' first Rel() supports the $index and $rel argument too; second Rel() overwrites C4.puml definition -' don't add empty lines in procedure otherwise & calls are not working anymore '& a -> b: call' are not working anymore -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="", $index="", $rel="") - !if ($show_index == %true()) - !$pre = $getPrefix($index) - !else - !$pre = "" - !endif - !if ($rel == "") - !$rel = "->" - !endif -$getRel($rel, $from, $to, $pre + $label, $techn, $descr, $sprite, $tags, $link) -!endprocedure -!unquoted procedure Rel($from, $to, $label, $techn="", $descr="", $sprite="", $tags="", $link="") -Rel($from, $to, $label, $techn, $descr, $sprite, $tags, $link, "", "") -!endprocedure \ No newline at end of file diff --git a/docs/images/c4bank-deposit-area-c4container-bw.png b/docs/images/c4bank-deposit-area-c4container-bw.png new file mode 100644 index 0000000000000000000000000000000000000000..559e85d5dfaaa935056fa6e02878847e58af8721 GIT binary patch literal 59768 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�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