1 package org.eclipse.aether.internal.impl;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.eclipse.aether.spi.connector.checksum.ChecksumPolicy;
23 import org.eclipse.aether.transfer.ChecksumFailureException;
24 import org.eclipse.aether.transfer.TransferResource;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
27
28 import static java.util.Objects.requireNonNull;
29
30 abstract class AbstractChecksumPolicy
31 implements ChecksumPolicy
32 {
33
34 protected final Logger logger = LoggerFactory.getLogger( getClass() );
35
36 protected final TransferResource resource;
37
38 protected AbstractChecksumPolicy( TransferResource resource )
39 {
40 this.resource = resource;
41 }
42
43 public boolean onChecksumMatch( String algorithm, int kind )
44 {
45 requireNonNull( algorithm, "algorithm cannot be null" );
46 return true;
47 }
48
49 public void onChecksumMismatch( String algorithm, int kind, ChecksumFailureException exception )
50 throws ChecksumFailureException
51 {
52 requireNonNull( algorithm, "algorithm cannot be null" );
53 requireNonNull( exception, "exception cannot be null" );
54 if ( ( kind & KIND_UNOFFICIAL ) == 0 )
55 {
56 throw exception;
57 }
58 }
59
60 public void onChecksumError( String algorithm, int kind, ChecksumFailureException exception )
61 throws ChecksumFailureException
62 {
63 requireNonNull( algorithm, "algorithm cannot be null" );
64 requireNonNull( exception, "exception cannot be null" );
65 logger.debug( "Could not validate {} checksum for {}", algorithm, resource.getResourceName(), exception );
66 }
67
68 public void onNoMoreChecksums()
69 throws ChecksumFailureException
70 {
71 throw new ChecksumFailureException( "Checksum validation failed, no checksums available" );
72 }
73
74 public void onTransferRetry()
75 {
76 }
77
78 }