This repository has been archived on 2026-05-29. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Programmierprojekt/documents/images/docs/networking/commands/overview.svg
T

1 line
30 KiB
XML

<?plantuml 1.2026.2?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="CLASS" height="872px" preserveAspectRatio="none" style="width:783px;height:872px;" version="1.1" viewBox="0 0 783 872" width="783px" zoomAndPan="magnify"><defs/><g><!--cluster network/ (infrastructure)--><g class="cluster" data-qualified-name="network. .infrastructure." data-source-line="3" id="ent0002"><path d="M8.5,6 L191.9033,6 A3.75,3.75 0 0 1 194.4033,8.5 L201.4033,28.4883 L384.5,28.4883 A2.5,2.5 0 0 1 387,30.9883 L387,863.12 A2.5,2.5 0 0 1 384.5,865.62 L8.5,865.62 A2.5,2.5 0 0 1 6,863.12 L6,8.5 A2.5,2.5 0 0 1 8.5,6" fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="6" x2="201.4033" y1="28.4883" y2="28.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="182.4033" x="10" y="21.5352">network/ (infrastructure)</text></g><!--cluster app/commands/<name>/ (per command)--><g class="cluster" data-qualified-name="app.commands..name.. .per command." data-source-line="22" id="ent0018"><path d="M413.5,10.31 L718.3643,10.31 A3.75,3.75 0 0 1 720.8643,12.81 L727.8643,32.7983 L773.5,32.7983 A2.5,2.5 0 0 1 776,35.2983 L776,611.12 A2.5,2.5 0 0 1 773.5,613.62 L413.5,613.62 A2.5,2.5 0 0 1 411,611.12 L411,12.81 A2.5,2.5 0 0 1 413.5,10.31" fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="411" x2="727.8643" y1="32.7983" y2="32.7983"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="303.8643" x="415" y="25.8452">app/commands/&lt;name&gt;/ (per command)</text></g><!--class PrimitiveRequest--><g class="entity" data-qualified-name="network. .infrastructure..PrimitiveRequest" data-source-line="4" id="ent0003"><rect fill="#F1F1F1" height="56.6211" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="145.2852" x="65.36" y="41"/><ellipse cx="80.36" cy="61.3105" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M82.8331,67.4536 Q82.2521,67.7524 81.6129,67.9019 Q80.9738,68.0513 80.2682,68.0513 Q77.7614,68.0513 76.4415,66.3994 Q75.1217,64.7476 75.1217,61.6265 Q75.1217,58.4971 76.4415,56.8452 Q77.7614,55.1934 80.2682,55.1934 Q80.9738,55.1934 81.6212,55.3428 Q82.2687,55.4922 82.8331,55.791 L82.8331,58.5137 Q82.2023,57.9326 81.6088,57.6628 Q81.0153,57.3931 80.3844,57.3931 Q79.0397,57.3931 78.3549,58.4597 Q77.6701,59.5264 77.6701,61.6265 Q77.6701,63.7183 78.3549,64.7849 Q79.0397,65.8516 80.3844,65.8516 Q81.0153,65.8516 81.6088,65.5818 Q82.2023,65.312 82.8331,64.731 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="50.1504" x="125.9274" y="57.6016">&#171;record&#187;</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113.2852" x="94.36" y="73.668">PrimitiveRequest</text><line style="stroke:#181818;stroke-width:0.5;" x1="66.36" x2="209.6452" y1="81.6211" y2="81.6211"/><line style="stroke:#181818;stroke-width:0.5;" x1="66.36" x2="209.6452" y1="89.6211" y2="89.6211"/></g><!--class CommandParser--><g class="entity" data-qualified-name="network. .infrastructure..CommandParser" data-source-line="5" id="ent0004"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="255.6035" x="23.2" y="299.62"/><ellipse cx="38.2" cy="315.62" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M34.6277,311.8851 L34.6277,309.7269 L42.0071,309.7269 L42.0071,311.8851 L39.5418,311.8851 L39.5418,319.9618 L42.0071,319.9618 L42.0071,322.12 L34.6277,322.12 L34.6277,319.9618 L37.0931,319.9618 L37.0931,311.8851 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="111.5215" x="52.2" y="320.911">CommandParser</text><rect fill="#FFFFFF" height="16.1328" style="stroke:#181818;stroke-width:1;stroke-dasharray:2,2;" width="110.082" x="171.7215" y="296.62"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="108.082" x="172.7215" y="309.2216">T extends Request</text><line style="stroke:#181818;stroke-width:0.5;" x1="24.2" x2="277.8035" y1="331.62" y2="331.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="24.2" x2="277.8035" y1="339.62" y2="339.62"/></g><!--class CommandHandler--><g class="entity" data-qualified-name="network. .infrastructure..CommandHandler" data-source-line="6" id="ent0005"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="266.835" x="62.58" y="676.62"/><ellipse cx="77.58" cy="692.62" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M74.0077,688.8851 L74.0077,686.7269 L81.3871,686.7269 L81.3871,688.8851 L78.9218,688.8851 L78.9218,696.9618 L81.3871,696.9618 L81.3871,699.12 L74.0077,699.12 L74.0077,696.9618 L76.4731,696.9618 L76.4731,688.8851 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="122.7529" x="91.58" y="697.911">CommandHandler</text><rect fill="#FFFFFF" height="16.1328" style="stroke:#181818;stroke-width:1;stroke-dasharray:2,2;" width="110.082" x="222.3329" y="673.62"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="108.082" x="223.3329" y="686.2216">T extends Request</text><line style="stroke:#181818;stroke-width:0.5;" x1="63.58" x2="328.415" y1="708.62" y2="708.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="63.58" x2="328.415" y1="716.62" y2="716.62"/></g><!--class CommandParserDispatcher--><g class="entity" data-qualified-name="network. .infrastructure..CommandParserDispatcher" data-source-line="7" id="ent0006"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="216.3584" x="154.82" y="174.62"/><ellipse cx="169.82" cy="190.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M172.2931,196.7631 Q171.7121,197.0619 171.0729,197.2113 Q170.4338,197.3607 169.7282,197.3607 Q167.2214,197.3607 165.9015,195.7089 Q164.5817,194.057 164.5817,190.9359 Q164.5817,187.8065 165.9015,186.1547 Q167.2214,184.5028 169.7282,184.5028 Q170.4338,184.5028 171.0812,184.6522 Q171.7287,184.8016 172.2931,185.1005 L172.2931,187.8231 Q171.6623,187.2421 171.0688,186.9723 Q170.4753,186.7025 169.8444,186.7025 Q168.4997,186.7025 167.8149,187.7692 Q167.1301,188.8358 167.1301,190.9359 Q167.1301,193.0277 167.8149,194.0944 Q168.4997,195.161 169.8444,195.161 Q170.4753,195.161 171.0688,194.8912 Q171.6623,194.6215 172.2931,194.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="184.3584" x="183.82" y="195.911">CommandParserDispatcher</text><line style="stroke:#181818;stroke-width:0.5;" x1="155.82" x2="370.1784" y1="206.62" y2="206.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="155.82" x2="370.1784" y1="214.62" y2="214.62"/></g><!--class CommandRouter--><g class="entity" data-qualified-name="network. .infrastructure..CommandRouter" data-source-line="8" id="ent0007"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146.5635" x="223.72" y="549.62"/><ellipse cx="238.72" cy="565.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M241.1931,571.7631 Q240.6121,572.0619 239.9729,572.2113 Q239.3338,572.3607 238.6282,572.3607 Q236.1214,572.3607 234.8015,570.7089 Q233.4817,569.057 233.4817,565.9359 Q233.4817,562.8065 234.8015,561.1547 Q236.1214,559.5028 238.6282,559.5028 Q239.3338,559.5028 239.9812,559.6522 Q240.6287,559.8016 241.1931,560.1005 L241.1931,562.8231 Q240.5623,562.2421 239.9688,561.9723 Q239.3753,561.7025 238.7444,561.7025 Q237.3997,561.7025 236.7149,562.7692 Q236.0301,563.8358 236.0301,565.9359 Q236.0301,568.0277 236.7149,569.0944 Q237.3997,570.161 238.7444,570.161 Q239.3753,570.161 239.9688,569.8912 Q240.5623,569.6215 241.1931,569.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114.5635" x="252.72" y="570.911">CommandRouter</text><line style="stroke:#181818;stroke-width:0.5;" x1="224.72" x2="369.2835" y1="581.62" y2="581.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="224.72" x2="369.2835" y1="589.62" y2="589.62"/></g><!--class Request--><g class="entity" data-qualified-name="network. .infrastructure..Request" data-source-line="9" id="ent0008"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="86.3252" x="107.84" y="424.62"/><ellipse cx="122.84" cy="440.62" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M122.7033,435.9681 L121.5495,441.0399 L123.8654,441.0399 Z M121.2091,433.7269 L124.2057,433.7269 L127.5509,446.12 L125.1022,446.12 L124.3385,443.057 L121.0597,443.057 L120.3127,446.12 L117.8639,446.12 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="54.3252" x="136.84" y="445.911">Request</text><line style="stroke:#181818;stroke-width:0.5;" x1="108.84" x2="193.1652" y1="456.62" y2="456.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="108.84" x2="193.1652" y1="464.62" y2="464.62"/></g><!--class Response--><g class="entity" data-qualified-name="network. .infrastructure..Response" data-source-line="10" id="ent0009"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="96.8252" x="147.59" y="801.62"/><ellipse cx="162.59" cy="817.62" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M162.4533,812.9681 L161.2995,818.0399 L163.6154,818.0399 Z M160.9591,810.7269 L163.9557,810.7269 L167.3009,823.12 L164.8522,823.12 L164.0885,820.057 L160.8097,820.057 L160.0627,823.12 L157.6139,823.12 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="64.8252" x="176.59" y="822.911">Response</text><line style="stroke:#181818;stroke-width:0.5;" x1="148.59" x2="243.4152" y1="833.62" y2="833.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="148.59" x2="243.4152" y1="841.62" y2="841.62"/></g><!--class ExampleParser--><g class="entity" data-qualified-name="app.commands..name.. .per command..ExampleParser" data-source-line="23" id="ent0019"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="131.4971" x="433.25" y="174.62"/><ellipse cx="448.25" cy="190.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M450.7231,196.7631 Q450.1421,197.0619 449.5029,197.2113 Q448.8638,197.3607 448.1582,197.3607 Q445.6514,197.3607 444.3315,195.7089 Q443.0117,194.057 443.0117,190.9359 Q443.0117,187.8065 444.3315,186.1547 Q445.6514,184.5028 448.1582,184.5028 Q448.8638,184.5028 449.5112,184.6522 Q450.1587,184.8016 450.7231,185.1005 L450.7231,187.8231 Q450.0923,187.2421 449.4988,186.9723 Q448.9053,186.7025 448.2744,186.7025 Q446.9297,186.7025 446.2449,187.7692 Q445.5601,188.8358 445.5601,190.9359 Q445.5601,193.0277 446.2449,194.0944 Q446.9297,195.161 448.2744,195.161 Q448.9053,195.161 449.4988,194.8912 Q450.0923,194.6215 450.7231,194.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="99.4971" x="462.25" y="195.911">ExampleParser</text><line style="stroke:#181818;stroke-width:0.5;" x1="434.25" x2="563.7471" y1="206.62" y2="206.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="434.25" x2="563.7471" y1="214.62" y2="214.62"/></g><!--class CommandParser--><g class="entity" data-qualified-name="app.commands..name.. .per command..CommandParser" data-source-line="23" id="ent0020"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="143.5215" x="427.24" y="45.31"/><ellipse cx="442.24" cy="61.31" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M438.6677,57.5751 L438.6677,55.4169 L446.0471,55.4169 L446.0471,57.5751 L443.5818,57.5751 L443.5818,65.6518 L446.0471,65.6518 L446.0471,67.81 L438.6677,67.81 L438.6677,65.6518 L441.1331,65.6518 L441.1331,57.5751 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="111.5215" x="456.24" y="66.601">CommandParser</text><line style="stroke:#181818;stroke-width:0.5;" x1="428.24" x2="569.7615" y1="77.31" y2="77.31"/><line style="stroke:#181818;stroke-width:0.5;" x1="428.24" x2="569.7615" y1="85.31" y2="85.31"/></g><!--class ExampleRequest--><g class="entity" data-qualified-name="app.commands..name.. .per command..ExampleRequest" data-source-line="24" id="ent0022"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="143.959" x="427.02" y="299.62"/><ellipse cx="442.02" cy="315.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M444.4931,321.7631 Q443.9121,322.0619 443.2729,322.2113 Q442.6338,322.3607 441.9282,322.3607 Q439.4214,322.3607 438.1015,320.7089 Q436.7817,319.057 436.7817,315.9359 Q436.7817,312.8065 438.1015,311.1547 Q439.4214,309.5028 441.9282,309.5028 Q442.6338,309.5028 443.2812,309.6522 Q443.9287,309.8016 444.4931,310.1005 L444.4931,312.8231 Q443.8623,312.2421 443.2688,311.9723 Q442.6753,311.7025 442.0444,311.7025 Q440.6997,311.7025 440.0149,312.7692 Q439.3301,313.8358 439.3301,315.9359 Q439.3301,318.0277 440.0149,319.0944 Q440.6997,320.161 442.0444,320.161 Q442.6753,320.161 443.2688,319.8912 Q443.8623,319.6215 444.4931,319.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111.959" x="456.02" y="320.911">ExampleRequest</text><line style="stroke:#181818;stroke-width:0.5;" x1="428.02" x2="569.979" y1="331.62" y2="331.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="428.02" x2="569.979" y1="339.62" y2="339.62"/></g><!--class Request--><g class="entity" data-qualified-name="app.commands..name.. .per command..Request" data-source-line="24" id="ent0023"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="86.3252" x="599.84" y="174.62"/><ellipse cx="614.84" cy="190.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M617.3131,196.7631 Q616.7321,197.0619 616.0929,197.2113 Q615.4538,197.3607 614.7482,197.3607 Q612.2414,197.3607 610.9215,195.7089 Q609.6017,194.057 609.6017,190.9359 Q609.6017,187.8065 610.9215,186.1547 Q612.2414,184.5028 614.7482,184.5028 Q615.4538,184.5028 616.1012,184.6522 Q616.7487,184.8016 617.3131,185.1005 L617.3131,187.8231 Q616.6823,187.2421 616.0888,186.9723 Q615.4953,186.7025 614.8644,186.7025 Q613.5197,186.7025 612.8349,187.7692 Q612.1501,188.8358 612.1501,190.9359 Q612.1501,193.0277 612.8349,194.0944 Q613.5197,195.161 614.8644,195.161 Q615.4953,195.161 616.0888,194.8912 Q616.6823,194.6215 617.3131,194.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54.3252" x="628.84" y="195.911">Request</text><line style="stroke:#181818;stroke-width:0.5;" x1="600.84" x2="685.1652" y1="206.62" y2="206.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="600.84" x2="685.1652" y1="214.62" y2="214.62"/></g><!--class ExampleHandler--><g class="entity" data-qualified-name="app.commands..name.. .per command..ExampleHandler" data-source-line="25" id="ent0025"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="142.7285" x="454.64" y="424.62"/><ellipse cx="469.64" cy="440.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M472.1131,446.7631 Q471.5321,447.0619 470.8929,447.2113 Q470.2538,447.3607 469.5482,447.3607 Q467.0414,447.3607 465.7215,445.7089 Q464.4017,444.057 464.4017,440.9359 Q464.4017,437.8065 465.7215,436.1547 Q467.0414,434.5028 469.5482,434.5028 Q470.2538,434.5028 470.9012,434.6522 Q471.5487,434.8016 472.1131,435.1005 L472.1131,437.8231 Q471.4823,437.2421 470.8888,436.9723 Q470.2953,436.7025 469.6644,436.7025 Q468.3197,436.7025 467.6349,437.7692 Q466.9501,438.8358 466.9501,440.9359 Q466.9501,443.0277 467.6349,444.0944 Q468.3197,445.161 469.6644,445.161 Q470.2953,445.161 470.8888,444.8912 Q471.4823,444.6215 472.1131,444.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="110.7285" x="483.64" y="445.911">ExampleHandler</text><line style="stroke:#181818;stroke-width:0.5;" x1="455.64" x2="596.3685" y1="456.62" y2="456.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="455.64" x2="596.3685" y1="464.62" y2="464.62"/></g><!--class CommandHandler--><g class="entity" data-qualified-name="app.commands..name.. .per command..CommandHandler" data-source-line="25" id="ent0026"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="154.7529" x="605.62" y="299.62"/><ellipse cx="620.62" cy="315.62" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M617.0477,311.8851 L617.0477,309.7269 L624.4271,309.7269 L624.4271,311.8851 L621.9618,311.8851 L621.9618,319.9618 L624.4271,319.9618 L624.4271,322.12 L617.0477,322.12 L617.0477,319.9618 L619.5131,319.9618 L619.5131,311.8851 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="122.7529" x="634.62" y="320.911">CommandHandler</text><line style="stroke:#181818;stroke-width:0.5;" x1="606.62" x2="759.3729" y1="331.62" y2="331.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="606.62" x2="759.3729" y1="339.62" y2="339.62"/></g><!--class ExampleResponse--><g class="entity" data-qualified-name="app.commands..name.. .per command..ExampleResponse" data-source-line="26" id="ent0028"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="154.459" x="479.77" y="549.62"/><ellipse cx="494.77" cy="565.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M497.2431,571.7631 Q496.6621,572.0619 496.0229,572.2113 Q495.3838,572.3607 494.6782,572.3607 Q492.1714,572.3607 490.8515,570.7089 Q489.5317,569.057 489.5317,565.9359 Q489.5317,562.8065 490.8515,561.1547 Q492.1714,559.5028 494.6782,559.5028 Q495.3838,559.5028 496.0312,559.6522 Q496.6787,559.8016 497.2431,560.1005 L497.2431,562.8231 Q496.6123,562.2421 496.0188,561.9723 Q495.4253,561.7025 494.7944,561.7025 Q493.4497,561.7025 492.7649,562.7692 Q492.0801,563.8358 492.0801,565.9359 Q492.0801,568.0277 492.7649,569.0944 Q493.4497,570.161 494.7944,570.161 Q495.4253,570.161 496.0188,569.8912 Q496.6123,569.6215 497.2431,569.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="122.459" x="508.77" y="570.911">ExampleResponse</text><line style="stroke:#181818;stroke-width:0.5;" x1="480.77" x2="633.229" y1="581.62" y2="581.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="480.77" x2="633.229" y1="589.62" y2="589.62"/></g><!--class Response--><g class="entity" data-qualified-name="app.commands..name.. .per command..Response" data-source-line="26" id="ent0029"><rect fill="#F1F1F1" height="48" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="96.8252" x="632.59" y="424.62"/><ellipse cx="647.59" cy="440.62" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M650.0631,446.7631 Q649.4821,447.0619 648.8429,447.2113 Q648.2038,447.3607 647.4982,447.3607 Q644.9914,447.3607 643.6715,445.7089 Q642.3517,444.057 642.3517,440.9359 Q642.3517,437.8065 643.6715,436.1547 Q644.9914,434.5028 647.4982,434.5028 Q648.2038,434.5028 648.8512,434.6522 Q649.4987,434.8016 650.0631,435.1005 L650.0631,437.8231 Q649.4323,437.2421 648.8388,436.9723 Q648.2453,436.7025 647.6144,436.7025 Q646.2697,436.7025 645.5849,437.7692 Q644.9001,438.8358 644.9001,440.9359 Q644.9001,443.0277 645.5849,444.0944 Q646.2697,445.161 647.6144,445.161 Q648.2453,445.161 648.8388,444.8912 Q649.4323,444.6215 650.0631,444.0404 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64.8252" x="661.59" y="445.911">Response</text><line style="stroke:#181818;stroke-width:0.5;" x1="633.59" x2="728.4152" y1="456.62" y2="456.62"/><line style="stroke:#181818;stroke-width:0.5;" x1="633.59" x2="728.4152" y1="464.62" y2="464.62"/></g><!--link PrimitiveRequest to CommandParserDispatcher--><g class="link" data-entity-1="ent0003" data-entity-2="ent0006" data-link-type="dependency" data-source-line="12" id="lnk10"><path codeLine="12" d="M165.12,97.93 C187.53,120.75 214.7663,148.4988 235.9163,170.0388" fill="none" id="PrimitiveRequest-to-CommandParserDispatcher" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="240.12,174.32,236.6686,165.0957,236.6169,170.7523,230.9603,170.7006,240.12,174.32" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="40.1045" x="208.98" y="141.1884">routes</text></g><!--link PrimitiveRequest to CommandParser--><g class="link" data-entity-1="ent0003" data-entity-2="ent0004" data-link-type="dependency" data-source-line="13" id="lnk11"><path codeLine="13" d="M113.27,97.93 C89.37,128.11 58.84,178.09 74,222.62 C84.24,252.7 103.3823,276.4929 121.7023,295.2029" fill="none" id="PrimitiveRequest-to-CommandParser" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#181818" points="125.9,299.49,122.4615,290.2609,122.4019,295.9174,116.7454,295.8579,125.9,299.49" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="61.8198" x="75" y="203.6884">parsed by</text></g><!--link CommandParserDispatcher to CommandParser--><g class="link" data-entity-1="ent0006" data-entity-2="ent0004" data-link-type="dependency" data-source-line="14" id="lnk12"><path codeLine="14" d="M241.67,223.04 C221.74,244.93 196.1891,272.9831 176.2891,294.8431" fill="none" id="CommandParserDispatcher-to-CommandParser" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="172.25,299.28,181.2665,295.3174,175.6159,295.5826,175.3507,289.932,172.25,299.28" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="57.0654" x="214.71" y="266.1884">routes to</text></g><!--link CommandParser to Request--><g class="link" data-entity-1="ent0004" data-entity-2="ent0008" data-link-type="dependency" data-source-line="15" id="lnk13"><path codeLine="15" d="M151,348.04 C151,369.93 151,396.42 151,418.28" fill="none" id="CommandParser-to-Request" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="151,424.28,155,415.28,151,419.28,147,415.28,151,424.28" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="58.1382" x="152" y="391.1884">parses to</text></g><!--link Request to CommandRouter--><g class="link" data-entity-1="ent0008" data-entity-2="ent0007" data-link-type="dependency" data-source-line="16" id="lnk14"><path codeLine="16" d="M178.81,473.04 C204.78,494.93 238.7612,523.5544 264.7112,545.4144" fill="none" id="Request-to-CommandRouter" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="269.3,549.28,264.9938,540.4224,265.476,546.0587,259.8397,546.5409,269.3,549.28" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="40.1045" x="233.74" y="516.1884">routes</text></g><!--link CommandRouter to CommandHandler--><g class="link" data-entity-1="ent0007" data-entity-2="ent0005" data-link-type="dependency" data-source-line="17" id="lnk15"><path codeLine="17" d="M278.24,597.84 C260.1,620.29 236.5412,649.4533 218.4312,671.8633" fill="none" id="CommandRouter-to-CommandHandler" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="214.66,676.53,223.428,672.0442,217.8027,672.6411,217.2057,667.0158,214.66,676.53" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="57.0654" x="253.55" y="643.1884">routes to</text></g><!--link Request to CommandHandler--><g class="link" data-entity-1="ent0008" data-entity-2="ent0005" data-link-type="dependency" data-source-line="18" id="lnk16"><path codeLine="18" d="M140.98,472.95 C127.97,506.79 109.03,570.98 128,621.62 C136.01,642.99 148.4405,658.2275 163.3405,672.3175" fill="none" id="Request-to-CommandHandler" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#181818" points="167.7,676.44,163.9091,667.3499,164.0671,673.0046,158.4125,673.1626,167.7,676.44" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="76.5591" x="129" y="578.6884">executed by</text></g><!--link CommandHandler to Response--><g class="link" data-entity-1="ent0005" data-entity-2="ent0009" data-link-type="dependency" data-source-line="19" id="lnk17"><path codeLine="19" d="M196,725.04 C196,746.93 196,773.42 196,795.28" fill="none" id="CommandHandler-to-Response" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="196,801.28,200,792.28,196,796.28,192,792.28,196,801.28" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="45.1318" x="197" y="768.1884">creates</text></g><!--reverse link CommandParser to ExampleParser--><g class="link" data-entity-1="ent0020" data-entity-2="ent0019" data-link-type="extension" data-source-line="23" id="lnk21"><path d="M499,111.66 C499,134.63 499,151.5 499,174.42" fill="none" id="CommandParser-backto-ExampleParser" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="499,93.66,493,111.66,505,111.66,499,93.66" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link Request to ExampleRequest--><g class="link" data-entity-1="ent0023" data-entity-2="ent0022" data-link-type="extension" data-source-line="24" id="lnk24"><path d="M605.7281,235.1932 C591.0181,249.0732 584.79,254.54 567,269.62 C555.24,279.59 541.94,290.12 530.23,299.14" fill="none" id="Request-backto-ExampleRequest" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="618.82,222.84,601.6104,230.8292,609.8458,239.5572,618.82,222.84" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link CommandHandler to ExampleHandler--><g class="link" data-entity-1="ent0026" data-entity-2="ent0025" data-link-type="extension" data-source-line="25" id="lnk27"><path d="M642.9047,359.6323 C626.8147,373.5223 619.34,379.57 600,394.62 C587.15,404.61 572.66,415.14 559.93,424.16" fill="none" id="CommandHandler-backto-ExampleHandler" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="none" points="656.53,347.87,638.9839,355.0905,646.8255,364.1741,656.53,347.87" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link Response to ExampleResponse--><g class="link" data-entity-1="ent0029" data-entity-2="ent0028" data-link-type="extension" data-source-line="26" id="lnk30"><path d="M645.0108,485.7566 C631.4208,499.3866 626.63,504.14 611,519.62 C601.2,529.33 590.36,539.99 580.97,549.19" fill="none" id="Response-backto-ExampleResponse" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="657.72,473.01,640.7619,481.5202,649.2597,489.993,657.72,473.01" style="stroke:#181818;stroke-width:1;"/></g><!--link ExampleParser to ExampleRequest--><g class="link" data-entity-1="ent0019" data-entity-2="ent0022" data-link-type="dependency" data-source-line="28" id="lnk31"><path codeLine="28" d="M499,223.04 C499,244.93 499,271.42 499,293.28" fill="none" id="ExampleParser-to-ExampleRequest" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="499,299.28,503,290.28,499,294.28,495,290.28,499,299.28" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="58.1382" x="500" y="266.1884">parses to</text></g><!--link ExampleRequest to ExampleHandler--><g class="link" data-entity-1="ent0022" data-entity-2="ent0025" data-link-type="dependency" data-source-line="29" id="lnk32"><path codeLine="29" d="M504.14,348.04 C508.95,369.93 514.7932,396.5596 519.5932,418.4196" fill="none" id="ExampleRequest-to-ExampleHandler" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="520.88,424.28,522.8567,414.6315,519.8077,419.3963,515.0429,416.3473,520.88,424.28" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="76.5591" x="515.12" y="391.1884">executed by</text></g><!--link ExampleHandler to ExampleResponse--><g class="link" data-entity-1="ent0025" data-entity-2="ent0028" data-link-type="dependency" data-source-line="30" id="lnk33"><path codeLine="30" d="M531.9,473.04 C537.42,494.93 544.1435,521.602 549.6535,543.462" fill="none" id="ExampleHandler-to-ExampleResponse" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="551.12,549.28,552.799,539.5753,549.8979,544.4316,545.0416,541.5306,551.12,549.28" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="58.2651" x="544.36" y="516.1884">produces</text></g><?plantuml-src TL91ReCm4BppYbLExI79lK9SqaezHb4_i36Rr0hOpjgqgQh-lGPC0ZOW8LcUcTsPzTgBL0OPQpYYk9nPDwhSwKepE4PbFKJAPPdn89u9LehSj-RB5fwaEZ5Qnurm3TFp2dupy9-eq5hOiwobarzqe6j3ra6UCmdDPL5qBAaSyGa5mKxNDQfoZso9ym-WcoDLMWZ21Vgx_wjbVczYKlfL-Z1EV1AdZ8DkNBZ7eu-4mWL2g3eFMQELfQm3ay3hTR5a05w0suvsNhdPH4hFD-sXXEDF9rcgc_IyTmAdKsN77xg67dVcJ8v-J5FtKsX43Y-KE9X9-Q3IZOGdnq47Gk-t7xjd2oPiVVoDzXEDsOfUPRUvmfeAlwl6YyDjjAXlDwnDHM4WiZtNVkEZvKa5Gune_LBYu3qj7P2vsY7Ye_XurQQMsvb4dkAdZE2HOddo4M7IvVu0XdNPYFO5_W40?></g></svg>