-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnmap-scanner.drawio
More file actions
227 lines (227 loc) · 28.7 KB
/
Copy pathnmap-scanner.drawio
File metadata and controls
227 lines (227 loc) · 28.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<mxfile host="www.draw.io" modified="2020-01-06T21:46:14.046Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0" etag="TPiVBN2WrDfe1TK1HhI6" version="12.4.9" type="github">
<diagram id="Y3RxO3wo1RpEfnBcbCYj" name="Page-1">
<mxGraphModel dx="2272" dy="1774" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="76jtfl0mmbRfyjx8TMZe-75" value="com.sergenikov.crowsnest.scanprovider" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;align=left;verticalAlign=top;fillColor=#ffffff;gradientColor=none;strokeColor=#000000;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="-510" y="1250" width="55" height="600" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-11" value="com.sergenikov.crowsnest.nmap" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;verticalAlign=top;align=left;" parent="1" vertex="1">
<mxGeometry x="-510" y="510" width="30" height="590" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-10" value="com.sergenikov.crowsnest.externalapplications" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;verticalAlign=top;align=left;" parent="1" vertex="1">
<mxGeometry x="-420" y="-50" width="1040" height="500" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-15" value="depends" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="wkFrcLbjLtGa8KK6znvB-7" target="wkFrcLbjLtGa8KK6znvB-16" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-7" value="<<interface>>
ExternalAppProvider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=41;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="-90" y="140" width="330" height="75" as="geometry">
<mxRectangle x="40" y="60" width="150" height="30" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-9" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="wkFrcLbjLtGa8KK6znvB-7" vertex="1">
<mxGeometry y="41" width="330" height="8" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-10" value="+ execute(String binaryFullPath, String[] args): 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;" parent="wkFrcLbjLtGa8KK6znvB-7" vertex="1">
<mxGeometry y="49" width="330" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-22" value="extends" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=block;endFill=1;" parent="1" source="wkFrcLbjLtGa8KK6znvB-16" target="76jtfl0mmbRfyjx8TMZe-21" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-16" value="ExternalAppProviderException" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="-20" y="58" width="190" height="52" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-10" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endArrow=block;endFill=1;" edge="1" parent="1" source="wkFrcLbjLtGa8KK6znvB-21" target="76jtfl0mmbRfyjx8TMZe-61">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-21" value="RuntimeExecExternalAppProvider" 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;" parent="1" vertex="1">
<mxGeometry x="-290" y="2026" width="290" height="60" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-23" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="wkFrcLbjLtGa8KK6znvB-21" vertex="1">
<mxGeometry y="26" width="290" height="8" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-24" value="+ performScan(ScanRequest): ScanOutput" 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;" parent="wkFrcLbjLtGa8KK6znvB-21" vertex="1">
<mxGeometry y="34" width="290" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-82" value="depends" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=1;startArrow=openThin;startFill=0;" parent="1" source="wkFrcLbjLtGa8KK6znvB-32" target="wkFrcLbjLtGa8KK6znvB-21" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-32" value="java.lang.Runtime" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="-190" y="2120" width="190" height="52" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-41" value="<<interface>>
NmapScanProvider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=41;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="240" y="1070" width="410" height="110" as="geometry">
<mxRectangle x="40" y="60" width="150" height="30" as="alternateBounds"/>
</mxGeometry>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-42" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="wkFrcLbjLtGa8KK6znvB-41" vertex="1">
<mxGeometry y="41" width="410" height="23" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-43" value="+ scan(NmapScan scanDetails, String host): String
- scan(String fullBinaryPath, NmapScan scanDetails, String host): 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;" parent="wkFrcLbjLtGa8KK6znvB-41" vertex="1">
<mxGeometry y="64" width="410" height="46" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-44" value="DefaultNmapProvider" 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;" parent="1" vertex="1">
<mxGeometry x="290" y="710" width="290" height="60" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-45" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="wkFrcLbjLtGa8KK6znvB-44" vertex="1">
<mxGeometry y="26" width="290" height="8" as="geometry"/>
</mxCell>
<mxCell id="wkFrcLbjLtGa8KK6znvB-46" value="+ scan(NmapScan scanDetails, String host): 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;" parent="wkFrcLbjLtGa8KK6znvB-44" vertex="1">
<mxGeometry y="34" width="290" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-1" value="ParallelNmapProvider" 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;" parent="1" vertex="1">
<mxGeometry x="290" y="792.5" width="290" height="60" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-2" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-1" vertex="1">
<mxGeometry y="26" width="290" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-3" value="+ scan(NmapScan scanDetails, String host): 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;" parent="76jtfl0mmbRfyjx8TMZe-1" vertex="1">
<mxGeometry y="34" width="290" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-4" value="QueuedNmapProvider" 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;" parent="1" vertex="1">
<mxGeometry x="290" y="872.5" width="290" height="60" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-5" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-4" vertex="1">
<mxGeometry y="26" width="290" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-6" value="+ scan(NmapScan scanDetails, String host): 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;" parent="76jtfl0mmbRfyjx8TMZe-4" vertex="1">
<mxGeometry y="34" width="290" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-7" value="PooledNmapProvider" 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;" parent="1" vertex="1">
<mxGeometry x="290" y="952.5" width="290" height="60" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-8" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-7" vertex="1">
<mxGeometry y="26" width="290" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-9" value="+ scan(NmapScan scanDetails, String host): 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;" parent="76jtfl0mmbRfyjx8TMZe-7" vertex="1">
<mxGeometry y="34" width="290" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-79" value="depends" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.562;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endArrow=openThin;endFill=0;strokeWidth=1;exitPerimeter=0;" parent="1" source="76jtfl0mmbRfyjx8TMZe-14" target="76jtfl0mmbRfyjx8TMZe-18" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-9" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endArrow=block;endFill=1;" edge="1" parent="1" source="76jtfl0mmbRfyjx8TMZe-12" target="76jtfl0mmbRfyjx8TMZe-61">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-12" value="ProcessBuilderExternalAppProvider" 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;" parent="1" vertex="1">
<mxGeometry x="-80" y="1940" width="290" height="60" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-13" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-12" vertex="1">
<mxGeometry y="26" width="290" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-14" value="+ performScan(ScanRequest): ScanOutput" 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;" parent="76jtfl0mmbRfyjx8TMZe-12" vertex="1">
<mxGeometry y="34" width="290" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-18" value="java.lang.ProcessBuilder" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="20" y="2030" width="190" height="52" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-21" value="RuntimeException" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="-20" y="-20" width="190" height="52" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-23" value="NmapScanContext" 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;" parent="1" vertex="1">
<mxGeometry x="-450" y="550" width="320" height="190" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-24" value="- host: java.net.InetAddress
- hostAsString: String
- configuration: com.sergenikov.nmap.ScanConfiguration

" 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;" parent="76jtfl0mmbRfyjx8TMZe-23" vertex="1">
<mxGeometry y="26" width="320" height="74" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-25" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-23" vertex="1">
<mxGeometry y="100" width="320" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-26" value="+ getHostname(): String
+ getHostIP(): String
+ getHost(): java.net.InetAddress
+ getScanConfiguration(): ScanConfiguration
" 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;" parent="76jtfl0mmbRfyjx8TMZe-23" vertex="1">
<mxGeometry y="108" width="320" height="82" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-27" value="ScanConfiguration" 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;" parent="1" vertex="1">
<mxGeometry x="-100" y="570" width="250" height="34" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-29" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-27" vertex="1">
<mxGeometry y="26" width="250" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endArrow=openThin;endFill=0;" parent="1" source="76jtfl0mmbRfyjx8TMZe-24" target="76jtfl0mmbRfyjx8TMZe-27" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-68" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=openThin;endFill=0;strokeWidth=1;" parent="1" source="76jtfl0mmbRfyjx8TMZe-44" target="76jtfl0mmbRfyjx8TMZe-46" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-69" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=openThin;endFill=0;strokeWidth=1;" parent="1" source="76jtfl0mmbRfyjx8TMZe-44" target="76jtfl0mmbRfyjx8TMZe-50" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-95" value="depends" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.468;entryY=1.022;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=open;startFill=0;endArrow=none;endFill=0;strokeWidth=1;" parent="1" source="76jtfl0mmbRfyjx8TMZe-44" target="wkFrcLbjLtGa8KK6znvB-43" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-44" value="<p style="margin: 0px ; margin-top: 4px ; text-align: center"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>ScanProvider</b></p><hr size="1"><p style="margin: 0px ; margin-left: 4px"><br></p><hr size="1"><p style="margin: 0px ; margin-left: 4px">+ performScan(ScanRequest): ScanOutput<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="-50" y="1360" width="280" height="100" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-45" value="ScanRequest" 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;" parent="1" vertex="1">
<mxGeometry x="-440" y="1320" width="230" height="110" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-46" value="- body: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;" parent="76jtfl0mmbRfyjx8TMZe-45" vertex="1">
<mxGeometry y="26" width="230" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-47" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-45" vertex="1">
<mxGeometry y="52" width="230" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-48" value="+ getRequestBody():String
+ setRequestBody(String): 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;" parent="76jtfl0mmbRfyjx8TMZe-45" vertex="1">
<mxGeometry y="60" width="230" height="50" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-49" value="ScanResponse" 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;" parent="1" vertex="1">
<mxGeometry x="-440" y="1440" width="230" height="110" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-50" value="+ body:String" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-49" vertex="1">
<mxGeometry y="26" width="230" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-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;" parent="76jtfl0mmbRfyjx8TMZe-49" vertex="1">
<mxGeometry y="52" width="230" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-52" value="+ getResponseBody(): String
+ setResponseBody(String): 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;" parent="76jtfl0mmbRfyjx8TMZe-49" vertex="1">
<mxGeometry y="60" width="230" height="50" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-7" value="extends" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endArrow=block;endFill=1;" edge="1" parent="1" source="76jtfl0mmbRfyjx8TMZe-58" target="BNnFlW0df30Jd2aM4DEa-4">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-58" value="<<abstract>>
BinaryWithArgsScanProvider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=43;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="-320" y="1680" width="320" height="155" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-59" value="- binaryLocation: 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;" parent="76jtfl0mmbRfyjx8TMZe-58" vertex="1">
<mxGeometry y="43" width="320" height="44" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-60" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-58" vertex="1">
<mxGeometry y="87" width="320" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-61" value="+ ExecutableBasedScanProvider(String binaryLocation)
+ performScan(ScanRequest): ScanOutput" 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;" parent="76jtfl0mmbRfyjx8TMZe-58" vertex="1">
<mxGeometry y="95" width="320" height="60" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-8" value="extends" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.794;entryY=0.99;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=block;endFill=1;" edge="1" parent="1" source="76jtfl0mmbRfyjx8TMZe-62" target="BNnFlW0df30Jd2aM4DEa-4">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-62" value="APIBasedScanProvider" 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;" parent="1" vertex="1">
<mxGeometry x="290" y="1690" width="280" height="120" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-63" value="+ apiClient: ApiClient" 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;" parent="76jtfl0mmbRfyjx8TMZe-62" vertex="1">
<mxGeometry y="26" width="280" height="26" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-64" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="76jtfl0mmbRfyjx8TMZe-62" vertex="1">
<mxGeometry y="52" width="280" height="8" as="geometry"/>
</mxCell>
<mxCell id="76jtfl0mmbRfyjx8TMZe-65" value="+ APIBasedScanProvider(ApiClient apiClient)
+ performScan(ScanRequest): ScanOutput" 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;" parent="76jtfl0mmbRfyjx8TMZe-62" vertex="1">
<mxGeometry y="60" width="280" height="60" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-11" value="implements" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;startArrow=none;startFill=0;endArrow=block;endFill=0;" edge="1" parent="1" source="BNnFlW0df30Jd2aM4DEa-1" target="76jtfl0mmbRfyjx8TMZe-44">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-1" value="<<abstract>>
DefaultScanProvider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=43;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="1">
<mxGeometry x="-70" y="1505" width="320" height="120" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-2" value="- scanProviders: List<ScanProvider>" 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;" vertex="1" parent="BNnFlW0df30Jd2aM4DEa-1">
<mxGeometry y="43" width="320" height="27" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="BNnFlW0df30Jd2aM4DEa-1">
<mxGeometry y="70" width="320" height="8" as="geometry"/>
</mxCell>
<mxCell id="BNnFlW0df30Jd2aM4DEa-4" value="+ ExecutableBasedScanProvider(List<ScanProvider>)
+ performScan(ScanRequest): ScanOutput" 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;" vertex="1" parent="BNnFlW0df30Jd2aM4DEa-1">
<mxGeometry y="78" width="320" height="42" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>