1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.internal.impl.transport.http;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.Map;
26 import java.util.function.Function;
27
28 import org.eclipse.aether.spi.connector.transport.http.ChecksumExtractor;
29 import org.eclipse.aether.spi.connector.transport.http.ChecksumExtractorStrategy;
30
31 import static java.util.Objects.requireNonNull;
32
33
34
35
36 @Singleton
37 @Named
38 public final class DefaultChecksumExtractor implements ChecksumExtractor {
39 private final Map<String, ChecksumExtractorStrategy> strategies;
40
41 @Inject
42 public DefaultChecksumExtractor(Map<String, ChecksumExtractorStrategy> strategies) {
43 this.strategies = requireNonNull(strategies, "strategies");
44 }
45
46 @Override
47 public Map<String, String> extractChecksums(Function<String, String> headerGetter) {
48 for (ChecksumExtractorStrategy strategy : strategies.values()) {
49 Map<String, String> extracted = strategy.extractChecksums(headerGetter);
50 if (extracted != null && !extracted.isEmpty()) {
51 return extracted;
52 }
53 }
54 return null;
55 }
56 }