aboutsummaryrefslogtreecommitdiff
path: root/docs/u-fund-model.drawio.xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/u-fund-model.drawio.xml')
-rw-r--r--docs/u-fund-model.drawio.xml103
1 files changed, 103 insertions, 0 deletions
diff --git a/docs/u-fund-model.drawio.xml b/docs/u-fund-model.drawio.xml
new file mode 100644
index 0000000..69138d4
--- /dev/null
+++ b/docs/u-fund-model.drawio.xml
@@ -0,0 +1,103 @@
+<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.2.2 Chrome/134.0.6998.178 Electron/35.1.2 Safari/537.36" version="26.2.2">
+ <diagram id="WOSjVCChJG0uuKkKcy1j" name="Page-1">
+ <mxGraphModel dx="3484" dy="1652" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" background="none" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="node17" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;CupboardDAO&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ deleteNeed(int): boolean&lt;br/&gt;+ getNeed(int): Need&lt;br/&gt;+ addNeed(Need): Need&lt;br/&gt;+ updateNeed(Need): Need&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; needs: Need[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-750" y="750" width="192" height="142" as="geometry" />
+ </mxCell>
+ <mxCell id="node2" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;CupboardFileDAO&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ CupboardFileDAO(String, ObjectMapper): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- needs: Map&amp;lt;Integer, Need&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ getNeed(int): Need&lt;br/&gt;+ addNeed(Need): Need&lt;br/&gt;- save(): void&lt;br/&gt;+ deleteNeed(int): boolean&lt;br/&gt;- load(): void&lt;br/&gt;- nextId(): int&lt;br/&gt;+ updateNeed(Need): Need&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; needs: Need[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-472" y="687.5" width="286" height="267" as="geometry" />
+ </mxCell>
+ <mxCell id="node19" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;GoalType&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ GoalType(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ valueOf(String): GoalType&lt;br/&gt;+ values(): GoalType[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-401.5" y="190" width="193" height="136" as="geometry" />
+ </mxCell>
+ <mxCell id="node9" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Need&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ Need(String, String, String, double, GoalType, boolean, String): &lt;br/&gt;+ Need(Need): &lt;br/&gt;+ Need(String, String, String, int, double, GoalType, boolean, String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- name: String&lt;br/&gt;- type: GoalType&lt;br/&gt;- current: double&lt;br/&gt;- id: int&lt;br/&gt;- maxGoal: double&lt;br/&gt;- filterAttributes: String[]&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ toString(): String&lt;br/&gt;+ incrementCurrent(double): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; name: String&lt;br/&gt; id: int&lt;br/&gt; ID: int&lt;br/&gt; type: GoalType&lt;br/&gt; current: double&lt;br/&gt; maxGoal: double&lt;br/&gt; filterAttributes: String[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-880" y="180" width="392" height="309" as="geometry" />
+ </mxCell>
+ <mxCell id="node10" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;User&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ User(String, int, List&amp;lt;Integer&amp;gt;, UserType): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- type: UserType&lt;br/&gt;- username: String&lt;br/&gt;- basket: List&amp;lt;Integer&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ addToBasket(Need): void&lt;br/&gt;+ withoutPasswordHash(): User&lt;br/&gt;+ verifyPassword(String): boolean&lt;br/&gt;+ create(String, String): User&lt;br/&gt;+ removeBasketNeed(Integer): void&lt;br/&gt;+ toString(): String&lt;br/&gt;+ copyPassword(User): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; type: UserType&lt;br/&gt; basket: Integer[]&lt;br/&gt; username: String&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-410.5" y="1310" width="293" height="320" as="geometry" />
+ </mxCell>
+ <mxCell id="node14" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;UserAuth&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ UserAuth(String, String, LocalDateTime): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;~ key: String&lt;br/&gt;~ username: String&lt;br/&gt;~ expiration: LocalDateTime&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ generate(String): UserAuth&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; expiration: LocalDateTime&lt;br/&gt; key: String&lt;br/&gt; username: String&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-237" y="1011" width="282" height="179" as="geometry" />
+ </mxCell>
+ <mxCell id="node1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;UserAuthDAO&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ addUserAuth(UserAuth): void&lt;br/&gt;+ removeUserAuth(String): void&lt;br/&gt;+ getUserAuth(String): UserAuth&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-930" y="1040.5" width="218" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="node3" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;UserAuthFIleDAO&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ UserAuthFIleDAO(ObjectMapper, String): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- save(): void&lt;br/&gt;- load(): void&lt;br/&gt;+ addUserAuth(UserAuth): void&lt;br/&gt;+ getUserAuth(String): UserAuth&lt;br/&gt;+ removeUserAuth(String): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-650" y="1018.5" width="283" height="164" as="geometry" />
+ </mxCell>
+ <mxCell id="node4" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;UserDAO&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ updateUser(User): User&lt;br/&gt;+ deleteUser(String): boolean&lt;br/&gt;+ getUser(String): User&lt;br/&gt;+ addUser(User): User&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; users: User[]&lt;br/&gt; userCount: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-1070" y="1387" width="203" height="150" as="geometry" />
+ </mxCell>
+ <mxCell id="node0" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;UserFileDAO&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ UserFileDAO(String, ObjectMapper): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- users: Map&amp;lt;String, User&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ addUser(User): User&lt;br/&gt;+ deleteUser(String): boolean&lt;br/&gt;+ updateUser(User): User&lt;br/&gt;- save(): void&lt;br/&gt;+ getUser(String): User&lt;br/&gt;- load(): void&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; users: User[]&lt;br/&gt; userCount: int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="-770" y="1339" width="257" height="246" as="geometry" />
+ </mxCell>
+ <mxCell id="node18" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;UserType&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ UserType(): &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ valueOf(String): UserType&lt;br/&gt;+ values(): UserType[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
+ <mxGeometry x="1.5" y="1400.25" width="194" height="139.5" as="geometry" />
+ </mxCell>
+ <mxCell id="edge0" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;" parent="1" source="node2" target="node17" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="edge5" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="node2" target="node9" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="-329" y="603" />
+ <mxPoint x="-586" y="603" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="edge19" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThin;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=0.552;exitY=0.000;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;jumpStyle=none;startFill=1;" parent="1" source="node2" target="node9" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="-314" y="412" />
+ <mxPoint x="-350" y="412" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="edge16" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1.000;exitY=0.319;exitDx=0;exitDy=0;entryX=0.000;entryY=0.653;entryDx=0;entryDy=0;" parent="1" source="node9" target="node19" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="edge24" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThinstartSize=12;endArrow=openThin;endSize=12;strokeColor=#595959;" parent="1" source="node10" target="node18" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points" />
+ <mxPoint x="-78.5" y="1380" as="sourcePoint" />
+ <mxPoint x="-28.5" y="1440" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="edge21" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThin;endArrow=openThin;endSize=12;strokeColor=#595959;exitX=1;exitY=0.5;exitDx=0;exitDy=0;startFill=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="node3" target="node14" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="-350" y="1100" />
+ </Array>
+ <mxPoint x="-290" y="1080" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="label126" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;strokeColor=default;" parent="edge21" vertex="1" connectable="0">
+ <mxGeometry x="-456" y="1091" as="geometry" />
+ </mxCell>
+ <mxCell id="edge2" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;jumpStyle=none;" parent="1" source="node3" target="node1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="edge6" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=diamondThin;endArrow=openThin;endSize=12;strokeColor=#595959;entryX=0.005;entryY=0.466;entryDx=0;entryDy=0;entryPerimeter=0;startFill=1;exitX=1;exitY=0.488;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="node0" target="node10" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points" />
+ <mxPoint x="-490" y="1459" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="edge1" value="" style="html=1;rounded=1;edgeStyle=orthogonalEdgeStyle;dashed=1;startArrow=none;endArrow=block;endSize=12;exitX=0.000;exitY=0.500;exitDx=0;exitDy=0;entryX=1.000;entryY=0.500;entryDx=0;entryDy=0;" parent="1" source="node0" target="node4" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <Array as="points" />
+ </mxGeometry>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>