<mxfile host="65bd71144e">
    <diagram id="haao2wCdq6AVI9-kNBxP" name="第 1 页">
        <mxGraphModel dx="1850" dy="611" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" background="none" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="15" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="node4" target="node7" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="node4" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Elevator&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- openTime: long&lt;br/&gt;- scheduler: Scheduler&lt;br/&gt;- direction: boolean&lt;br/&gt;- currentNum: int&lt;br/&gt;- moveTime: long&lt;br/&gt;- closeTime: long&lt;br/&gt;- passengerMap: HashMap&amp;lt;Integer, ArrayList&amp;lt;PersonRequest&amp;gt;&amp;gt;&lt;br/&gt;- requestTable: RequestTable&lt;br/&gt;- elevatorId: int&lt;br/&gt;- maxCapacity: int&lt;br/&gt;- currentFloor: int&lt;br/&gt;- totalFloors: int&lt;br/&gt;- availableFloors: ArrayList&amp;lt;Integer&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- isEmpty(): boolean&lt;br/&gt;+ run(): void&lt;br/&gt;- haveSpace(): boolean&lt;br/&gt;- personIn(PersonRequest): void&lt;br/&gt;- personOut(PersonRequest): void&lt;br/&gt;- move(): void&lt;br/&gt;- openAndClose(): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="370" y="490" width="441" height="492" as="geometry"/>
                </mxCell>
                <mxCell id="12" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.548;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="node0" target="node6" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="node0" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;InputThread&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- requestTables: HashMap&amp;lt;Integer, RequestTable&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ run(): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="-560" y="600" width="353" height="116" as="geometry"/>
                </mxCell>
                <mxCell id="node5" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;MainClass&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ main(String[]): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="-460" y="464" width="168" height="58" as="geometry"/>
                </mxCell>
                <mxCell id="node1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;i&gt;&amp;lt;&amp;lt;enumeration&amp;gt;&amp;gt;&lt;/i&gt;&lt;br/&gt;&lt;b&gt;Order&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ WAIT: &lt;br/&gt;+ OPEN: &lt;br/&gt;+ REVERSE: &lt;br/&gt;+ OVER: &lt;br/&gt;+ MOVE: &lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ valueOf(String): Order&lt;br/&gt;+ values(): Order[]&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="-270" y="250" width="182" height="180" as="geometry"/>
                </mxCell>
                <mxCell id="node2" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;OutputHandler&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ arrive(int, int): void&lt;br/&gt;+ out(int, int, int): void&lt;br/&gt;+ close(int, int): void&lt;br/&gt;+ open(int, int): void&lt;br/&gt;+ in(int, int, int): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="1450" y="420" width="176" height="146" as="geometry"/>
                </mxCell>
                <mxCell id="16" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.001;entryY=0.316;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="node6" target="node4" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="node6" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;RequestTable&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- isOver: boolean&lt;br/&gt;- MAX_FLOOR: int&lt;br/&gt;- requestMap: HashMap&amp;lt;Integer, ArrayList&amp;lt;PersonRequest&amp;gt;&amp;gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ isEmpty(): boolean&lt;br/&gt;+ addRequest(PersonRequest): void&lt;br/&gt;+ deleteRequest(int, boolean, int): ArrayList&amp;lt;PersonRequest&amp;gt;&lt;br/&gt;+ getRequestMap(): HashMap&amp;lt;Integer, ArrayList&amp;lt;PersonRequest&amp;gt;&amp;gt;&lt;br/&gt;+ setOver(boolean): void&lt;br/&gt;+ isOver(): boolean&lt;br/&gt;+ waitRequest(): void&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="-150" y="500" width="457" height="290" as="geometry"/>
                </mxCell>
                <mxCell id="17" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="node7" target="node8" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="node7" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Scheduler&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- requestTable: RequestTable&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;- hasReqAhead(int, boolean): boolean&lt;br/&gt;- canOpenForOut(int, HashMap&amp;lt;Integer, ArrayList&amp;lt;PersonRequest&amp;gt;&amp;gt;): boolean&lt;br/&gt;- canOpenForIn(int, boolean, boolean): boolean&lt;br/&gt;+ getOrder(int, int, boolean, boolean, HashMap&amp;lt;Integer, ArrayList&amp;lt;PersonRequest&amp;gt;&amp;gt;): Order&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="330" y="273" width="518.5" height="147" as="geometry"/>
                </mxCell>
                <mxCell id="node8" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Utils&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;/&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt;+ sameDirection(int, int, boolean): boolean&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Helvetica;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;" parent="1" vertex="1">
                    <mxGeometry x="-20" y="317.5" width="302" height="58" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>