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 @SuppressWarnings("checkstyle:VisibilityModifier")
29 class RecordingTransportListener extends TransportListener {
30
31 public final ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
32
33 public long dataOffset;
34
35 public long dataLength;
36
37 public int startedCount;
38
39 public int progressedCount;
40
41 public boolean cancelStart;
42
43 public boolean cancelProgress;
44
45 @Override
46 public void transportStarted(long dataOffset, long dataLength) throws TransferCancelledException {
47 startedCount++;
48 progressedCount = 0;
49 this.dataLength = dataLength;
50 this.dataOffset = dataOffset;
51 baos.reset();
52 if (cancelStart) {
53 throw new TransferCancelledException();
54 }
55 }
56
57 @Override
58 public void transportProgressed(ByteBuffer data) throws TransferCancelledException {
59 progressedCount++;
60 baos.write(data.array(), data.arrayOffset() + ((Buffer) data).position(), data.remaining());
61 if (cancelProgress) {
62 throw new TransferCancelledException();
63 }
64 }
65 }