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;
20
21 import org.eclipse.aether.RepositorySystemSession;
22 import org.eclipse.aether.artifact.Artifact;
23 import org.eclipse.aether.impl.UpdateCheck;
24 import org.eclipse.aether.impl.UpdateCheckManager;
25 import org.eclipse.aether.metadata.Metadata;
26 import org.eclipse.aether.transfer.ArtifactNotFoundException;
27 import org.eclipse.aether.transfer.ArtifactTransferException;
28 import org.eclipse.aether.transfer.MetadataNotFoundException;
29 import org.eclipse.aether.transfer.MetadataTransferException;
30
31 import static java.util.Objects.requireNonNull;
32
33 class StaticUpdateCheckManager implements UpdateCheckManager {
34
35 private boolean checkRequired;
36
37 private boolean localUpToDate;
38
39 StaticUpdateCheckManager(boolean checkRequired) {
40 this(checkRequired, !checkRequired);
41 }
42
43 StaticUpdateCheckManager(boolean checkRequired, boolean localUpToDate) {
44 this.checkRequired = checkRequired;
45 this.localUpToDate = localUpToDate;
46 }
47
48 public void touchMetadata(RepositorySystemSession session, UpdateCheck<Metadata, MetadataTransferException> check) {
49 requireNonNull(session, "session cannot be null");
50 requireNonNull(check, "check cannot be null");
51 }
52
53 public void touchArtifact(RepositorySystemSession session, UpdateCheck<Artifact, ArtifactTransferException> check) {
54 requireNonNull(session, "session cannot be null");
55 requireNonNull(check, "check cannot be null");
56 }
57
58 public void checkMetadata(RepositorySystemSession session, UpdateCheck<Metadata, MetadataTransferException> check) {
59 requireNonNull(session, "session cannot be null");
60 requireNonNull(check, "check cannot be null");
61 check.setRequired(checkRequired);
62
63 if (check.getLocalLastUpdated() != 0L && localUpToDate) {
64 check.setRequired(false);
65 }
66 if (!check.isRequired() && !check.getFile().isFile()) {
67 check.setException(new MetadataNotFoundException(check.getItem(), check.getRepository()));
68 }
69 }
70
71 public void checkArtifact(RepositorySystemSession session, UpdateCheck<Artifact, ArtifactTransferException> check) {
72 requireNonNull(session, "session cannot be null");
73 requireNonNull(check, "check cannot be null");
74 check.setRequired(checkRequired);
75
76 if (check.getLocalLastUpdated() != 0L && localUpToDate) {
77 check.setRequired(false);
78 }
79 if (!check.isRequired() && !check.getFile().isFile()) {
80 check.setException(new ArtifactNotFoundException(check.getItem(), check.getRepository()));
81 }
82 }
83 }