1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.linecorp.centraldogma.client;
17
18 import static com.google.common.base.Preconditions.checkArgument;
19 import static java.util.Objects.requireNonNull;
20
21 import java.util.List;
22 import java.util.concurrent.CompletableFuture;
23
24 import com.linecorp.centraldogma.common.Commit;
25 import com.linecorp.centraldogma.common.PathPattern;
26 import com.linecorp.centraldogma.common.Revision;
27 import com.linecorp.centraldogma.internal.HistoryConstants;
28
29
30
31
32
33 public final class HistoryRequest {
34
35 private final CentralDogmaRepository centralDogmaRepo;
36 private final PathPattern pathPattern;
37 private int maxCommits;
38
39 HistoryRequest(CentralDogmaRepository centralDogmaRepo, PathPattern pathPattern) {
40 this.centralDogmaRepo = centralDogmaRepo;
41 this.pathPattern = pathPattern;
42 }
43
44
45
46
47
48
49 public HistoryRequest maxCommits(int maxCommits) {
50 checkArgument(maxCommits >= 0 && maxCommits <= HistoryConstants.MAX_MAX_COMMITS,
51 "maxCommits: %s (expected: 0 <= maxCommits <= %s)",
52 maxCommits, HistoryConstants.MAX_MAX_COMMITS);
53 this.maxCommits = maxCommits;
54 return this;
55 }
56
57
58
59
60
61
62
63
64
65 public CompletableFuture<List<Commit>> get(Revision from, Revision to) {
66 requireNonNull(from, "from");
67 requireNonNull(to, "to");
68 return centralDogmaRepo.centralDogma().getHistory(centralDogmaRepo.projectName(),
69 centralDogmaRepo.repositoryName(),
70 from, to, pathPattern, maxCommits);
71 }
72 }