Skip to content

Commit d39a468

Browse files
committed
AsynchronousFileChannel: 类图
1 parent 2519bbf commit d39a468

File tree

4 files changed

+365
-0
lines changed

4 files changed

+365
-0
lines changed

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,5 @@ JDK源码阅读笔记
4646
[Reflection](https://github.com/seaswalker/JDK/blob/master/note/Reflection/reflection.md)
4747

4848
[ScheduledThreadPool](https://github.com/seaswalker/JDK/blob/master/note/ScheduledThreadPool/scheduledthreadpool.md)
49+
50+
[AsynchronousFileChannel](https://github.com/seaswalker/JDK/blob/master/note/AsynchronousFileChannel/asynchronousfilechannel.md)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
异步的文件通道,FileChannel属于"同步非阻塞",AsynchronousFileChannel才是真正的异步。
2+
3+
![AsynchronousFileChannel](images/AsynchronousFileChannel.jpg)
4+
5+
从主要方法read/write的返回值为Future可以看出其"异步"的端倪。
6+
7+
# open
8+
9+
```java
10+
public static AsynchronousFileChannel open(Path file,
11+
Set<? extends OpenOption> options,
12+
ExecutorService executor,
13+
FileAttribute<?>... attrs) {
14+
FileSystemProvider provider = file.getFileSystem().provider();
15+
return provider.newAsynchronousFileChannel(file, options, executor, attrs);
16+
}
17+
```
18+
19+
另外一个重载的简化方法声明如下:
20+
21+
```java
22+
public static AsynchronousFileChannel open(Path file, OpenOption... options) {}
23+
```
24+
25+
所做的处理便是将可变参数options手动转为Set,executor为null,文件属性为NO_ATTRIBUTES,其实就是一个空的数组。
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,338 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<XPD:PROJECT xmlns:XPD="http://www.staruml.com" version="1">
3+
<XPD:HEADER>
4+
<XPD:SUBUNITS>
5+
</XPD:SUBUNITS>
6+
<XPD:PROFILES>
7+
</XPD:PROFILES>
8+
</XPD:HEADER>
9+
<XPD:BODY>
10+
<XPD:OBJ name="DocumentElement" type="UMLProject" guid="KAf3pMz2XEGEpDjMBz+zqgAA">
11+
<XPD:ATTR name="Title" type="string">AsynchronousFileChannel</XPD:ATTR>
12+
<XPD:ATTR name="#OwnedElements" type="integer">1</XPD:ATTR>
13+
<XPD:OBJ name="OwnedElements[0]" type="UMLModel" guid="GYF7yhhg70KyRIBvCjnIfQAA">
14+
<XPD:ATTR name="Name" type="string">classes</XPD:ATTR>
15+
<XPD:REF name="Namespace">KAf3pMz2XEGEpDjMBz+zqgAA</XPD:REF>
16+
<XPD:ATTR name="#OwnedDiagrams" type="integer">1</XPD:ATTR>
17+
<XPD:OBJ name="OwnedDiagrams[0]" type="UMLClassDiagram" guid="Zx3eTsYyGU+Csk+lP1Xm4wAA">
18+
<XPD:ATTR name="Name" type="string">AsynchronousFileChannel</XPD:ATTR>
19+
<XPD:REF name="DiagramOwner">GYF7yhhg70KyRIBvCjnIfQAA</XPD:REF>
20+
<XPD:OBJ name="DiagramView" type="UMLClassDiagramView" guid="f7PlNZBTxECuk05rycGn8gAA">
21+
<XPD:REF name="Diagram">Zx3eTsYyGU+Csk+lP1Xm4wAA</XPD:REF>
22+
<XPD:ATTR name="#OwnedViews" type="integer">5</XPD:ATTR>
23+
<XPD:OBJ name="OwnedViews[0]" type="UMLInterfaceView" guid="RtzHBytb6UWDZDq3mvlDHgAA">
24+
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
25+
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
26+
<XPD:ATTR name="Left" type="integer">593</XPD:ATTR>
27+
<XPD:ATTR name="Top" type="integer">72</XPD:ATTR>
28+
<XPD:ATTR name="Width" type="integer">101</XPD:ATTR>
29+
<XPD:ATTR name="Height" type="integer">45</XPD:ATTR>
30+
<XPD:ATTR name="StereotypeDisplay" type="UMLStereotypeDisplayKind">sdkNone</XPD:ATTR>
31+
<XPD:REF name="Model">J2Zgw2+gzk6wu3NrCnuk5AAA</XPD:REF>
32+
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="Us+CCS+QlUak8TlIXlaZfgAA">
33+
<XPD:OBJ name="NameLabel" type="LabelView" guid="P9VnVtJ2MEmyolQ77DK2sQAA">
34+
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
35+
<XPD:ATTR name="Text" type="string">Channel</XPD:ATTR>
36+
</XPD:OBJ>
37+
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="4yCOVSAWkEiphD82es90QgAA">
38+
<XPD:ATTR name="Text" type="string">&lt;&lt;interface&gt;&gt;</XPD:ATTR>
39+
</XPD:OBJ>
40+
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="KejnwX1PZEq/r6U+3gXuzgAA">
41+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
42+
</XPD:OBJ>
43+
</XPD:OBJ>
44+
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="W5W3LKzu8UunMdbJqxyGTwAA">
45+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
46+
<XPD:REF name="Model">J2Zgw2+gzk6wu3NrCnuk5AAA</XPD:REF>
47+
</XPD:OBJ>
48+
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="00eQy98F4EmI1HHxIr2x+AAA">
49+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
50+
<XPD:REF name="Model">J2Zgw2+gzk6wu3NrCnuk5AAA</XPD:REF>
51+
</XPD:OBJ>
52+
</XPD:OBJ>
53+
<XPD:OBJ name="OwnedViews[1]" type="UMLInterfaceView" guid="I/tXRFeBikiHksdIpLGSBgAA">
54+
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
55+
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
56+
<XPD:ATTR name="Left" type="integer">576</XPD:ATTR>
57+
<XPD:ATTR name="Top" type="integer">165</XPD:ATTR>
58+
<XPD:ATTR name="Width" type="integer">135</XPD:ATTR>
59+
<XPD:ATTR name="Height" type="integer">59</XPD:ATTR>
60+
<XPD:ATTR name="StereotypeDisplay" type="UMLStereotypeDisplayKind">sdkNone</XPD:ATTR>
61+
<XPD:REF name="Model">DOQBtnEXQkaoYed/LS2sZwAA</XPD:REF>
62+
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="05NUYh995kmiJXBlbXkBKwAA">
63+
<XPD:OBJ name="NameLabel" type="LabelView" guid="fGoaBv/vt0iN0/JMt38lQwAA">
64+
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
65+
<XPD:ATTR name="Text" type="string">AsynchronousChannel</XPD:ATTR>
66+
</XPD:OBJ>
67+
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="8ydi3PEK+kiXqhw+rJxXVQAA">
68+
<XPD:ATTR name="Text" type="string">&lt;&lt;interface&gt;&gt;</XPD:ATTR>
69+
</XPD:OBJ>
70+
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="8gESRH9MbUqwB/1wIb7qqQAA">
71+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
72+
</XPD:OBJ>
73+
</XPD:OBJ>
74+
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="JpfzmDC72Uqx8m0XchQSOgAA">
75+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
76+
<XPD:REF name="Model">DOQBtnEXQkaoYed/LS2sZwAA</XPD:REF>
77+
</XPD:OBJ>
78+
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="h5hANd6MGEOc4CLCeZyC5gAA">
79+
<XPD:REF name="Model">DOQBtnEXQkaoYed/LS2sZwAA</XPD:REF>
80+
</XPD:OBJ>
81+
</XPD:OBJ>
82+
<XPD:OBJ name="OwnedViews[2]" type="UMLClassView" guid="0q3nG6UIokC3hHLw6cjPPAAA">
83+
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
84+
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
85+
<XPD:ATTR name="Left" type="integer">351</XPD:ATTR>
86+
<XPD:ATTR name="Top" type="integer">272</XPD:ATTR>
87+
<XPD:ATTR name="Width" type="integer">584</XPD:ATTR>
88+
<XPD:ATTR name="Height" type="integer">147</XPD:ATTR>
89+
<XPD:REF name="Model">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
90+
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="p+X6ayhQYki0+FazwSv8IgAA">
91+
<XPD:OBJ name="NameLabel" type="LabelView" guid="JBGfLb5dWU2+/6KUo3y7nwAA">
92+
<XPD:ATTR name="FontStyle" type="integer">3</XPD:ATTR>
93+
<XPD:ATTR name="Text" type="string">AsynchronousFileChannel</XPD:ATTR>
94+
</XPD:OBJ>
95+
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="oXEfYsua+UO1xkE9+Nr5MAAA">
96+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
97+
</XPD:OBJ>
98+
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="84AUfLG4SE6HCkdbIK1SgwAA">
99+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
100+
</XPD:OBJ>
101+
</XPD:OBJ>
102+
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="IviYvW4fmUyr3vTDF5fn0QAA">
103+
<XPD:REF name="Model">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
104+
</XPD:OBJ>
105+
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="Lvdwb8UHrkeXZ4Ea+1xZHgAA">
106+
<XPD:REF name="Model">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
107+
</XPD:OBJ>
108+
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="H8L6DMpqG0aNYK/C+xGGmQAA">
109+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
110+
<XPD:REF name="Model">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
111+
</XPD:OBJ>
112+
</XPD:OBJ>
113+
<XPD:OBJ name="OwnedViews[3]" type="UMLGeneralizationView" guid="cKh6sRuT7ESOFYRMXvoQTAAA">
114+
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
115+
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
116+
<XPD:ATTR name="Points" type="Points">643,165;643,116</XPD:ATTR>
117+
<XPD:REF name="Model">PwMVikpCX06YOxq2zAulKwAA</XPD:REF>
118+
<XPD:REF name="Head">RtzHBytb6UWDZDq3mvlDHgAA</XPD:REF>
119+
<XPD:REF name="Tail">I/tXRFeBikiHksdIpLGSBgAA</XPD:REF>
120+
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="+yzVFaWyuUe43j6iGMtB8gAA">
121+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
122+
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
123+
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
124+
<XPD:REF name="Model">PwMVikpCX06YOxq2zAulKwAA</XPD:REF>
125+
</XPD:OBJ>
126+
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="QS3LczAc7UuTgqU2bR8QVQAA">
127+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
128+
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
129+
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
130+
<XPD:REF name="Model">PwMVikpCX06YOxq2zAulKwAA</XPD:REF>
131+
</XPD:OBJ>
132+
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="PlXCA5NhfEuGlCXSPfsSkQAA">
133+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
134+
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
135+
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
136+
<XPD:REF name="Model">PwMVikpCX06YOxq2zAulKwAA</XPD:REF>
137+
</XPD:OBJ>
138+
</XPD:OBJ>
139+
<XPD:OBJ name="OwnedViews[4]" type="UMLRealizationView" guid="+hgPsI2XgEiaxH98Q7FFUgAA">
140+
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
141+
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
142+
<XPD:ATTR name="Points" type="Points">642,272;643,223</XPD:ATTR>
143+
<XPD:REF name="Model">xOGF1zefJkCYb5UnubhD0gAA</XPD:REF>
144+
<XPD:REF name="Head">I/tXRFeBikiHksdIpLGSBgAA</XPD:REF>
145+
<XPD:REF name="Tail">0q3nG6UIokC3hHLw6cjPPAAA</XPD:REF>
146+
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="toqYFNO2JUivtmac3COF1QAA">
147+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
148+
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
149+
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
150+
<XPD:REF name="Model">xOGF1zefJkCYb5UnubhD0gAA</XPD:REF>
151+
</XPD:OBJ>
152+
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="lIAqHViHBkiJwTLIaEu9ygAA">
153+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
154+
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
155+
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
156+
<XPD:REF name="Model">xOGF1zefJkCYb5UnubhD0gAA</XPD:REF>
157+
</XPD:OBJ>
158+
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="e6bQX1WEJ0CMcAH5MHywcAAA">
159+
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
160+
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
161+
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
162+
<XPD:REF name="Model">xOGF1zefJkCYb5UnubhD0gAA</XPD:REF>
163+
</XPD:OBJ>
164+
</XPD:OBJ>
165+
</XPD:OBJ>
166+
</XPD:OBJ>
167+
<XPD:ATTR name="#OwnedElements" type="integer">5</XPD:ATTR>
168+
<XPD:OBJ name="OwnedElements[0]" type="UMLInterface" guid="J2Zgw2+gzk6wu3NrCnuk5AAA">
169+
<XPD:ATTR name="Name" type="string">Channel</XPD:ATTR>
170+
<XPD:REF name="Namespace">GYF7yhhg70KyRIBvCjnIfQAA</XPD:REF>
171+
<XPD:ATTR name="#Views" type="integer">3</XPD:ATTR>
172+
<XPD:REF name="Views[0]">RtzHBytb6UWDZDq3mvlDHgAA</XPD:REF>
173+
<XPD:REF name="Views[1]">W5W3LKzu8UunMdbJqxyGTwAA</XPD:REF>
174+
<XPD:REF name="Views[2]">00eQy98F4EmI1HHxIr2x+AAA</XPD:REF>
175+
<XPD:ATTR name="#Specializations" type="integer">1</XPD:ATTR>
176+
<XPD:REF name="Specializations[0]">PwMVikpCX06YOxq2zAulKwAA</XPD:REF>
177+
</XPD:OBJ>
178+
<XPD:OBJ name="OwnedElements[1]" type="UMLInterface" guid="DOQBtnEXQkaoYed/LS2sZwAA">
179+
<XPD:ATTR name="Name" type="string">AsynchronousChannel</XPD:ATTR>
180+
<XPD:REF name="Namespace">GYF7yhhg70KyRIBvCjnIfQAA</XPD:REF>
181+
<XPD:ATTR name="#Views" type="integer">3</XPD:ATTR>
182+
<XPD:REF name="Views[0]">I/tXRFeBikiHksdIpLGSBgAA</XPD:REF>
183+
<XPD:REF name="Views[1]">JpfzmDC72Uqx8m0XchQSOgAA</XPD:REF>
184+
<XPD:REF name="Views[2]">h5hANd6MGEOc4CLCeZyC5gAA</XPD:REF>
185+
<XPD:ATTR name="#SupplierDependencies" type="integer">1</XPD:ATTR>
186+
<XPD:REF name="SupplierDependencies[0]">xOGF1zefJkCYb5UnubhD0gAA</XPD:REF>
187+
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
188+
<XPD:REF name="Generalizations[0]">PwMVikpCX06YOxq2zAulKwAA</XPD:REF>
189+
<XPD:ATTR name="#Operations" type="integer">1</XPD:ATTR>
190+
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="hRkEPABE+Eyo98JkC81IowAA">
191+
<XPD:ATTR name="Name" type="string">void close</XPD:ATTR>
192+
<XPD:REF name="Owner">DOQBtnEXQkaoYed/LS2sZwAA</XPD:REF>
193+
</XPD:OBJ>
194+
</XPD:OBJ>
195+
<XPD:OBJ name="OwnedElements[2]" type="UMLClass" guid="phfiWSv8GkuZAlICbqkg4QAA">
196+
<XPD:ATTR name="Name" type="string">AsynchronousFileChannel</XPD:ATTR>
197+
<XPD:ATTR name="IsAbstract" type="boolean">True</XPD:ATTR>
198+
<XPD:REF name="Namespace">GYF7yhhg70KyRIBvCjnIfQAA</XPD:REF>
199+
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
200+
<XPD:REF name="Views[0]">0q3nG6UIokC3hHLw6cjPPAAA</XPD:REF>
201+
<XPD:REF name="Views[1]">IviYvW4fmUyr3vTDF5fn0QAA</XPD:REF>
202+
<XPD:REF name="Views[2]">Lvdwb8UHrkeXZ4Ea+1xZHgAA</XPD:REF>
203+
<XPD:REF name="Views[3]">H8L6DMpqG0aNYK/C+xGGmQAA</XPD:REF>
204+
<XPD:ATTR name="#ClientDependencies" type="integer">1</XPD:ATTR>
205+
<XPD:REF name="ClientDependencies[0]">xOGF1zefJkCYb5UnubhD0gAA</XPD:REF>
206+
<XPD:ATTR name="#Operations" type="integer">8</XPD:ATTR>
207+
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="uszcg+as6k+tAhh6fcANLQAA">
208+
<XPD:ATTR name="Name" type="string">AsynchronousFileChannel open</XPD:ATTR>
209+
<XPD:ATTR name="OwnerScope" type="UMLScopeKind">skClassifier</XPD:ATTR>
210+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
211+
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
212+
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="BvcWFRXkCEik/HtGMPmt2AAA">
213+
<XPD:ATTR name="Name" type="string">Path file</XPD:ATTR>
214+
<XPD:REF name="BehavioralFeature">uszcg+as6k+tAhh6fcANLQAA</XPD:REF>
215+
</XPD:OBJ>
216+
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="T+HxjtEfI0mwgiik/J2GsAAA">
217+
<XPD:ATTR name="Name" type="string">OpenOption... options</XPD:ATTR>
218+
<XPD:REF name="BehavioralFeature">uszcg+as6k+tAhh6fcANLQAA</XPD:REF>
219+
</XPD:OBJ>
220+
</XPD:OBJ>
221+
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="Jw8rxtrVzUSR2jgw0FDLGwAA">
222+
<XPD:ATTR name="Name" type="string">void force</XPD:ATTR>
223+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
224+
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
225+
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Fo+ypKJMK0e0OXOM/eAGGAAA">
226+
<XPD:ATTR name="Name" type="string">boolean metaData</XPD:ATTR>
227+
<XPD:REF name="BehavioralFeature">Jw8rxtrVzUSR2jgw0FDLGwAA</XPD:REF>
228+
</XPD:OBJ>
229+
</XPD:OBJ>
230+
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="qq8T/DGqiUKFexqnyIUU2gAA">
231+
<XPD:ATTR name="Name" type="string">Future&lt;FileLock&gt; lock</XPD:ATTR>
232+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
233+
</XPD:OBJ>
234+
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="U/mFpGSVKUOz5x4kaXizVwAA">
235+
<XPD:ATTR name="Name" type="string">Future&lt;Integer&gt; read</XPD:ATTR>
236+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
237+
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
238+
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="zuV6JETTO0KElR3dhwkhZQAA">
239+
<XPD:ATTR name="Name" type="string">ByteBuffer dst</XPD:ATTR>
240+
<XPD:REF name="BehavioralFeature">U/mFpGSVKUOz5x4kaXizVwAA</XPD:REF>
241+
</XPD:OBJ>
242+
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="FWITNEn8rU+wbFwvTdUboAAA">
243+
<XPD:ATTR name="Name" type="string">long position</XPD:ATTR>
244+
<XPD:REF name="BehavioralFeature">U/mFpGSVKUOz5x4kaXizVwAA</XPD:REF>
245+
</XPD:OBJ>
246+
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="aD39cB1EIUKnsXMEdGJouQAA">
247+
<XPD:ATTR name="Name" type="string">A attachment</XPD:ATTR>
248+
<XPD:REF name="BehavioralFeature">U/mFpGSVKUOz5x4kaXizVwAA</XPD:REF>
249+
</XPD:OBJ>
250+
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="gvBBY36Qik6rDe2ki3VCeQAA">
251+
<XPD:ATTR name="Name" type="string">CompletionHandler&lt;Integer</XPD:ATTR>
252+
<XPD:REF name="BehavioralFeature">U/mFpGSVKUOz5x4kaXizVwAA</XPD:REF>
253+
</XPD:OBJ>
254+
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="GkryEJHpikGQNz9jWjjnSQAA">
255+
<XPD:ATTR name="Name" type="string">? super A&gt; handler</XPD:ATTR>
256+
<XPD:REF name="BehavioralFeature">U/mFpGSVKUOz5x4kaXizVwAA</XPD:REF>
257+
</XPD:OBJ>
258+
</XPD:OBJ>
259+
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="GiosjZ+FOkyfDJuXEqZ+PAAA">
260+
<XPD:ATTR name="Name" type="string">AsynchronousFileChannel truncate</XPD:ATTR>
261+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
262+
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
263+
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="ZhmF0lyINUeijxnvjkN7kAAA">
264+
<XPD:ATTR name="Name" type="string">long size</XPD:ATTR>
265+
<XPD:REF name="BehavioralFeature">GiosjZ+FOkyfDJuXEqZ+PAAA</XPD:REF>
266+
</XPD:OBJ>
267+
</XPD:OBJ>
268+
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="qMu5R2cidU6mOiED80KZ6gAA">
269+
<XPD:ATTR name="Name" type="string">long size</XPD:ATTR>
270+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
271+
</XPD:OBJ>
272+
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="tGe5mFZHckK40+pjGjnvIQAA">
273+
<XPD:ATTR name="Name" type="string">FileLock tryLock</XPD:ATTR>
274+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
275+
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
276+
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="L8Stns8Lh0ewWvRHDC1EmQAA">
277+
<XPD:ATTR name="Name" type="string">long position</XPD:ATTR>
278+
<XPD:REF name="BehavioralFeature">tGe5mFZHckK40+pjGjnvIQAA</XPD:REF>
279+
</XPD:OBJ>
280+
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="66Xl8sctS0KGaOhv0sIsgAAA">
281+
<XPD:ATTR name="Name" type="string">long size</XPD:ATTR>
282+
<XPD:REF name="BehavioralFeature">tGe5mFZHckK40+pjGjnvIQAA</XPD:REF>
283+
</XPD:OBJ>
284+
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="MITqEN6cX0ySZMRAi/nHSgAA">
285+
<XPD:ATTR name="Name" type="string">boolean shared</XPD:ATTR>
286+
<XPD:REF name="BehavioralFeature">tGe5mFZHckK40+pjGjnvIQAA</XPD:REF>
287+
</XPD:OBJ>
288+
</XPD:OBJ>
289+
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="wDg4Mr9WlESoBkXQcoID8gAA">
290+
<XPD:ATTR name="Name" type="string">void write</XPD:ATTR>
291+
<XPD:REF name="Owner">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
292+
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
293+
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="fmoDeaUdg02qm1AQtZwgEQAA">
294+
<XPD:ATTR name="Name" type="string">ByteBuffer src</XPD:ATTR>
295+
<XPD:REF name="BehavioralFeature">wDg4Mr9WlESoBkXQcoID8gAA</XPD:REF>
296+
</XPD:OBJ>
297+
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="AItLnKILOEyp28BLD036PAAA">
298+
<XPD:ATTR name="Name" type="string">long position</XPD:ATTR>
299+
<XPD:REF name="BehavioralFeature">wDg4Mr9WlESoBkXQcoID8gAA</XPD:REF>
300+
</XPD:OBJ>
301+
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="dxukF2oOUk2GAe3I4VL61wAA">
302+
<XPD:ATTR name="Name" type="string">A attachment</XPD:ATTR>
303+
<XPD:REF name="BehavioralFeature">wDg4Mr9WlESoBkXQcoID8gAA</XPD:REF>
304+
</XPD:OBJ>
305+
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="56p4yCpc1UWEmPWY+phqkwAA">
306+
<XPD:ATTR name="Name" type="string">CompletionHandler&lt;Integer</XPD:ATTR>
307+
<XPD:REF name="BehavioralFeature">wDg4Mr9WlESoBkXQcoID8gAA</XPD:REF>
308+
</XPD:OBJ>
309+
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="oN6qEMN1Sk6dan8OMUlcKQAA">
310+
<XPD:ATTR name="Name" type="string">? super A&gt; handler</XPD:ATTR>
311+
<XPD:REF name="BehavioralFeature">wDg4Mr9WlESoBkXQcoID8gAA</XPD:REF>
312+
</XPD:OBJ>
313+
</XPD:OBJ>
314+
</XPD:OBJ>
315+
<XPD:OBJ name="OwnedElements[3]" type="UMLGeneralization" guid="PwMVikpCX06YOxq2zAulKwAA">
316+
<XPD:REF name="Namespace">GYF7yhhg70KyRIBvCjnIfQAA</XPD:REF>
317+
<XPD:REF name="Child">DOQBtnEXQkaoYed/LS2sZwAA</XPD:REF>
318+
<XPD:REF name="Parent">J2Zgw2+gzk6wu3NrCnuk5AAA</XPD:REF>
319+
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
320+
<XPD:REF name="Views[0]">cKh6sRuT7ESOFYRMXvoQTAAA</XPD:REF>
321+
<XPD:REF name="Views[1]">+yzVFaWyuUe43j6iGMtB8gAA</XPD:REF>
322+
<XPD:REF name="Views[2]">QS3LczAc7UuTgqU2bR8QVQAA</XPD:REF>
323+
<XPD:REF name="Views[3]">PlXCA5NhfEuGlCXSPfsSkQAA</XPD:REF>
324+
</XPD:OBJ>
325+
<XPD:OBJ name="OwnedElements[4]" type="UMLRealization" guid="xOGF1zefJkCYb5UnubhD0gAA">
326+
<XPD:REF name="Namespace">GYF7yhhg70KyRIBvCjnIfQAA</XPD:REF>
327+
<XPD:REF name="Client">phfiWSv8GkuZAlICbqkg4QAA</XPD:REF>
328+
<XPD:REF name="Supplier">DOQBtnEXQkaoYed/LS2sZwAA</XPD:REF>
329+
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
330+
<XPD:REF name="Views[0]">+hgPsI2XgEiaxH98Q7FFUgAA</XPD:REF>
331+
<XPD:REF name="Views[1]">toqYFNO2JUivtmac3COF1QAA</XPD:REF>
332+
<XPD:REF name="Views[2]">lIAqHViHBkiJwTLIaEu9ygAA</XPD:REF>
333+
<XPD:REF name="Views[3]">e6bQX1WEJ0CMcAH5MHywcAAA</XPD:REF>
334+
</XPD:OBJ>
335+
</XPD:OBJ>
336+
</XPD:OBJ>
337+
</XPD:BODY>
338+
</XPD:PROJECT>
Loading

0 commit comments

Comments
 (0)