Skip to content

Commit a7ad3f7

Browse files
authored
Introduce RestHandler.Wrapper to help with delegate implementations (#1004) (#1031)
Signed-off-by: Vlad Rozov <[email protected]>
1 parent a936e1e commit a7ad3f7

File tree

2 files changed

+65
-1
lines changed

2 files changed

+65
-1
lines changed

server/src/main/java/org/opensearch/rest/BaseRestHandler.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import java.util.HashSet;
5151
import java.util.List;
5252
import java.util.Locale;
53+
import java.util.Objects;
5354
import java.util.Set;
5455
import java.util.SortedSet;
5556
import java.util.TreeSet;
@@ -209,7 +210,7 @@ public static class Wrapper extends BaseRestHandler {
209210
protected final BaseRestHandler delegate;
210211

211212
public Wrapper(BaseRestHandler delegate) {
212-
this.delegate = delegate;
213+
this.delegate = Objects.requireNonNull(delegate, "BaseRestHandler delegate can not be null");
213214
}
214215

215216
@Override
@@ -256,5 +257,10 @@ public boolean supportsContentStream() {
256257
public boolean allowsUnsafeBuffers() {
257258
return delegate.allowsUnsafeBuffers();
258259
}
260+
261+
@Override
262+
public boolean allowSystemIndexAccessByDefault() {
263+
return delegate.allowSystemIndexAccessByDefault();
264+
}
259265
}
260266
}

server/src/main/java/org/opensearch/rest/RestHandler.java

+58
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838

3939
import java.util.Collections;
4040
import java.util.List;
41+
import java.util.Objects;
4142
import java.util.stream.Collectors;
4243

4344
/**
@@ -113,6 +114,63 @@ default boolean allowSystemIndexAccessByDefault() {
113114
return false;
114115
}
115116

117+
static RestHandler wrapper(RestHandler delegate) {
118+
return new Wrapper(delegate);
119+
}
120+
121+
class Wrapper implements RestHandler {
122+
private final RestHandler delegate;
123+
124+
public Wrapper(RestHandler delegate) {
125+
this.delegate = Objects.requireNonNull(delegate, "RestHandler delegate can not be null");
126+
}
127+
128+
@Override
129+
public String toString() {
130+
return delegate.toString();
131+
}
132+
133+
@Override
134+
public void handleRequest(RestRequest request, RestChannel channel, NodeClient client) throws Exception {
135+
delegate.handleRequest(request, channel, client);
136+
}
137+
138+
@Override
139+
public boolean canTripCircuitBreaker() {
140+
return delegate.canTripCircuitBreaker();
141+
}
142+
143+
@Override
144+
public boolean supportsContentStream() {
145+
return delegate.supportsContentStream();
146+
}
147+
148+
@Override
149+
public boolean allowsUnsafeBuffers() {
150+
return delegate.allowsUnsafeBuffers();
151+
}
152+
153+
@Override
154+
public List<Route> routes() {
155+
return delegate.routes();
156+
}
157+
158+
@Override
159+
public List<DeprecatedRoute> deprecatedRoutes() {
160+
return delegate.deprecatedRoutes();
161+
}
162+
163+
@Override
164+
public List<ReplacedRoute> replacedRoutes() {
165+
return delegate.replacedRoutes();
166+
}
167+
168+
@Override
169+
public boolean allowSystemIndexAccessByDefault() {
170+
return delegate.allowSystemIndexAccessByDefault();
171+
}
172+
}
173+
116174
class Route {
117175

118176
private final String path;

0 commit comments

Comments
 (0)