@Override public Optional<RestxHandlerMatch> match(RestxRequest req) { String path = req.getRestxPath(); return RestxHandlerMatch.of(matcher.match(req.getHttpMethod(), path), this); }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { ctx.nextHandlerMatch().handle(req, resp, ctx.withListener(new AbstractRouteLifecycleListener() { @Override @SuppressWarnings("unchecked") public void onEntityOutput(RestxRoute route, RestxRequest req, RestxResponse resp, Optional<?> input, Optional<?> output) { if (output.isPresent()) { provider.provideETagFor((T) output.get()).handleIn(req, resp); } } })); } }
@Override public void sendResponse(HttpStatus status, T value, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { resp.setStatus(status); resp.setContentType(contentType); writeHeaders(value, req, resp, ctx); ctx.getLifecycleListener().onBeforeWriteContent(req, resp); write(value, req, resp, ctx); ctx.getLifecycleListener().onAfterWriteContent(req, resp); }
@Override public Optional<RestxHandlerMatch> match(RestxRequest req) { return Optional.of(new RestxHandlerMatch( new StdRestxRequestMatch("*", req.getRestxPath()), new RestxHandler() { @Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { throw new WebException(HttpStatus.NOT_FOUND); } } )); } };
public JsonLabelsRoute(Messages messages, CurrentLocaleResolver currentLocaleResolver) { super("labels.json", new StdRestxRequestMatcher("GET", "/i18n/labels.json")); this.messages = messages; this.currentLocaleResolver = currentLocaleResolver; }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { resp.setStatus(HttpStatus.FORBIDDEN); } };
@Override public void onBeforeWriteContent(RestxRequest req, RestxResponse resp) { lifecycleListener.onBeforeWriteContent(req, resp); listener.onBeforeWriteContent(req, resp); }
@Override public void onAfterWriteContent(RestxRequest req, RestxResponse resp) { lifecycleListener.onAfterWriteContent(req, resp); listener.onAfterWriteContent(req, resp); }
@Override public Locale guessLocale(RestxRequest request) { return request.getLocale(); } }
@Override public RestxResponse setStatus(HttpStatus i) { super.setStatus(i); status = i; return null; }
@Override public RestxResponse setStatus(HttpStatus httpStatus) { this.status = httpStatus; doSetStatus(httpStatus); return this; }
@Override public OutputStream getOutputStream() throws IOException { if (outputStream != null) { return outputStream; } return outputStream = doGetOutputStream(); }
@Override public ImmutableList<Locale> getLocales() { return original.getLocales(); } }
@Override public <T> T unwrap(Class<T> clazz) { return restxResponse.unwrap(clazz); } }
/** * Returns the content to use in the HTTP response generated for this exception. * * Developer's note: override to provide a content different from the exception message. * Alternatively you can override the writeTo method for full control over the response. * * @return the content to use in the response. */ public String getContent() { return getMessage(); }
@Override public void onEntityOutput(RestxRoute route, RestxRequest req, RestxResponse resp, Optional<?> input, Optional<?> output) { lifecycleListener.onEntityOutput(route, req, resp, input, output); listener.onEntityOutput(route, req, resp, input, output); } }, matches, matchesIterator);
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { ctx.nextHandlerMatch().handle(req, resp, ctx.withListener(new AbstractRouteLifecycleListener() { @Override public void onBeforeWriteContent(RestxRequest req, RestxResponse resp) { if (!resp.getHeader("Cache-Control").isPresent()) { resp.setHeader("Cache-Control", "no-cache"); } } })); } }));
@Override public Optional<RestxHandlerMatch> match(RestxRequest req) { String path = req.getRestxPath(); return RestxHandlerMatch.of(matcher.match(req.getHttpMethod(), path), this); }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { ctx.nextHandlerMatch().handle(req, resp, ctx.withListener(new AbstractRouteLifecycleListener() { @Override @SuppressWarnings("unchecked") public void onEntityOutput(RestxRoute route, RestxRequest req, RestxResponse resp, Optional<?> input, Optional<?> output) { if (output.isPresent()) { provider.provideETagFor((T) output.get()).handleIn(req, resp); } } })); } }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { ctx.nextHandlerMatch().handle(req, resp, ctx.withListener(new AbstractRouteLifecycleListener() { @Override public void onBeforeWriteContent(RestxRequest req, RestxResponse resp) { if (!resp.getHeader("Cache-Control").isPresent()) { resp.setHeader("Cache-Control", "no-cache"); } } })); } }));