1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.linecorp.centraldogma.server.command;
18
19 import static java.util.Objects.requireNonNull;
20
21 import java.util.concurrent.CompletableFuture;
22
23 import com.linecorp.centraldogma.internal.Util;
24 import com.linecorp.centraldogma.server.QuotaConfig;
25
26
27
28
29 public class ForwardingCommandExecutor implements CommandExecutor {
30
31 private final CommandExecutor delegate;
32
33 protected ForwardingCommandExecutor(CommandExecutor delegate) {
34 this.delegate = requireNonNull(delegate, "delegate");
35 }
36
37 protected final <T extends CommandExecutor> T delegate() {
38 return Util.unsafeCast(delegate);
39 }
40
41 @Override
42 public int replicaId() {
43 return delegate().replicaId();
44 }
45
46 @Override
47 public boolean isStarted() {
48 return delegate().isStarted();
49 }
50
51 @Override
52 public CompletableFuture<Void> start() {
53 return delegate().start();
54 }
55
56 @Override
57 public CompletableFuture<Void> stop() {
58 return delegate().stop();
59 }
60
61 @Override
62 public boolean isWritable() {
63 return delegate().isWritable();
64 }
65
66 @Override
67 public void setWritable(boolean writable) {
68 delegate().setWritable(writable);
69 }
70
71 @Override
72 public void setWriteQuota(String projectName, String repoName, QuotaConfig writeQuota) {
73 delegate().setWriteQuota(projectName, repoName, writeQuota);
74 }
75
76 @Override
77 public <T> CompletableFuture<T> execute(Command<T> command) {
78 return delegate().execute(command);
79 }
80
81 @Override
82 public CommandExecutorStatusManager statusManager() {
83 return delegate().statusManager();
84 }
85
86 @Override
87 public String toString() {
88 return getClass().getSimpleName() + '(' + delegate() + ')';
89 }
90 }