1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.linecorp.centraldogma.server.internal.storage.repository;
18
19 import static java.util.Objects.requireNonNull;
20
21 import java.util.List;
22 import java.util.Map;
23 import java.util.concurrent.CompletableFuture;
24
25 import com.linecorp.centraldogma.common.Author;
26 import com.linecorp.centraldogma.common.Change;
27 import com.linecorp.centraldogma.common.Commit;
28 import com.linecorp.centraldogma.common.Entry;
29 import com.linecorp.centraldogma.common.Markup;
30 import com.linecorp.centraldogma.common.MergeQuery;
31 import com.linecorp.centraldogma.common.MergedEntry;
32 import com.linecorp.centraldogma.common.Query;
33 import com.linecorp.centraldogma.common.Revision;
34 import com.linecorp.centraldogma.common.RevisionRange;
35 import com.linecorp.centraldogma.internal.Util;
36 import com.linecorp.centraldogma.server.command.CommitResult;
37 import com.linecorp.centraldogma.server.storage.project.Project;
38 import com.linecorp.centraldogma.server.storage.repository.FindOption;
39 import com.linecorp.centraldogma.server.storage.repository.Repository;
40
41 public class RepositoryWrapper implements Repository {
42
43 private final Repository repo;
44
45 protected RepositoryWrapper(Repository repo) {
46 this.repo = requireNonNull(repo, "repo");
47 }
48
49 @SuppressWarnings("unchecked")
50 public final <T extends Repository> T unwrap() {
51 return (T) repo;
52 }
53
54 @Override
55 public Project parent() {
56 return unwrap().parent();
57 }
58
59 @Override
60 public String name() {
61 return unwrap().name();
62 }
63
64 @Override
65 public long creationTimeMillis() {
66 return unwrap().creationTimeMillis();
67 }
68
69 @Override
70 public Author author() {
71 return unwrap().author();
72 }
73
74 @Override
75 public Revision normalizeNow(Revision revision) {
76 return unwrap().normalizeNow(revision);
77 }
78
79 @Override
80 public RevisionRange normalizeNow(Revision from, Revision to) {
81 return unwrap().normalizeNow(from, to);
82 }
83
84 @Override
85 public CompletableFuture<Boolean> exists(Revision revision, String path) {
86 return unwrap().exists(revision, path);
87 }
88
89 @Override
90 public CompletableFuture<Entry<?>> get(Revision revision, String path) {
91 return unwrap().get(revision, path);
92 }
93
94 @Override
95 public <T> CompletableFuture<Entry<T>> get(Revision revision, Query<T> query) {
96 return unwrap().get(revision, query);
97 }
98
99 @Override
100 public CompletableFuture<Entry<?>> getOrNull(Revision revision, String path) {
101 return unwrap().getOrNull(revision, path);
102 }
103
104 @Override
105 public <T> CompletableFuture<Entry<T>> getOrNull(Revision revision, Query<T> query) {
106 return unwrap().getOrNull(revision, query);
107 }
108
109 @Override
110 public CompletableFuture<Map<String, Entry<?>>> find(Revision revision, String pathPattern) {
111 return unwrap().find(revision, pathPattern);
112 }
113
114 @Override
115 public CompletableFuture<Map<String, Entry<?>>> find(Revision revision, String pathPattern,
116 Map<FindOption<?>, ?> options) {
117 return unwrap().find(revision, pathPattern, options);
118 }
119
120 @Override
121 public CompletableFuture<List<Commit>> history(Revision from, Revision to, String pathPattern) {
122 return unwrap().history(from, to, pathPattern);
123 }
124
125 @Override
126 public CompletableFuture<List<Commit>> history(Revision from, Revision to,
127 String pathPattern, int maxCommits) {
128 return unwrap().history(from, to, pathPattern, maxCommits);
129 }
130
131 @Override
132 public CompletableFuture<Change<?>> diff(Revision from, Revision to, Query<?> query) {
133 return unwrap().diff(from, to, query);
134 }
135
136 @Override
137 public CompletableFuture<Map<String, Change<?>>> diff(Revision from, Revision to, String pathPattern) {
138 return unwrap().diff(from, to, pathPattern);
139 }
140
141 @Override
142 public CompletableFuture<Map<String, Change<?>>> previewDiff(Revision baseRevision,
143 Iterable<Change<?>> changes) {
144 return unwrap().previewDiff(baseRevision, changes);
145 }
146
147 @Override
148 public CompletableFuture<Map<String, Change<?>>> previewDiff(Revision baseRevision, Change<?>... changes) {
149 return unwrap().previewDiff(baseRevision, changes);
150 }
151
152 @Override
153 public CompletableFuture<CommitResult> commit(Revision baseRevision, long commitTimeMillis,
154 Author author, String summary, Iterable<Change<?>> changes) {
155 return unwrap().commit(baseRevision, commitTimeMillis, author, summary, changes);
156 }
157
158 @Override
159 public CompletableFuture<CommitResult> commit(Revision baseRevision, long commitTimeMillis,
160 Author author, String summary, Change<?>... changes) {
161 return unwrap().commit(baseRevision, commitTimeMillis, author, summary, changes);
162 }
163
164 @Override
165 public CompletableFuture<CommitResult> commit(Revision baseRevision, long commitTimeMillis,
166 Author author, String summary, String detail, Markup markup,
167 Iterable<Change<?>> changes, boolean normalizing) {
168 return unwrap().commit(baseRevision, commitTimeMillis, author, summary, detail, markup, changes,
169 normalizing);
170 }
171
172 @Override
173 public CompletableFuture<CommitResult> commit(Revision baseRevision, long commitTimeMillis,
174 Author author, String summary, String detail, Markup markup,
175 Change<?>... changes) {
176 return unwrap().commit(baseRevision, commitTimeMillis, author, summary, detail, markup, changes);
177 }
178
179 @Override
180 public CompletableFuture<Revision> findLatestRevision(Revision lastKnownRevision, String pathPattern,
181 boolean errorOnEntryNotFound) {
182 return unwrap().findLatestRevision(lastKnownRevision, pathPattern, errorOnEntryNotFound);
183 }
184
185 @Override
186 public CompletableFuture<Revision> watch(Revision lastKnownRevision, String pathPattern,
187 boolean errorOnEntryNotFound) {
188 return unwrap().watch(lastKnownRevision, pathPattern, errorOnEntryNotFound);
189 }
190
191 @Override
192 public <T> CompletableFuture<Entry<T>> watch(Revision lastKnownRevision, Query<T> query,
193 boolean errorOnEntryNotFound) {
194 return unwrap().watch(lastKnownRevision, query, errorOnEntryNotFound);
195 }
196
197 @Override
198 public <T> CompletableFuture<MergedEntry<T>> mergeFiles(Revision revision, MergeQuery<T> query) {
199 return unwrap().mergeFiles(revision, query);
200 }
201
202 @Override
203 public String toString() {
204 return Util.simpleTypeName(this) + '(' + unwrap() + ')';
205 }
206 }