Compare commits
No commits in common. "main" and "HinzufügenVonMedien" have entirely different histories.
main
...
Hinzufügen
After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 65 KiB |
|
@ -1,12 +1,9 @@
|
|||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" version="24.8.6">
|
||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" version="24.8.4">
|
||||
<diagram name="Seite-1" id="xkmZ0K6vz5A5_BixXH1Q">
|
||||
<mxGraphModel dx="1873" dy="1415" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<mxGraphModel dx="2714" dy="1416" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-16" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
||||
<mxGeometry x="750" y="260" width="1580" height="1340" as="geometry" />
|
||||
</mxCell>
|
||||
<object label="" TUI="" id="ydUtLetK26WXyeJ3qCt--1">
|
||||
<mxCell style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;points=[[0,0,0,-5,-13],[0,0,0,0,14],[0,0,0,0,78],[0,0,0,0,142],[0,0,0,0,206],[0,0,0,0,270],[0,0,0,20,0],[0,0,0,40,0],[0,0,0,160,14],[0,0,0,280,14],[0,0,0,280,78],[0,0,0,280,142],[0,0,0,280,206],[0,0,0,280,270],[0,0.5,0,0,0],[0.04,0.02,0,0,0],[0.06,0.04,0,0,0],[0.09,0.03,0,0,0],[0.13,0.04,0,0,0],[0.25,1,0,0,0],[0.5,1,0,0,0],[0.75,1,0,0,0]];" parent="1" vertex="1">
|
||||
<mxGeometry x="90" y="280" width="300" height="220" as="geometry" />
|
||||
|
@ -21,6 +18,9 @@
|
|||
<mxCell id="ydUtLetK26WXyeJ3qCt--5" value="Bib Ui" style="html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="160" y="390" width="110" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--6" value="<div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="756" y="270" width="1110" height="770" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--7" value="package" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="140" y="600" width="240" height="170" as="geometry" />
|
||||
</mxCell>
|
||||
|
@ -55,109 +55,144 @@
|
|||
<mxGeometry x="130" y="600" width="70" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--28" value="<font style="font-size: 11px;">domain</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="767" y="260" width="70" height="20" as="geometry" />
|
||||
<mxGeometry x="757" y="270" width="70" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--29" value="registrieren" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="300" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bG3rtPKbTOfA4ERHpklN-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--30" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="430" y="378" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--30" value="Medium ausleihen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="440" y="370" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--32" value="Medium&nbsp;leihfrist verlängern" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="430" y="518" width="100" height="30" as="geometry" />
|
||||
<mxGeometry x="430" y="440" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--33" value="Medium zurückgeben" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="440" y="590" width="60" height="30" as="geometry" />
|
||||
<mxGeometry x="450" y="512" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--34" value="Gebühren bezahlen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="440" y="690" width="60" height="30" as="geometry" />
|
||||
<mxGeometry x="450" y="590" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--36" value="Medium druchsuchen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="460" y="690" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--38" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" parent="1" vertex="1">
|
||||
<mxGeometry x="580" y="690" width="60" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--41" value="<i>Medium</i>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1700" y="640" width="180" height="110" as="geometry" />
|
||||
<mxGeometry x="1100" y="720" width="180" height="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--42" value="- ID: String<div>- erscheinungsjahr: int</div><div>- title: String</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--41" vertex="1">
|
||||
<mxGeometry y="26" width="180" height="84" as="geometry" />
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--42" value="- KennungNummer: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--41" vertex="1">
|
||||
<mxGeometry y="26" width="180" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--43" value="- title: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--41" vertex="1">
|
||||
<mxGeometry y="52" width="180" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--44" value="- erscheinungsjahr: date<div><span style="background-color: initial; color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-wrap-mode: nowrap;">- %3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22-%20title%3A%20String%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221100%22%20y%3D%22658%22%20width%3D%22180%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E</span></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--41" vertex="1">
|
||||
<mxGeometry y="78" width="180" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--46" value="Buch" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="890" y="954" width="140" height="66" as="geometry">
|
||||
<mxRectangle x="890" y="954" width="70" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--50" value="Cd" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1070" y="954" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--54" value="Dvd" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1241" y="954" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--58" value="Brettspiel" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1410" y="954" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--62" value="Videospiel" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1570" y="954" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--79" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1560" y="864" as="sourcePoint" />
|
||||
<mxPoint x="1560" y="814" as="targetPoint" />
|
||||
<mxPoint x="960" y="954" as="sourcePoint" />
|
||||
<mxPoint x="960" y="904" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--80" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1560" y="814" as="sourcePoint" />
|
||||
<mxPoint x="2250" y="814" as="targetPoint" />
|
||||
<mxPoint x="960" y="904" as="sourcePoint" />
|
||||
<mxPoint x="1650" y="904" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--81" value="" style="endArrow=none;html=1;rounded=0;exitX=0.584;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1">
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--81" value="" style="endArrow=none;html=1;rounded=0;exitX=0.584;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--62" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="2251.7599999999998" y="864.156" as="sourcePoint" />
|
||||
<mxPoint x="2250" y="814" as="targetPoint" />
|
||||
<mxPoint x="1650" y="944" as="sourcePoint" />
|
||||
<mxPoint x="1650" y="904" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--82" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=0.401;entryY=1.012;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--42" edge="1">
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--82" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=0.399;entryY=0.998;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--44" edge="1">
|
||||
<mxGeometry width="160" relative="1" as="geometry">
|
||||
<mxPoint x="1770" y="814" as="sourcePoint" />
|
||||
<mxPoint x="1771.8199999999997" y="753.8760000000002" as="targetPoint" />
|
||||
<mxPoint x="1170" y="904" as="sourcePoint" />
|
||||
<mxPoint x="1330" y="904" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--84" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1720" y="864" as="sourcePoint" />
|
||||
<mxPoint x="1720" y="814" as="targetPoint" />
|
||||
<mxPoint x="1120" y="954" as="sourcePoint" />
|
||||
<mxPoint x="1120" y="904" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--86" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1909.45" y="864" as="sourcePoint" />
|
||||
<mxPoint x="1909.45" y="814" as="targetPoint" />
|
||||
<mxPoint x="1309.45" y="954" as="sourcePoint" />
|
||||
<mxPoint x="1309.45" y="904" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="1909.45" y="834" />
|
||||
<mxPoint x="1309.45" y="924" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--87" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="2070" y="864" as="sourcePoint" />
|
||||
<mxPoint x="2070" y="814" as="targetPoint" />
|
||||
<mxPoint x="1470" y="954" as="sourcePoint" />
|
||||
<mxPoint x="1470" y="904" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--88" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="2250" y="864" as="sourcePoint" />
|
||||
<mxPoint x="2250" y="814" as="targetPoint" />
|
||||
<mxPoint x="1650" y="954" as="sourcePoint" />
|
||||
<mxPoint x="1650" y="904" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--10" edge="1">
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="a17Tyx0-SzZjYovz-tY2-10">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="a17Tyx0-SzZjYovz-tY2-5">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="790" y="364" as="sourcePoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="880" y="572" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.985;entryY=0.664;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--11" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="790" y="364" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--117" value="<font style="font-size: 12px;">BibSystem</font>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="790" y="338" width="180" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--12" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="790" y="364" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--10" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--13" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="790" y="364" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.985;entryY=0.664;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--11" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--135" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--14" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="790" y="364" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--12" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--136" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--38" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="790" y="364" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--13" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--135" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--14" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--136" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--38" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--10" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
|
@ -208,281 +243,121 @@
|
|||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--158" value="Ausleihe" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="850" y="1090" width="310" height="118" as="geometry" />
|
||||
<mxGeometry x="1280" y="340" width="160" height="114" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--159" value="- ausleihBeginn: LocalDate<div>- ausleihEnde: LocalDate&nbsp;</div><div>- medium: Mediumverwalter</div><div>- benutzer: Benutzer</div><div>- verlängerungen: int</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--158" vertex="1">
|
||||
<mxGeometry y="26" width="310" height="84" as="geometry" />
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--159" value="- type: String<div>- availability: boolean</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--158" vertex="1">
|
||||
<mxGeometry y="26" width="160" height="54" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--160" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ydUtLetK26WXyeJ3qCt--158" vertex="1">
|
||||
<mxGeometry y="110" width="310" height="8" as="geometry" />
|
||||
<mxGeometry y="80" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--161" value="+ method(type): type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--158" vertex="1">
|
||||
<mxGeometry y="88" width="160" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--162" value="Ausweis" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1220" y="1300" width="160" height="90" as="geometry" />
|
||||
<mxGeometry x="1300" y="528" width="160" height="114" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--163" value="- kartenNummer: String<div>- <u>generiereNummer </u>= 1000</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--162" vertex="1">
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--163" value="- kartenNummer: int<div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--162" vertex="1">
|
||||
<mxGeometry y="26" width="160" height="54" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--164" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="ydUtLetK26WXyeJ3qCt--162" vertex="1">
|
||||
<mxGeometry y="80" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--165" value="<div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--162" vertex="1">
|
||||
<mxGeometry y="88" width="160" height="2" as="geometry" />
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--165" value="+ method(type): type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="ydUtLetK26WXyeJ3qCt--162" vertex="1">
|
||||
<mxGeometry y="88" width="160" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--175" target="ydUtLetK26WXyeJ3qCt--162" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1300" y="1250" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--190" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="1" source="ydUtLetK26WXyeJ3qCt--175" target="ydUtLetK26WXyeJ3qCt--163" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--175" value="<i>Benutzer</i>" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=37;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=default;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" parent="1" vertex="1">
|
||||
<mxGeometry x="1470" y="1010" width="260" height="320" as="geometry" />
|
||||
<mxGeometry x="1560" y="310" width="260" height="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--176" value="<span style="font-weight: normal;">- bibAusweis: Ausweis</span><div style="line-height: 140%;"><span style="background-color: initial; font-weight: normal;">- name: String</span></div><div style="line-height: 140%;"><span style="background-color: initial; font-weight: normal;">- alter: int</span></div><div style="line-height: 140%;"><span style="background-color: initial; font-weight: normal;">- istStudent: boolean</span></div><div style="line-height: 160%;"><span style="font-weight: normal;">-&nbsp;<span style="background-color: initial;">ausgeliehenenMedien[]: Ausleihe</span></span></div><div><span style="font-weight: normal;">- angemeldet: boolean</span></div><div><span style="font-weight: normal;">- gebühren: double</span></div><div><span style="font-weight: normal;">- anmeldeBeginn: LocalDate</span></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--175" vertex="1">
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--176" value="<span style="font-weight: normal;">- bibAusweis: Ausweis</span><div style="line-height: 140%;"><span style="background-color: initial; font-weight: normal;">- name: String</span></div><div style="line-height: 140%;"><span style="background-color: initial; font-weight: normal;">- alter: int</span></div><div style="line-height: 140%;"><span style="background-color: initial; font-weight: normal;">- istStudent: boolean</span></div><div style="line-height: 160%;"><span style="font-weight: normal;">-&nbsp;<span style="background-color: initial;">ausgeliehenenMedien[]: Medium</span></span></div><div><span style="font-weight: normal;">- angemeldet: boolean</span></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--175" vertex="1">
|
||||
<mxGeometry y="37" width="260" height="163" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--177" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--175" vertex="1">
|
||||
<mxGeometry y="200" width="260" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--178" value="<span style="font-weight: normal;">+ anmelden(): void</span><div><span style="font-weight: 400;">+ abmelden: void<br></span><div><span style="font-weight: normal;">+ ausleihen(medium: Ausleihe): void</span></div><div><span style="font-weight: normal; background-color: initial;"><i>+ jahresgebühren(): double</i></span></div><div><span style="font-weight: normal;">+ zurückgeben(medium: Ausleihe): void</span></div><div><br></div></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--175" vertex="1">
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--178" value="<span style="font-weight: normal;">+ anmelden(int kartenNummer): boolean</span><div><span style="font-weight: normal;">+ ausleihe()</span></div><div><span style="font-weight: normal;">+ anzeigen()</span></div><div><span style="font-weight: normal;">+ verlängren()</span></div><div><span style="font-weight: normal;">+ zurückgeben()</span></div><div><span style="font-weight: normal;">+ gebührenbezahlen(int betrag): boolean</span></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--175" vertex="1">
|
||||
<mxGeometry y="208" width="260" height="112" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--179" value="Kunde" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=36;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=default;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" parent="1" vertex="1">
|
||||
<mxGeometry x="1450" y="750" width="160" height="96" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--180" value="<span style="font-weight: normal;">+ field: type</span>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--179" vertex="1">
|
||||
<mxGeometry y="36" width="160" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--181" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--179" vertex="1">
|
||||
<mxGeometry y="62" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--182" value="<span style="font-weight: normal;">+ method(type): type</span>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--179" vertex="1">
|
||||
<mxGeometry y="70" width="160" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--183" value="Mitarbeiter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=36;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=default;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" parent="1" vertex="1">
|
||||
<mxGeometry x="1670" y="750" width="160" height="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--184" value="<span style="font-weight: normal;">+ field: typ</span>e" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--183" vertex="1">
|
||||
<mxGeometry y="36" width="160" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--185" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="ydUtLetK26WXyeJ3qCt--183" vertex="1">
|
||||
<mxGeometry y="62" width="160" height="48" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--191" value="<div><br></div>1..*" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1500" y="430" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--192" value="hat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1459" y="472" width="60" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--193" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1450" y="550" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--203" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1429" y="1450" as="sourcePoint" />
|
||||
<mxPoint x="1429" y="1400" as="targetPoint" />
|
||||
<mxPoint x="1519" y="750" as="sourcePoint" />
|
||||
<mxPoint x="1519" y="700" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="1430" y="1430" />
|
||||
<mxPoint x="1520" y="730" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--204" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1629" y="1450" as="sourcePoint" />
|
||||
<mxPoint x="1629" y="1400" as="targetPoint" />
|
||||
<mxPoint x="1719" y="750" as="sourcePoint" />
|
||||
<mxPoint x="1719" y="700" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--205" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1429" y="1400" as="sourcePoint" />
|
||||
<mxPoint x="1629" y="1400" as="targetPoint" />
|
||||
<mxPoint x="1519" y="700" as="sourcePoint" />
|
||||
<mxPoint x="1719" y="700" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ydUtLetK26WXyeJ3qCt--206" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;entryX=0.344;entryY=0.997;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="ydUtLetK26WXyeJ3qCt--178" edge="1">
|
||||
<mxGeometry width="160" relative="1" as="geometry">
|
||||
<mxPoint x="1559" y="1400" as="sourcePoint" />
|
||||
<mxPoint x="1540" y="1380" as="targetPoint" />
|
||||
<mxPoint x="1649" y="700" as="sourcePoint" />
|
||||
<mxPoint x="1630" y="680" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-2" value="BibSystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="790" y="330" width="490" height="280" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-3" value="<div style="font-size: 11px;"><span style="background-color: initial;"><font style="font-size: 11px;">- allBibBenutzer: ArrayList&lt;Benutzer&gt;</font></span></div><div style="font-size: 11px;"><span style="background-color: initial;"><font style="font-size: 11px;">- medien: HashMap&lt;String,Mediumverwalter&gt;</font></span></div><div style="font-size: 11px;"><span style="background-color: initial;"><font style="font-size: 11px;">- ausleihe: ArrayList&lt;Ausleihe&gt;</font></span></div><div style="font-size: 11px;"><span style="background-color: initial;"><font style="font-size: 11px;">- ausleiheSystem: AusleihSystem</font></span></div><div style="font-size: 11px;"><span style="background-color: initial;"><font style="font-size: 11px;">- bibAdmin: Benutzer</font></span></div><div style="font-size: 11px;"><span style="background-color: initial;"><font style="font-size: 11px;"><br></font></span></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;strokeWidth=3;" parent="i-RIzz4hhB1Q3m7lVkjo-2" vertex="1">
|
||||
<mxGeometry y="26" width="490" height="104" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="i-RIzz4hhB1Q3m7lVkjo-2" vertex="1">
|
||||
<mxGeometry y="130" width="490" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-5" value="+ userRegistrieren(name:String, type: String, alter: int, istAdmin: String): void<div>+ userAnmelden(bibKartennummer: String): boolean</div><div>+&nbsp;mediumDurchsuchen(auswahl: String, bibKartennummer: String): ArrayList&lt;String&gt;</div><div>+&nbsp;mediumAusleihen(bibKartenNummer:&nbsp;<span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">,eindeutigeKennung:&nbsp;</span><span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">): String</span></div><div><span style="background-color: initial;">+&nbsp;</span><span style="background-color: initial;">medienVerlängern(eindeutigeKennung:</span><span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">, bibKartennummer:&nbsp;</span><span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">): boolean</span></div><div><span style="background-color: initial;">+&nbsp;</span><span style="background-color: initial;">gebührenBezahlen(betrag:&nbsp;</span><span style="background-color: initial;">double</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">, bibKartennummer:&nbsp;</span><span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">): boolean</span></div><div><span style="background-color: initial;">+&nbsp;</span><span style="background-color: initial;">medienRückgabe(eindeutigeKennung:&nbsp;</span><span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">): ArrayList&lt;String&gt;</span></div><div><span style="background-color: initial;">+&nbsp;</span><span style="background-color: initial;">jahresGebührenBerechnen(bibKartennummer:&nbsp;</span><span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">, datum:&nbsp;</span><span style="background-color: initial;">String</span><span style="background-color: initial;">&nbsp;</span><span style="background-color: initial;">): double</span></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-2" vertex="1">
|
||||
<mxGeometry y="138" width="490" height="142" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-10" value="Mediumverwalter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1580" y="390" width="160" height="128" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-11" value="- verlängerbar: boolean<div>- anzahl: int</div><div>- leihdauer: int</div><div>- medium: Medium</div><div>- istAusgeliehen: boolean</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-10" vertex="1">
|
||||
<mxGeometry y="26" width="160" height="94" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-12" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="i-RIzz4hhB1Q3m7lVkjo-10" vertex="1">
|
||||
<mxGeometry y="120" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.398;entryY=0.01;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="i-RIzz4hhB1Q3m7lVkjo-10" target="ydUtLetK26WXyeJ3qCt--41" edge="1">
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="a17Tyx0-SzZjYovz-tY2-5" target="ydUtLetK26WXyeJ3qCt--41">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-21" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1640" y="518" width="60" height="30" as="geometry" />
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-5" value="Mediumverwalter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1040" y="546" width="160" height="34" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-22" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1750" y="610" width="60" height="30" as="geometry" />
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-7" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="a17Tyx0-SzZjYovz-tY2-5">
|
||||
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-25" value="Buch" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1490" y="864" width="140" height="52" as="geometry" />
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-10" value="AusleiheSystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1020" y="368" width="160" height="34" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-26" value="- autor: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-25" vertex="1">
|
||||
<mxGeometry y="26" width="140" height="26" as="geometry" />
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-12" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="a17Tyx0-SzZjYovz-tY2-10">
|
||||
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-29" value="Cd" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1650" y="864" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-30" value="- künstler: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-29" vertex="1">
|
||||
<mxGeometry y="26" width="140" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-31" value="Dvd" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1838" y="864" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-32" value="- regisseur: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-31" vertex="1">
|
||||
<mxGeometry y="26" width="140" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-37" value="Dvd" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="2008" y="864" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-38" value="- verlag: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-37" vertex="1">
|
||||
<mxGeometry y="26" width="140" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-39" value="Videospiel" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="2178" y="864" width="140" height="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-40" value="- plattform: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-39" vertex="1">
|
||||
<mxGeometry y="26" width="140" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="i-RIzz4hhB1Q3m7lVkjo-3" target="i-RIzz4hhB1Q3m7lVkjo-10" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-43" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1280" y="375" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-44" value="hat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1490" y="340" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-45" value="<font style="font-size: 18px;"><b>*</b></font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=5;" parent="1" vertex="1">
|
||||
<mxGeometry x="1650" y="360" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-48" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1060" y="740" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-49" value="AusleihSystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="801" y="770" width="539" height="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-50" value="- ausleihBeginn: LocalDate<div>- ausleihEnde: LocalDate&nbsp;</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-49" vertex="1">
|
||||
<mxGeometry y="26" width="539" height="64" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-51" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="i-RIzz4hhB1Q3m7lVkjo-49" vertex="1">
|
||||
<mxGeometry y="90" width="539" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-52" value="+ mediumAusleihen(benutzer: Benutzer, eindutigeNummer: String): Ausleihe<div>+ mediumRückgabe(ausleihe: ArrayList&lt;Ausleihe&gt;, eindutigeKennung: String): ArrayList&lt;String&gt;</div><div>+ medienVerlängern(benutzer:Benutzer, eindutigeKennung: String): boolean</div><div>- findMedium(eindutigeKennung: String): Mediumverwalter</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="i-RIzz4hhB1Q3m7lVkjo-49" vertex="1">
|
||||
<mxGeometry y="98" width="539" height="82" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.001;entryY=0.1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="i-RIzz4hhB1Q3m7lVkjo-2" target="ydUtLetK26WXyeJ3qCt--158" edge="1">
|
||||
<mxCell id="a17Tyx0-SzZjYovz-tY2-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.025;entryY=0.151;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="ydUtLetK26WXyeJ3qCt--158">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="770" y="470" />
|
||||
<mxPoint x="770" y="1102" />
|
||||
</Array>
|
||||
<mxPoint x="1180" y="407" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-58" value="<font style="font-size: 22px;">*</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="790" y="1080" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-59" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="741" y="444" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.998;entryY=0.588;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="ydUtLetK26WXyeJ3qCt--175" target="ydUtLetK26WXyeJ3qCt--159" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-62" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1400" y="1134" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-63" value="hat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1300" y="1134" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-64" value="<font style="font-size: 21px;">*</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1160" y="1134" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-65" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1420" y="1218" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-66" value="hat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1300" y="1220" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-68" value="<font style="font-size: 12px;">1</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1240" y="1270" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-69" value="erstellt" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1005" y="990" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-70" value="<font style="font-size: 12px;">1</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="960" y="1060" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-71" value="verwaltet" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1760" y="550" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-72" value="kommuniziert" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1060" y="670" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="i-RIzz4hhB1Q3m7lVkjo-73" value="hat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="767" y="690" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="xSOr38UQ6ttjsq0tnJFV-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.388;entryY=0.019;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="i-RIzz4hhB1Q3m7lVkjo-49" target="ydUtLetK26WXyeJ3qCt--158" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="xSOr38UQ6ttjsq0tnJFV-2" value="<font style="font-size: 12px;">1</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1060" y="950" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="xSOr38UQ6ttjsq0tnJFV-5" value="Studenten" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="1350" y="1450" width="160" height="34" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="xSOr38UQ6ttjsq0tnJFV-7" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="xSOr38UQ6ttjsq0tnJFV-5" vertex="1">
|
||||
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="xSOr38UQ6ttjsq0tnJFV-17" value="Medium druchsuchen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="375" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="xSOr38UQ6ttjsq0tnJFV-18" value="Medium<div>Ausleihen</div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="440" y="440" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.057;entryY=-0.011;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="i-RIzz4hhB1Q3m7lVkjo-2" target="ydUtLetK26WXyeJ3qCt--175">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-2" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1290" y="439" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-3" value="hat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1470" y="690" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-4" value="*" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1470" y="970" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-5" value="Mitarbeiter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1740" y="1437" width="300" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-7" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="l42d9aidsTNYsLyE-SN_-5">
|
||||
<mxGeometry y="26" width="300" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-8" value="+ gebührenVerbuchen(benutzer: Benutzer): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="l42d9aidsTNYsLyE-SN_-5">
|
||||
<mxGeometry y="34" width="300" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-9" value="Erwachsener" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1550" y="1450" width="160" height="34" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-11" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="l42d9aidsTNYsLyE-SN_-9">
|
||||
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-13" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1630" y="1400" as="sourcePoint" />
|
||||
<mxPoint x="1630" y="1400" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-14" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1630" y="1400" as="sourcePoint" />
|
||||
<mxPoint x="1890" y="1400" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-15" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="l42d9aidsTNYsLyE-SN_-5">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1840" y="1450" as="sourcePoint" />
|
||||
<mxPoint x="1890" y="1400" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-17" value="" style="endArrow=none;html=1;rounded=0;exitX=0.457;exitY=0.004;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.526;entryY=1.014;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="i-RIzz4hhB1Q3m7lVkjo-49" target="i-RIzz4hhB1Q3m7lVkjo-5">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="970" y="660" as="sourcePoint" />
|
||||
<mxPoint x="1020" y="610" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="l42d9aidsTNYsLyE-SN_-18" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1040.5" y="620" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
|
|
Before Width: | Height: | Size: 298 KiB |
After Width: | Height: | Size: 89 KiB |
|
@ -0,0 +1,29 @@
|
|||
private Benutzer findBenutzer(int kartennummer) {
|
||||
alleBibBenutzer.stream()
|
||||
.filter(k -> k.getBibAusweis().getKartenNummer() == kartennummer)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wie kann ich hier Benutzer mit Stream zurückgeben?
|
||||
|
||||
Antwort:
|
||||
Um in der Methode findBenutzer den Benutzer mit der angegebenen Kartennummer zurückzugeben,
|
||||
kannst du den stream()-Ansatz verwenden und das Ergebnis filtern.
|
||||
Schließlich kannst du mit findFirst() das erste (und in diesem Fall das einzige) Element des Streams
|
||||
abrufen, das die Bedingung erfüllt. Wenn kein Benutzer mit dieser Kartennummer vorhanden ist, könnte findFirst() ein Optional-Objekt ohne Wert zurückgeben.
|
||||
|
||||
Hier ist die angepasste Methode:
|
||||
private Benutzer findBenutzer(int kartennummer) {
|
||||
return alleBibBenutzer.stream()
|
||||
.filter(k -> k.getBibAusweis().getKartenNummer() == kartennummer)
|
||||
.findFirst()
|
||||
.orElse(null); // Gibt null zurück, falls kein Benutzer mit der Kartennummer gefunden wurde
|
||||
}
|
||||
|
||||
Erklärung der Anpassung
|
||||
stream(): Wandelt die ArrayList in einen Stream um.
|
||||
filter(...): Filtert den Stream nach Benutzern, deren Kartennummer mit der gesuchten übereinstimmt.
|
||||
findFirst(): Nimmt das erste Element des Streams, das die Filterbedingung erfüllt.
|
||||
orElse(null): Gibt null zurück, falls kein Benutzer gefunden wurde.
|
|
@ -1,8 +1,8 @@
|
|||
package medienHinzüfugen;
|
||||
package MedienHinzüfugen;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
import domain.exceptionsKlassen.FalscheEingabeException;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
import domain.fassade.BibSystem;
|
||||
|
||||
public class MedienHinzufügen {
|
|
@ -1,10 +1,10 @@
|
|||
package domain.ausleihSystem;
|
||||
package domain.AusleiheSystem;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
import domain.benutzer.Benutzer;
|
||||
import domain.medium.Mediumverwalter;
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.Medium.Mediumverwalter;
|
||||
|
||||
public class Ausleihe {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package domain.ausleihSystem;
|
||||
package domain.AusleiheSystem;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
|
@ -19,10 +19,8 @@ class AusleiheJTest {
|
|||
@Test
|
||||
void test() throws Exception {
|
||||
bib.userRegistrieren("obai", "student", 15, "nein");
|
||||
bib.userAnmelden("K1001");
|
||||
double userGebühren = bib.mediumAusleihen("K1001", "B001");
|
||||
assertEquals(0.0,userGebühren);
|
||||
|
||||
bib.userAnmdelden("K1000");
|
||||
bib.mediumAusleihen("K1000", "B001");
|
||||
}
|
||||
|
||||
}
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
@ -1,12 +1,12 @@
|
|||
package domain.ausleihSystem;
|
||||
package domain.AusleiheSystem;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
|
||||
import domain.benutzer.Benutzer;
|
||||
import domain.exceptionsKlassen.MediumNichtGefundenException;
|
||||
import domain.medium.*;
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.ExceptionsKlassen.MediumNichtGefundenException;
|
||||
import domain.Medium.*;
|
||||
|
||||
public class AusleiheSystem {
|
||||
|
||||
|
@ -17,7 +17,6 @@ public class AusleiheSystem {
|
|||
this.medien = medien;
|
||||
}
|
||||
|
||||
|
||||
public Ausleihe mediumAusleihen(Benutzer benutzer, String eindeutigenummer) throws MediumNichtGefundenException {
|
||||
Mediumverwalter mediumAusleihen = findMedium(eindeutigenummer);
|
||||
|
||||
|
@ -38,8 +37,7 @@ public class AusleiheSystem {
|
|||
|
||||
public ArrayList<String> mediumRückgabe(ArrayList<Ausleihe> ausleihe, String eindeutigeKennung) {
|
||||
Ausleihe ausgelieheneMedium = ausleihe.stream()
|
||||
.filter(k -> k.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung))
|
||||
.findFirst()
|
||||
.filter(k -> k.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung)).findFirst()
|
||||
.orElse(null);
|
||||
|
||||
ArrayList<String> ausgeliehenMedien = new ArrayList<>();
|
||||
|
@ -75,22 +73,22 @@ public class AusleiheSystem {
|
|||
return ausgeliehenMedien;
|
||||
}
|
||||
|
||||
public double SimulieremediumRückgabe(ArrayList<Ausleihe> ausleihe, String eindeutigeKennung, String ausleiheBeginn, String ausleiheEnde,String datum) throws MediumNichtGefundenException {
|
||||
public double SimulieremediumRückgabe(ArrayList<Ausleihe> ausleihe, String eindeutigeKennung, String datum)
|
||||
throws MediumNichtGefundenException {
|
||||
Ausleihe ausgelieheneMedium = ausleihe.stream()
|
||||
.filter(k -> k.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung)).findFirst()
|
||||
.orElse(null);
|
||||
|
||||
LocalDate beginn = LocalDate.parse(ausleiheBeginn);
|
||||
LocalDate ende = LocalDate.parse(ausleiheEnde);
|
||||
LocalDate heutigesDatum = LocalDate.parse(datum);
|
||||
LocalDate heutigesDatum;
|
||||
LocalDate testDatum = LocalDate.parse(datum);
|
||||
Benutzer bibBenutzer = ausgelieheneMedium.getBenutzer();
|
||||
|
||||
ausgelieheneMedium.setAusleiheBeginn(beginn);
|
||||
ausgelieheneMedium.setAusleiheEnde(ende);
|
||||
|
||||
if (heutigesDatum.isAfter(ausgelieheneMedium.getAusleiheEnde())) {
|
||||
long überfälligeTage = ausgelieheneMedium.getAusleiheEnde().until(heutigesDatum, ChronoUnit.DAYS);
|
||||
double gebühren = 0.0;
|
||||
if (ausgelieheneMedium != null) {
|
||||
heutigesDatum = LocalDate.now();
|
||||
|
||||
if (heutigesDatum.isAfter(testDatum)) {
|
||||
long überfälligeTage = testDatum.until(heutigesDatum, ChronoUnit.DAYS);
|
||||
|
||||
if (überfälligeTage <= 7)
|
||||
gebühren = überfälligeTage * 1.0;
|
||||
|
||||
|
@ -101,9 +99,13 @@ public class AusleiheSystem {
|
|||
}
|
||||
|
||||
bibBenutzer.setGebühren(bibBenutzer.getGebühren() + gebühren);
|
||||
return bibBenutzer.getGebühren();
|
||||
}
|
||||
|
||||
return bibBenutzer.getGebühren();
|
||||
} else
|
||||
throw new MediumNichtGefundenException("Das Medium wurde nicht gefunden");
|
||||
|
||||
return gebühren;
|
||||
}
|
||||
|
||||
public boolean medienVerlängern(Benutzer benutzer, String eindeutigeKennung) throws MediumNichtGefundenException {
|
|
@ -0,0 +1,32 @@
|
|||
package domain.AusleiheSystem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.fassade.BibSystem;
|
||||
|
||||
class MedienRückgabeTest {
|
||||
|
||||
private BibSystem bib;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
this.bib = new BibSystem();
|
||||
}
|
||||
|
||||
@Test
|
||||
void test() throws Exception {
|
||||
bib.userRegistrieren("obai", "student", 15, "nein");
|
||||
bib.userAnmdelden("K1001");
|
||||
bib.mediumAusleihen("K1001", "B001");
|
||||
bib.mediumAusleihen("K1001", "BG001");
|
||||
|
||||
ArrayList<String> test = bib.medienRückgabe("B001");
|
||||
if (test.size() == 0)
|
||||
System.out.println("kein Mehr");
|
||||
test.forEach(System.out::println);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package domain.ausleihSystem;
|
||||
package domain.AusleiheSystem;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
|
@ -19,7 +19,7 @@ class MediumVerlängernTest {
|
|||
@Test
|
||||
void test() throws Exception {
|
||||
bib.userRegistrieren("obai", "student", 15, "nein");
|
||||
bib.userAnmelden("K1001");
|
||||
bib.userAnmdelden("K1001");
|
||||
bib.mediumAusleihen("K1001", "B001");
|
||||
assertTrue(bib.medienVerlängern("B001", "K1001"));
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package domain.benutzer;
|
||||
package domain.Benutzer;
|
||||
|
||||
public class Ausweis {
|
||||
private String kartennummer;
|
|
@ -1,9 +1,8 @@
|
|||
package domain.benutzer;
|
||||
package domain.Benutzer;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import domain.ausleihSystem.Ausleihe;
|
||||
import domain.AusleiheSystem.Ausleihe;
|
||||
|
||||
public abstract class Benutzer {
|
||||
|
||||
|
@ -76,14 +75,12 @@ public abstract class Benutzer {
|
|||
return angemeldet;
|
||||
}
|
||||
|
||||
public boolean anmelden() {
|
||||
public void anmelden() {
|
||||
this.angemeldet = true;
|
||||
return this.angemeldet;
|
||||
}
|
||||
|
||||
public boolean abmelden() {
|
||||
public void abmelden() {
|
||||
this.angemeldet = false ;
|
||||
return this.angemeldet;
|
||||
}
|
||||
|
||||
|
||||
|
@ -103,32 +100,32 @@ public abstract class Benutzer {
|
|||
this.anmeldebeginn = anmeldebeginn;
|
||||
}
|
||||
|
||||
|
||||
public double jahresgebühren(String datum) {
|
||||
// Falls ein Testdatum angegeben ist
|
||||
if (!datum.isEmpty()) {
|
||||
LocalDate aktuellesDatum = LocalDate.parse(datum);
|
||||
while (this.anmeldebeginn.isBefore(aktuellesDatum)) {
|
||||
this.gebühren += getJahresgebühren();
|
||||
this.anmeldebeginn = this.anmeldebeginn.plusYears(1); // Aktualisieren des Startdatums
|
||||
public double jahresgebühren() {
|
||||
LocalDate nacheinemJahr = anmeldebeginn.plusYears(1);
|
||||
if (LocalDate.now().isAfter(nacheinemJahr)) {
|
||||
this.gebühren += getJahresgebühr();
|
||||
anmeldebeginn = nacheinemJahr;
|
||||
return this.gebühren;
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
this.anmeldebeginn = aktuellesDatum; // Letztes Aktualisieren des Startdatums
|
||||
}
|
||||
else {
|
||||
LocalDate nachEinemJahr = this.anmeldebeginn.plusYears(1);
|
||||
while (LocalDate.now().isAfter(nachEinemJahr)) {
|
||||
this.gebühren += getJahresgebühren();
|
||||
this.anmeldebeginn = nachEinemJahr;
|
||||
nachEinemJahr = this.anmeldebeginn.plusYears(1);
|
||||
}
|
||||
// Für Testate
|
||||
public double simuliereJahresGebühren(String anmeldeBeginn) {
|
||||
LocalDate aktuellesDatum = LocalDate.now();
|
||||
LocalDate test = LocalDate.parse(anmeldeBeginn);
|
||||
|
||||
while (test.isBefore(aktuellesDatum)) {
|
||||
this.gebühren += getJahresgebühr();
|
||||
test = test.plusYears(1);
|
||||
}
|
||||
|
||||
anmeldebeginn = test;
|
||||
return this.gebühren;
|
||||
}
|
||||
|
||||
|
||||
public abstract double getJahresgebühren();
|
||||
public abstract double getJahresgebühr();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
|
@ -0,0 +1,16 @@
|
|||
package domain.Benutzer;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class Kunde extends Benutzer {
|
||||
|
||||
public Kunde(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
super(bibAusweis, name, alter, istStudent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getJahresgebühr() {
|
||||
return 25.0;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package domain.benutzer;
|
||||
package domain.Benutzer;
|
||||
|
||||
public class Mitarbeiter extends Benutzer {
|
||||
|
||||
|
@ -7,9 +7,9 @@ public class Mitarbeiter extends Benutzer {
|
|||
}
|
||||
|
||||
@Override
|
||||
public double getJahresgebühren() {
|
||||
public double getJahresgebühr() {
|
||||
|
||||
return 0.0;
|
||||
return 50.0;
|
||||
}
|
||||
|
||||
public void gebührVerbuchen(Benutzer benutzer) {
|
|
@ -1,4 +1,4 @@
|
|||
package domain.bibliothekskatalog;
|
||||
package domain.Bibliothekskatalog;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
|
@ -8,13 +8,13 @@ import org.junit.jupiter.api.BeforeEach;
|
|||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.benutzer.Benutzer;
|
||||
import domain.exceptionsKlassen.BenutzerNichtAngemeldetException;
|
||||
import domain.exceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.exceptionsKlassen.FalscheEingabeException;
|
||||
import domain.exceptionsKlassen.MediumNichtGefundenException;
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException;
|
||||
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
import domain.ExceptionsKlassen.MediumNichtGefundenException;
|
||||
import domain.UserRegistieren.Registieren;
|
||||
import domain.fassade.BibSystem;
|
||||
import domain.fassade.Registieren;
|
||||
|
||||
class MedienSuchenTest {
|
||||
|
||||
|
@ -24,27 +24,27 @@ private BibSystem fassade;
|
|||
void erstelleObjekt() throws FalscheEingabeException, BenutzerNichtGefundenException {
|
||||
this.fassade = new BibSystem();
|
||||
fassade.userRegistrieren("obai", "student", 15, "nein");
|
||||
fassade.userAnmelden("K1001");
|
||||
fassade.userAnmdelden("K1000");
|
||||
|
||||
}
|
||||
|
||||
@Disabled
|
||||
void testMedienSuchenNachTitle()throws MediumNichtGefundenException, FalscheEingabeException, BenutzerNichtAngemeldetException, BenutzerNichtGefundenException {
|
||||
ArrayList<String> nichtAusgeliehen = fassade.mediumDurchsuchen("Effektives Java Programmieren", "K1001");
|
||||
void testMedienSuchenNachTitle()throws MediumNichtGefundenException, FalscheEingabeException, BenutzerNichtAngemeldetException {
|
||||
ArrayList<String> nichtAusgeliehen = fassade.mediumDurchsuchen("Effektives Java Programmieren", "K1000");
|
||||
nichtAusgeliehen.forEach(System.out::println);
|
||||
|
||||
}
|
||||
|
||||
@Disabled
|
||||
void testMedienSuchenNachMedienart()throws MediumNichtGefundenException, FalscheEingabeException, BenutzerNichtAngemeldetException {
|
||||
ArrayList<String> nichtAusgeliehen = fassade.mediumDurchsuchen("Videospiele", "K1000");
|
||||
nichtAusgeliehen.forEach(System.out::println);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedienSuchenNachMedienart()throws MediumNichtGefundenException, FalscheEingabeException, BenutzerNichtAngemeldetException, BenutzerNichtGefundenException {
|
||||
ArrayList<String> nichtAusgeliehen = fassade.mediumDurchsuchen("Videospiele", "K1001");
|
||||
nichtAusgeliehen.forEach(System.out::println);
|
||||
|
||||
}
|
||||
|
||||
@Disabled
|
||||
void testMedienSuchenNachausgeliehen()throws MediumNichtGefundenException, FalscheEingabeException, BenutzerNichtAngemeldetException, BenutzerNichtGefundenException {
|
||||
ArrayList<String> nichtAusgeliehen = fassade.mediumDurchsuchen("ausgeliehen", "K1001");
|
||||
void testMedienSuchenNachausgeliehen()throws MediumNichtGefundenException, FalscheEingabeException, BenutzerNichtAngemeldetException {
|
||||
ArrayList<String> nichtAusgeliehen = fassade.mediumDurchsuchen("ausgeliehen", "K1000");
|
||||
nichtAusgeliehen.forEach(System.out::println);
|
||||
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package domain.Bibliothekskatalog;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import domain.Medium.*;
|
||||
|
||||
public class Mediensuchen {
|
||||
|
||||
public ArrayList<String> title(String title, HashMap<String,Mediumverwalter> medien) {
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().getMedium().getTitle().equalsIgnoreCase(title))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
}
|
||||
|
||||
public ArrayList<String> ausgeliehen(String ausgeliehen, HashMap<String,Mediumverwalter> medien) {
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().isIstAusgeliehen())
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
}
|
||||
|
||||
public ArrayList<String> nichtAusgeliehen(String ausgeliehen, HashMap<String,Mediumverwalter> medien) {
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> !(t.getValue().isIstAusgeliehen()))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
}
|
||||
|
||||
|
||||
public ArrayList<String> medienart(String medienart, HashMap<String,Mediumverwalter> medien) {
|
||||
switch(medienart) {
|
||||
case "Bücher":
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().getMedium() instanceof Buch)
|
||||
.map(t -> ((Buch)t))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
|
||||
case "Brettspiele":
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().getMedium() instanceof Brettspiel)
|
||||
.map(t -> ((Brettspiel)t))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
|
||||
case "Dvds":
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().getMedium() instanceof Dvd)
|
||||
.map(t -> ((Dvd)t))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
|
||||
case "Cds":
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().getMedium() instanceof Cd)
|
||||
.map(t -> ((Cd)t))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
|
||||
case "Videospiele":
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().getMedium() instanceof Videospiel)
|
||||
.map(t -> ((Videospiel)t))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
|
||||
default:
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package domain.exceptionsKlassen;
|
||||
package domain.ExceptionsKlassen;
|
||||
|
||||
public class BenutzerNichtAngemeldetException extends Exception {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package domain.exceptionsKlassen;
|
||||
package domain.ExceptionsKlassen;
|
||||
|
||||
public class BenutzerNichtGefundenException extends Exception {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package domain.exceptionsKlassen;
|
||||
package domain.ExceptionsKlassen;
|
||||
|
||||
public class FalscheEingabeException extends Exception {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package domain.exceptionsKlassen;
|
||||
package domain.ExceptionsKlassen;
|
||||
|
||||
public class MediumNichtGefundenException extends Exception {
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
package domain.medium;
|
||||
package domain.Medium;
|
||||
|
||||
|
||||
public class Brettspiel extends Medium {
|
||||
|
||||
private String Verlag;
|
||||
|
||||
public Brettspiel(String ID,String title, int erscheinungsjahr, String Verlag) {
|
|
@ -1,4 +1,4 @@
|
|||
package domain.medium;
|
||||
package domain.Medium;
|
||||
|
||||
public class Buch extends Medium {
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
package domain.medium;
|
||||
package domain.Medium;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class Cd extends Medium {
|
||||
|
||||
private String Künstler;
|
||||
|
||||
public Cd(String ID,String title, int erscheinungsjahr,String Künstler) {
|
||||
super(ID,title, erscheinungsjahr);
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package domain.medium;
|
||||
package domain.Medium;
|
||||
|
||||
|
||||
public class Dvd extends Medium {
|
|
@ -1,4 +1,4 @@
|
|||
package domain.medium;
|
||||
package domain.Medium;
|
||||
|
||||
|
||||
public abstract class Medium {
|
|
@ -1,4 +1,4 @@
|
|||
package domain.medium;
|
||||
package domain.Medium;
|
||||
|
||||
public class Mediumverwalter {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package domain.medium;
|
||||
package domain.Medium;
|
||||
|
||||
import java.util.Date;
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package domain.UserRegistieren;
|
||||
|
||||
import domain.Benutzer.*;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
public class Registieren {
|
||||
|
||||
public static Benutzer userRegistrieren(String name, String type, int alter,String istAdmin) throws FalscheEingabeException {
|
||||
Benutzer benutzer;
|
||||
Ausweis ausweis;
|
||||
|
||||
if (!name.isEmpty() && (type.equalsIgnoreCase("schüler") || type.equalsIgnoreCase("student")) && istAdmin.equalsIgnoreCase("nein")) {
|
||||
ausweis = new Ausweis("K");
|
||||
benutzer = new Kunde(ausweis,name,alter,false);
|
||||
}
|
||||
else if (!name.isEmpty() && type.equalsIgnoreCase("mitarbeiter") && istAdmin.equalsIgnoreCase("ja")) {
|
||||
ausweis = new Ausweis("A");
|
||||
benutzer = new Mitarbeiter(ausweis,name,alter,true);
|
||||
}
|
||||
else
|
||||
throw new FalscheEingabeException("Falsche Eingabe");
|
||||
|
||||
return benutzer;
|
||||
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
@ -0,0 +1,47 @@
|
|||
package domain.UserRegistieren;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.Benutzer.Ausweis;
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.Benutzer.Kunde;
|
||||
import domain.Benutzer.Mitarbeiter;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
import domain.Medium.Buch;
|
||||
import domain.Medium.Mediumverwalter;
|
||||
import domain.fassade.BibSystem;
|
||||
|
||||
class RegistrierenTest {
|
||||
private BibSystem bib;
|
||||
|
||||
@BeforeEach
|
||||
void erstelleObjekt() {
|
||||
this.bib = new BibSystem();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testKunde() throws FalscheEingabeException {
|
||||
|
||||
Benutzer benutzer = Registieren.userRegistrieren("obai", "student", 15, "nein");
|
||||
// True, da Kunde ist
|
||||
assertTrue(benutzer instanceof Kunde);
|
||||
String bibKartenNummer = "K1000";
|
||||
assertTrue(benutzer.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMitarbeiter() throws FalscheEingabeException {
|
||||
|
||||
Benutzer benutzer = Registieren.userRegistrieren("obai", "mitarbeiter", 15, "ja");
|
||||
// True, da Mitarbeiter ist
|
||||
assertTrue(benutzer instanceof Mitarbeiter);
|
||||
String bibKartenNummer = "A1001";
|
||||
assertTrue(benutzer.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
package domain.ausleihSystem;
|
||||
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.benutzer.Benutzer;
|
||||
import domain.fassade.BibSystem;
|
||||
|
||||
class MedienRückgabeTest {
|
||||
|
||||
private BibSystem bib;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
this.bib = new BibSystem();
|
||||
}
|
||||
|
||||
@Test
|
||||
void test() throws Exception {
|
||||
bib.userRegistrieren("obai", "student", 15, "nein");
|
||||
bib.userAnmelden("K1001");
|
||||
bib.mediumAusleihen("K1001", "B001");
|
||||
|
||||
Benutzer bibUser = bib.findeBenutzer("K1001");
|
||||
double gebühren = bib.datumÄndern("B001", "2022-09-01", "2022-10-01", "2022-10-09");
|
||||
assertEquals(9.0,gebühren);
|
||||
assertTrue(bib.adminAnmelden("A1000"));
|
||||
assertTrue(bib.getgbührenBenutzer("K1001") == 9.0);
|
||||
bib.gebührenVerbuchen("K1001");
|
||||
assertTrue (bibUser.getGebühren() == 0.0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
package domain.benutzer;
|
||||
|
||||
public class Erwachsener extends Benutzer {
|
||||
|
||||
public Erwachsener(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
super(bibAusweis, name, alter, istStudent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getJahresgebühren() {
|
||||
return 50.0;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
package domain.benutzer;
|
||||
|
||||
public class Student extends Benutzer {
|
||||
|
||||
public Student(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
super(bibAusweis, name, alter, istStudent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getJahresgebühren() {
|
||||
return 25.0;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
package domain.bibliothekskatalog;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import domain.ausleihSystem.Ausleihe;
|
||||
import domain.medium.*;
|
||||
|
||||
public class Mediensuchen {
|
||||
|
||||
public ArrayList<String> title(String title, HashMap<String,Mediumverwalter> medien) {
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().getMedium().getTitle().equalsIgnoreCase(title))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
}
|
||||
|
||||
public ArrayList<String> ausgeliehen(String ausgeliehen, HashMap<String,Mediumverwalter> medien) {
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> t.getValue().isIstAusgeliehen())
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
}
|
||||
|
||||
public ArrayList<String> nichtAusgeliehen(String ausgeliehen, HashMap<String,Mediumverwalter> medien) {
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> !(t.getValue().isIstAusgeliehen()))
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new));
|
||||
}
|
||||
|
||||
|
||||
public ArrayList<String> medienart(String medienart, HashMap<String, Mediumverwalter> medien) {
|
||||
// Map zur Zuordnung von medienart zu Klassen
|
||||
Map<String, Class<?>> medienKlassen = Map.of(
|
||||
"Bücher", Buch.class,
|
||||
"Brettspiele", Brettspiel.class,
|
||||
"Dvds", Dvd.class,
|
||||
"Cds", Cd.class,
|
||||
"Videospiele", Videospiel.class
|
||||
);
|
||||
|
||||
// Ermitteln der entsprechenden Klasse für die angegebene Medienart
|
||||
Class<?> klasse = medienKlassen.get(medienart);
|
||||
|
||||
if (klasse == null) {
|
||||
return null; // Ungültige Medienart
|
||||
}
|
||||
|
||||
// Stream für die Filterung und Konvertierung
|
||||
return medien.entrySet().stream()
|
||||
.filter(t -> klasse.isInstance(t.getValue().getMedium())) // Filtert nach der Klasse
|
||||
.map(t -> klasse.cast(t.getValue().getMedium())) // Castet das Medium zur richtigen Klasse
|
||||
.map(t -> "Eindutige Kennung= " + t.toString()) // Konvertiert zu String
|
||||
.collect(Collectors.toCollection(ArrayList::new)); // Sammeln als ArrayList
|
||||
}
|
||||
|
||||
|
||||
public ArrayList<String> baldVerfügbareMedien(ArrayList<Ausleihe> ausleihe) {
|
||||
LocalDate heutigesDatum = LocalDate.now();
|
||||
|
||||
return ausleihe.stream()
|
||||
.filter(t -> t.getAusleiheEnde().until(heutigesDatum, ChronoUnit.DAYS) <= 3)
|
||||
.map(t -> t.getMediumverwalter())
|
||||
.map(t -> t.toString())
|
||||
.collect(Collectors.toCollection(ArrayList::new));
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -17,9 +17,10 @@ class AusleihfristenGebührenTest {
|
|||
@Test
|
||||
void test() throws Exception {
|
||||
bib.userRegistrieren("obai", "student", 15, "nein");
|
||||
bib.userAnmelden("K1001");
|
||||
bib.userAnmdelden("K1001");
|
||||
bib.mediumAusleihen("K1001", "B001");
|
||||
|
||||
assertEquals(2.0,bib.simuliereMedienRückgabe("B001", "2024-11-13"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package domain.fassade;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import domain.ausleihSystem.*;
|
||||
import domain.benutzer.*;
|
||||
import domain.bibliothekskatalog.Mediensuchen;
|
||||
import domain.exceptionsKlassen.*;
|
||||
import domain.medium.*;
|
||||
import domain.AusleiheSystem.*;
|
||||
import domain.Benutzer.*;
|
||||
import domain.Bibliothekskatalog.Mediensuchen;
|
||||
import domain.ExceptionsKlassen.*;
|
||||
import domain.Medium.*;
|
||||
import domain.UserRegistieren.Registieren;
|
||||
|
||||
public class BibSystem {
|
||||
private ArrayList<Benutzer> alleBibBenutzer;
|
||||
|
@ -21,30 +21,46 @@ public class BibSystem {
|
|||
this.medien = new HashMap<>();
|
||||
this.ausleiheSystem = new AusleiheSystem(medien);
|
||||
this.ausleihe = new ArrayList<>();
|
||||
this.bibAdmin = new Mitarbeiter(new Ausweis("A"),"Xy Müller",20,false);
|
||||
bibAdmin = new Mitarbeiter(new Ausweis("A"),"XY Müller",20,false);
|
||||
mediumsAufladen();
|
||||
}
|
||||
|
||||
// Registrierung
|
||||
public void userRegistrieren(String name, String type, int alter, String istAdmin) throws FalscheEingabeException {
|
||||
Benutzer bibBenutzer = Registieren.userRegistrieren(name, type, alter, istAdmin);
|
||||
alleBibBenutzer.add(bibBenutzer);
|
||||
public boolean gebührenBezahlen(double betrag, String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartennummer);
|
||||
double userBetrag = benutzer.getGebühren();
|
||||
if (betrag == userBetrag ) {
|
||||
((Mitarbeiter)bibAdmin).gebührVerbuchen(benutzer);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Anmeldung
|
||||
public double userAnmelden(String bibKartenNummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer bibBenutzer = findeBenutzer(bibKartenNummer);
|
||||
bibBenutzer.anmelden();
|
||||
return bibBenutzer.getGebühren();
|
||||
public double jahresGebührenBerechnen(String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartennummer);
|
||||
return benutzer.jahresgebühren();
|
||||
}
|
||||
|
||||
public double simuliereJahresGebührenBerechnen(String bibKartennummer, String datum) throws BenutzerNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartennummer);
|
||||
return benutzer.simuliereJahresGebühren(datum);
|
||||
}
|
||||
|
||||
public ArrayList<String> medienRückgabe(String eindeutigeKennung) {
|
||||
return ausleiheSystem.mediumRückgabe(ausleihe, eindeutigeKennung);
|
||||
}
|
||||
|
||||
// Mediums Durchsuchen
|
||||
public ArrayList<String> mediumDurchsuchen(String auswahl, String bibKartenNummer) throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException, BenutzerNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartenNummer);
|
||||
public double simuliereMedienRückgabe(String eindeutigeKennung, String datum) throws MediumNichtGefundenException {
|
||||
return ausleiheSystem.SimulieremediumRückgabe(ausleihe, eindeutigeKennung, datum);
|
||||
}
|
||||
|
||||
if (benutzer.abmelden())
|
||||
public boolean medienVerlängern(String eindeutigeKennung, String bibKartennummer) throws BenutzerNichtGefundenException, MediumNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartennummer);
|
||||
return ausleiheSystem.medienVerlängern(benutzer,eindeutigeKennung);
|
||||
}
|
||||
|
||||
public ArrayList<String> mediumDurchsuchen(String auswahl, String bibKartenNummer)
|
||||
throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException {
|
||||
if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer))
|
||||
throw new BenutzerNichtAngemeldetException("Sie müssen sich erst im System anmelden");
|
||||
|
||||
ArrayList<String> treffer = new ArrayList<>();
|
||||
|
@ -61,10 +77,6 @@ public class BibSystem {
|
|||
|| auswahl.equalsIgnoreCase("Videospiele"))
|
||||
treffer = medienSuchen.medienart(auswahl, medien);
|
||||
|
||||
else if (auswahl.equalsIgnoreCase("ja")) {
|
||||
treffer = medienSuchen.baldVerfügbareMedien(ausleihe);
|
||||
}
|
||||
|
||||
else
|
||||
treffer = medienSuchen.title(auswahl, medien);
|
||||
|
||||
|
@ -74,136 +86,67 @@ public class BibSystem {
|
|||
return treffer;
|
||||
}
|
||||
|
||||
public void userRegistrieren(String name, String type, int alter, String istAdmin) throws FalscheEingabeException {
|
||||
Benutzer bibBenutzer = Registieren.userRegistrieren(name, type, alter, istAdmin);
|
||||
alleBibBenutzer.add(bibBenutzer);
|
||||
}
|
||||
|
||||
/*
|
||||
* Aufgaben des Leihsystems:
|
||||
* 1. Mediums ausleihen lassen
|
||||
* 2. Mediums verlängern
|
||||
* 3. Mediums Rückgabe
|
||||
*/
|
||||
public boolean userAnmdelden(String bibKartenNummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer bibBenutzer = findeBenutzer(bibKartenNummer);
|
||||
bibBenutzer.anmelden();
|
||||
return bibBenutzer.isAngemeldet();
|
||||
}
|
||||
|
||||
// Mediums Ausleihen
|
||||
public double mediumAusleihen(String bibKartenNummer, String eindeutigeKennung) throws Exception {
|
||||
public String mediumAusleihen(String bibKartenNummer, String eindeutigeKennung) throws Exception {
|
||||
Benutzer bibBenutzer = findeBenutzer(bibKartenNummer);
|
||||
|
||||
if (bibBenutzer instanceof Mitarbeiter)
|
||||
throw new Exception("Mitarbeiter können keine Mediums ausleihen!");
|
||||
|
||||
if (bibBenutzer.abmelden())
|
||||
if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer))
|
||||
throw new BenutzerNichtAngemeldetException("Sie müssen sich erst im System anmelden");
|
||||
|
||||
Ausleihe neueAusleihe = ausleiheSystem.mediumAusleihen(bibBenutzer, eindeutigeKennung);
|
||||
ausleihe.add(neueAusleihe);
|
||||
bibBenutzer.ausleihen(neueAusleihe);
|
||||
return bibBenutzer.getGebühren();
|
||||
return "Das Medium wurde erfolgreich ausgeliehen";
|
||||
}
|
||||
|
||||
// Mediums verlängern
|
||||
public boolean medienVerlängern(String eindeutigeKennung, String bibKartennummer) throws BenutzerNichtGefundenException, MediumNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartennummer);
|
||||
return ausleiheSystem.medienVerlängern(benutzer,eindeutigeKennung);
|
||||
}
|
||||
|
||||
// Mediums Rückgabe
|
||||
public ArrayList<String> medienRückgabe(String eindeutigeKennung) {
|
||||
return ausleiheSystem.mediumRückgabe(ausleihe, eindeutigeKennung);
|
||||
}
|
||||
|
||||
/* Admin Methoden:
|
||||
* 1. Anmeldung
|
||||
* 2. Gebühren des BibBenutzers anzeigen
|
||||
* 3. Gebühren verbuchen
|
||||
* 4. akteulle ausgelihene Mediums der Benutzer anzeigen
|
||||
*
|
||||
*/
|
||||
|
||||
// Anmeldung
|
||||
public boolean adminAnmelden(String bibKartennummerAdmin){
|
||||
this.bibAdmin.anmelden();
|
||||
return this.bibAdmin.isAngemeldet();
|
||||
}
|
||||
|
||||
|
||||
// aktuelle Gebühren der Benutzer
|
||||
public double getgbührenBenutzer(String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartennummer);
|
||||
return benutzer.getGebühren();
|
||||
}
|
||||
|
||||
// akteulle ausgelihene Mediums der Benutzer
|
||||
public ArrayList<String> ausgeliehenGegenstände(String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer bibUser = findeBenutzer(bibKartennummer);
|
||||
ArrayList<String> treffer = new ArrayList<>();
|
||||
for (Ausleihe ausleihe : bibUser.getAusgeliehenenMedien())
|
||||
treffer.add(ausleihe.toString());
|
||||
|
||||
return treffer;
|
||||
|
||||
}
|
||||
|
||||
public boolean gebührenVerbuchen(String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer bibUser = findeBenutzer(bibKartennummer);
|
||||
((Mitarbeiter)this.bibAdmin).gebührVerbuchen(bibUser);
|
||||
return bibUser.getGebühren() == 0.0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Simuliere Datum
|
||||
public double datumÄndern(String eindeutigeKennung,String ausleiheBeginn, String ausleiheEnde,String datum) throws MediumNichtGefundenException {
|
||||
return ausleiheSystem.SimulieremediumRückgabe(ausleihe, eindeutigeKennung, ausleiheBeginn, ausleiheEnde, datum);
|
||||
}
|
||||
|
||||
// jahresGebühren berechnen
|
||||
public double jahresGebührenBerechnen(String bibKartennummer, String datum) throws BenutzerNichtGefundenException {
|
||||
Benutzer benutzer = findeBenutzer(bibKartennummer);
|
||||
return benutzer.jahresgebühren(datum);
|
||||
}
|
||||
|
||||
|
||||
// Mediums Aufladen
|
||||
public void mediumsAufladen(String type, String ID, String title, int erscheinungsjahr, String ersteller,
|
||||
String verlängbar, int anzahl, int leihdauer) throws FalscheEingabeException {
|
||||
public void mediumsAufladen(String type, String ID, String title, int erscheinungsjahr,String ersteller,String verlängbar,int anzahl,int leihdauer) throws FalscheEingabeException {
|
||||
Mediumverwalter medium;
|
||||
boolean verlängerung = (verlängbar.equalsIgnoreCase("ja")) ? true : false;
|
||||
boolean verlängerung = (verlängbar.equalsIgnoreCase("ja")) ? true: false;
|
||||
switch (type) {
|
||||
case "Buch":
|
||||
medium = new Mediumverwalter(new Buch(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl,
|
||||
leihdauer);
|
||||
medium = new Mediumverwalter(new Buch(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer);
|
||||
break;
|
||||
|
||||
case "Cd":
|
||||
medium = new Mediumverwalter(new Cd(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl,
|
||||
leihdauer);
|
||||
medium = new Mediumverwalter(new Cd(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer);
|
||||
break;
|
||||
|
||||
case "Brettspiel":
|
||||
medium = new Mediumverwalter(new Brettspiel(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl,
|
||||
leihdauer);
|
||||
medium = new Mediumverwalter(new Brettspiel(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer);
|
||||
break;
|
||||
|
||||
case "Dvd":
|
||||
medium = new Mediumverwalter(new Dvd(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl,
|
||||
leihdauer);
|
||||
medium = new Mediumverwalter(new Dvd(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer);
|
||||
break;
|
||||
|
||||
case "Videospiel":
|
||||
medium = new Mediumverwalter(new Videospiel(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl,
|
||||
leihdauer);
|
||||
medium = new Mediumverwalter(new Videospiel(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new FalscheEingabeException("Falsch Eingabe");
|
||||
}
|
||||
|
||||
medien.put(ID, medium);
|
||||
String getMediumID = medium.getMedium().getID();
|
||||
medien.put(getMediumID, medium);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* => Hilfsmethoden
|
||||
*/
|
||||
|
||||
// Test Methode
|
||||
private void mediumsAufladen() {
|
||||
Mediumverwalter buch = new Mediumverwalter(new Buch("B001", "Effektives Java Programmieren", 2018, "Joshua Bloch"),true, 10, 28);
|
||||
medien.put(buch.getMedium().getID(), buch);
|
||||
|
@ -215,13 +158,15 @@ public class BibSystem {
|
|||
Mediumverwalter buchIStNichtAusgeliehen = new Mediumverwalter(new Buch("BG001", "Javascript lenren", 2018, "Joshua Bloch"),true, 10, 28);
|
||||
medien.put(buchIStNichtAusgeliehen.getMedium().getID(), buchIStNichtAusgeliehen);
|
||||
|
||||
Mediumverwalter Videospiel = new Mediumverwalter(new Videospiel("BG00122", "The Legend of Zelda: Breath of the Wild", 2017, "Nintendo Switch"),false, 2, 28);
|
||||
Mediumverwalter Videospiel = new Mediumverwalter(new Videospiel("BG00122", "The Legend of Zelda: Breath of the Wild", 2017, "Nintendo Switch"),true, 2, 28);
|
||||
medien.put(Videospiel.getMedium().getID(), Videospiel);
|
||||
}
|
||||
|
||||
private boolean checkIfUserImSystemAngemeldetIst(String bibKartenNummer) {
|
||||
return alleBibBenutzer.stream().anyMatch(user -> user.isAngemeldet());
|
||||
}
|
||||
|
||||
|
||||
public Benutzer findeBenutzer(String bibKartenNummer) throws BenutzerNichtGefundenException {
|
||||
private Benutzer findeBenutzer(String bibKartenNummer) throws BenutzerNichtGefundenException {
|
||||
return alleBibBenutzer.stream()
|
||||
.filter(k -> k.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer)).findFirst()
|
||||
.orElseThrow(() -> new BenutzerNichtGefundenException(
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
package domain.fassade;
|
||||
|
||||
import static org.junit.Assert.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.benutzer.Benutzer;
|
||||
import domain.exceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.exceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
class GebührenTest {
|
||||
|
||||
BibSystem fassade;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
fassade = new BibSystem();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGebühren() throws Exception {
|
||||
fassade.userRegistrieren("obai", "schüler", 15, "nein");
|
||||
fassade.userAnmelden("K1001");
|
||||
Benutzer user = fassade.findeBenutzer("K1001");
|
||||
double gebühren = fassade.jahresGebührenBerechnen("K1001", "2026-11-16");
|
||||
assertEquals(50.0, gebühren);
|
||||
assertTrue (user.getGebühren() == gebühren);
|
||||
|
||||
assertTrue(fassade.adminAnmelden("A1000"));
|
||||
assertTrue(fassade.getgbührenBenutzer("K1001") == 50.0);
|
||||
fassade.gebührenVerbuchen("K1001");
|
||||
assertTrue (user.getGebühren() == 0.0);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package domain.fassade;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class JahresGebührenTest {
|
||||
BibSystem fassade;
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
|
||||
fassade = new BibSystem();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFürKunde() throws Exception {
|
||||
fassade.userRegistrieren("obai", "schüler", 15, "nein");
|
||||
fassade.userAnmdelden("K1001");
|
||||
double gebühren = fassade.simuliereJahresGebührenBerechnen("K1001", "2020-11-15");
|
||||
assertEquals(100.0, gebühren);
|
||||
assertTrue(fassade.gebührenBezahlen(gebühren, "K1001"));
|
||||
|
||||
}
|
||||
|
||||
@Disabled
|
||||
void testFürMitarbeiter() throws Exception {
|
||||
fassade.userRegistrieren("obai", "mitarbeiter", 15, "ja");
|
||||
fassade.userAnmdelden("A1000");
|
||||
double gebühren = fassade.simuliereJahresGebührenBerechnen("A1000","2020-11-15");
|
||||
assertEquals(200.0,gebühren);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
package domain.fassade;
|
||||
|
||||
import domain.benutzer.*;
|
||||
import domain.exceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
public class Registieren {
|
||||
|
||||
public static Benutzer userRegistrieren(String name, String type, int alter,String istAdmin) throws FalscheEingabeException {
|
||||
|
||||
Benutzer benutzer;
|
||||
Ausweis ausweis;
|
||||
|
||||
if (!name.isEmpty()) {
|
||||
boolean admin = (istAdmin.equalsIgnoreCase("Ja"))? true : false;
|
||||
if ((type.equalsIgnoreCase("schüler") || type.equalsIgnoreCase("student"))) {
|
||||
ausweis = new Ausweis("K");
|
||||
benutzer = new Student(ausweis,name,alter,admin);
|
||||
}
|
||||
else if (type.equalsIgnoreCase("erwachsener")) {
|
||||
ausweis = new Ausweis("K");
|
||||
benutzer = new Erwachsener(ausweis,name,alter,admin);
|
||||
}
|
||||
else if (type.equalsIgnoreCase("mitarbeiter")) {
|
||||
ausweis = new Ausweis("A");
|
||||
benutzer = new Mitarbeiter(ausweis,name,alter,admin);
|
||||
}
|
||||
else
|
||||
throw new FalscheEingabeException("Falsche Eingabe");
|
||||
|
||||
}
|
||||
else
|
||||
throw new FalscheEingabeException("Falsche Eingabe");
|
||||
|
||||
return benutzer;
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package domain.fassade;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.benutzer.Benutzer;
|
||||
import domain.benutzer.Erwachsener;
|
||||
import domain.benutzer.Mitarbeiter;
|
||||
import domain.benutzer.Student;
|
||||
import domain.exceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
class RegistrierenTest {
|
||||
private BibSystem bib;
|
||||
|
||||
@BeforeEach
|
||||
void erstelleObjekt() {
|
||||
this.bib = new BibSystem();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testKunde() throws FalscheEingabeException {
|
||||
|
||||
Benutzer benutzer = Registieren.userRegistrieren("obai", "student", 15, "nein");
|
||||
// True ist
|
||||
assertTrue(benutzer instanceof Student);
|
||||
String bibKartenNummer = "K1000";
|
||||
assertTrue(benutzer.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer));
|
||||
|
||||
|
||||
Benutzer erwachsener = Registieren.userRegistrieren("obai", "erwachsener", 15, "nein");
|
||||
// True
|
||||
assertTrue(erwachsener instanceof Erwachsener);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -6,8 +6,8 @@ import static org.junit.jupiter.api.Assertions.*;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.exceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.exceptionsKlassen.FalscheEingabeException;
|
||||
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
class UserAnmeldenTest {
|
||||
|
||||
|
@ -22,14 +22,14 @@ class UserAnmeldenTest {
|
|||
|
||||
// True => User ist Angemeldet
|
||||
fassade.userRegistrieren("obai", "Student", 15, "nein");
|
||||
fassade.userAnmelden("K1001");
|
||||
assertTrue(fassade.userAnmdelden("K1001"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testBenutzerIstNichtImSystem() throws FalscheEingabeException, BenutzerNichtGefundenException {
|
||||
|
||||
// True, da Benutzer nicht im System ist
|
||||
assertThrows( BenutzerNichtGefundenException.class, () -> fassade.userAnmelden("K1001") );
|
||||
assertThrows( BenutzerNichtGefundenException.class, () -> fassade.userAnmdelden("K1001") );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package main;
|
||||
|
||||
import domain.exceptionsKlassen.*;
|
||||
import domain.ExceptionsKlassen.*;
|
||||
import tui.Tui;
|
||||
|
||||
public class Main {
|
||||
|
|
|
@ -3,9 +3,9 @@ package tui;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
import domain.exceptionsKlassen.*;
|
||||
import MedienHinzüfugen.MedienHinzufügen;
|
||||
import domain.ExceptionsKlassen.*;
|
||||
import domain.fassade.BibSystem;
|
||||
import medienHinzüfugen.MedienHinzufügen;
|
||||
|
||||
public class Tui {
|
||||
private BibSystem fassade;
|
||||
|
@ -59,9 +59,6 @@ public class Tui {
|
|||
case "8":
|
||||
verbucheGebührenProzess();
|
||||
break;
|
||||
case "9":
|
||||
datumÄndern();
|
||||
break;
|
||||
case "0":
|
||||
programmIstAktiv = false;
|
||||
System.out.println("Programm beendet.");
|
||||
|
@ -85,12 +82,9 @@ public class Tui {
|
|||
System.out.println("6. Ausgeliehene Gegenstände anzeigen");
|
||||
System.out.println("7. Leihfrist verlängern");
|
||||
System.out.println("8. Gebühren verbuchen (Admin)");
|
||||
System.out.println("9. Datum ändern");
|
||||
System.out.println("0. Programm beenden");
|
||||
}
|
||||
|
||||
|
||||
// Aktion: 1
|
||||
private void registrierenProzess() {
|
||||
System.out.println("<< Registrierung >>");
|
||||
|
||||
|
@ -114,7 +108,6 @@ public class Tui {
|
|||
}
|
||||
}
|
||||
|
||||
// Aktion: 2
|
||||
private void anmeldenProzess() {
|
||||
System.out.println("<< Anmeldung >>");
|
||||
|
||||
|
@ -122,38 +115,29 @@ public class Tui {
|
|||
String kartennummer = eingabe.nextLine();
|
||||
|
||||
try {
|
||||
{
|
||||
double gebühren = fassade.userAnmelden(kartennummer);
|
||||
System.out.println("Erfolgreich angemeldet.\n" + "Gebühren= " + gebühren);
|
||||
if (fassade.userAnmdelden(kartennummer)) {
|
||||
System.out.println("Erfolgreich angemeldet.");
|
||||
}
|
||||
} catch (BenutzerNichtGefundenException e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Aktion: 3
|
||||
private void mediumDurchsuchenProzess() {
|
||||
System.out.println("<< Medien durchsuchen >>");
|
||||
System.out.print("Suchkriterium (z. B. Titel, Medienart, Ausgeliehen, nicht Ausgeliehen,Medien die bald wieder verügbar sind (ja/nein)): ");
|
||||
System.out.print("Suchkriterium (z. B. Titel, Medienart): ");
|
||||
String auswahl = eingabe.nextLine();
|
||||
|
||||
System.out.print("BibKartennummer: ");
|
||||
String bibKartennummer = eingabe.nextLine();
|
||||
|
||||
try {
|
||||
if (auswahl.equalsIgnoreCase("Medienart")) {
|
||||
System.out.println("Bücher, Brettspiele, Dvds, Cds, Videospiele");
|
||||
auswahl = eingabe.nextLine();
|
||||
}
|
||||
|
||||
ArrayList<String> treffer = fassade.mediumDurchsuchen(auswahl, bibKartennummer);
|
||||
treffer.forEach(System.out::println);
|
||||
fassade.mediumDurchsuchen(auswahl, bibKartennummer);
|
||||
} catch (Exception e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Aktion: 4
|
||||
private void mediumAusleihenProzess() {
|
||||
System.out.println("<< Medium ausleihen >>");
|
||||
|
||||
|
@ -164,14 +148,12 @@ public class Tui {
|
|||
String eindeutigeKennung = eingabe.nextLine();
|
||||
|
||||
try {
|
||||
double gebühren = fassade.mediumAusleihen(kartennummer, eindeutigeKennung);
|
||||
System.out.println("Akteulle Gebühren= " + gebühren);
|
||||
System.out.println(fassade.mediumAusleihen(kartennummer, eindeutigeKennung));
|
||||
} catch (Exception e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Aktion: 5
|
||||
private void mediumsRückgabeProzess() {
|
||||
System.out.println("<< Medium zurückgeben >>");
|
||||
|
||||
|
@ -181,6 +163,7 @@ public class Tui {
|
|||
try {
|
||||
ArrayList<String> ausgelieheneMedien = fassade.medienRückgabe(eindeutigeKennung);
|
||||
System.out.println("Medium erfolgreich zurückgegeben.");
|
||||
|
||||
if (ausgelieheneMedien.isEmpty())
|
||||
System.out.println("Sie haben keine weiteren ausgeliehenen Medien.");
|
||||
else {
|
||||
|
@ -192,25 +175,6 @@ public class Tui {
|
|||
}
|
||||
}
|
||||
|
||||
// Aktion: 6
|
||||
private void zeigeAusgelieheneGegenstände() {
|
||||
System.out.println("<< Ausgeliehene Gegenstände anzeigen >>");
|
||||
|
||||
System.out.print("BibKartennummer: ");
|
||||
String bibKartennummer = eingabe.nextLine();
|
||||
|
||||
try {
|
||||
ArrayList<String> treffer = fassade.ausgeliehenGegenstände(bibKartennummer);
|
||||
if (treffer.size() == 0)
|
||||
System.out.println("Sie haben keine ausgeliehen Medien");
|
||||
else
|
||||
treffer.forEach(System.out::println);
|
||||
} catch (Exception e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Aktion: 7
|
||||
private void mediumsVerlängernProzess() {
|
||||
System.out.println("<< Leihfrist verlängern >>");
|
||||
|
||||
|
@ -228,84 +192,31 @@ public class Tui {
|
|||
}
|
||||
}
|
||||
|
||||
//Aktion: 8
|
||||
private void verbucheGebührenProzess() {
|
||||
System.out.println("<< Gebühren verbuchen >>");
|
||||
private void zeigeAusgelieheneGegenstände() {
|
||||
System.out.println("<< Ausgeliehene Gegenstände anzeigen >>");
|
||||
|
||||
System.out.print("BibKartennummer des Admins: ");
|
||||
System.out.print("BibKartennummer: ");
|
||||
String bibKartennummer = eingabe.nextLine();
|
||||
|
||||
try {
|
||||
if (fassade.adminAnmelden(bibKartennummer)) {
|
||||
System.out.println("Erfolgreich Angemeldt");
|
||||
System.out.println("Welche Aktion: ");
|
||||
System.out.println("1.Betrag verbuchen");
|
||||
System.out.println("2.ausgeliehene Mediums anzeigen");
|
||||
System.out.println("3.aktuelles Betrag anzeigen");
|
||||
System.out.print(">");
|
||||
String auswahl = eingabe.nextLine();
|
||||
String userID = eingabe.nextLine();
|
||||
|
||||
switch (auswahl) {
|
||||
case "1":
|
||||
System.out.println(fassade.gebührenVerbuchen(userID));
|
||||
break;
|
||||
|
||||
case "2":
|
||||
ArrayList<String> treffer = fassade.ausgeliehenGegenstände(userID);
|
||||
treffer.forEach(System.out::println);
|
||||
break;
|
||||
|
||||
case "3":
|
||||
System.out.println(fassade.getgbührenBenutzer(userID));
|
||||
break;
|
||||
default:
|
||||
System.out.println("Falsche Eingabe");
|
||||
}
|
||||
}
|
||||
|
||||
// fassade.zeigeAusgelieheneGegenstände(bibKartennummer);
|
||||
} catch (Exception e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Aktion 9
|
||||
private void datumÄndern() {
|
||||
System.out.println("1.Jahresgebühren");
|
||||
System.out.println("2.Ausleihefristen");
|
||||
String auswahl = eingabe.nextLine();
|
||||
private void verbucheGebührenProzess() {
|
||||
System.out.println("<< Gebühren verbuchen >>");
|
||||
|
||||
switch (auswahl) {
|
||||
case "1":
|
||||
try {
|
||||
System.out.println("Bibkartennummer:");
|
||||
String bibkartennummer = eingabe.nextLine();
|
||||
System.out.println("Datum: ");
|
||||
String datum = eingabe.nextLine();
|
||||
fassade.jahresGebührenBerechnen(bibkartennummer, datum);
|
||||
} catch (BenutzerNichtGefundenException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
System.out.print("BibKartennummer des Nutzers: ");
|
||||
String bibKartennummer = eingabe.nextLine();
|
||||
|
||||
try {
|
||||
System.out.println("Bibkartennummer:");
|
||||
String bibkartennummer = eingabe.nextLine();
|
||||
System.out.println("AusleihBeginn: ");
|
||||
String ausleihbeginn = eingabe.nextLine();
|
||||
System.out.println("AusleihEnde: ");
|
||||
String ausleihEnde = eingabe.nextLine();
|
||||
System.out.println("Datum vom heute: ");
|
||||
String heutigesDatum = eingabe.nextLine();
|
||||
System.out.println("Medium ID: ");
|
||||
String mediumID = eingabe.nextLine();
|
||||
fassade.datumÄndern(mediumID, ausleihEnde, ausleihEnde, heutigesDatum);
|
||||
} catch (MediumNichtGefundenException e) {
|
||||
// fassade.verbucheGebühren(bibKartennummer);
|
||||
System.out.println("Gebühren erfolgreich verbucht.");
|
||||
} catch (Exception e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|