1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.transport.classpath;
20
21 import java.io.ByteArrayOutputStream;
22 import java.nio.Buffer;
23 import java.nio.ByteBuffer;
24
25 import org.eclipse.aether.spi.connector.transport.TransportListener;
26 import org.eclipse.aether.transfer.TransferCancelledException;
27
28 class RecordingTransportListener extends TransportListener {
29
30 public final ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
31
32 public long dataOffset;
33
34 public long dataLength;
35
36 public int startedCount;
37
38 public int progressedCount;
39
40 public boolean cancelStart;
41
42 public boolean cancelProgress;
43
44 @Override
45 public void transportStarted(long dataOffset, long dataLength) throws TransferCancelledException {
46 startedCount++;
47 progressedCount = 0;
48 this.dataLength = dataLength;
49 this.dataOffset = dataOffset;
50 baos.reset();
51 if (cancelStart) {
52 throw new TransferCancelledException();
53 }
54 }
55
56 @Override
57 public void transportProgressed(ByteBuffer data) throws TransferCancelledException {
58 progressedCount++;
59 baos.write(data.array(), data.arrayOffset() + ((Buffer) data).position(), data.remaining());
60 if (cancelProgress) {
61 throw new TransferCancelledException();
62 }
63 }
64 }