Advertisement
Guest User

Untitled

a guest
Sep 25th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. public class ContentTypeRoute implements Route {
  2.  
  3. private final String contentType;
  4. private final Route delegate;
  5. private final Optional<ResponseTransformer> responseTransformer;
  6.  
  7. private ContentTypeRoute(String contentType, Route delegate, ResponseTransformer responseTransformer) {
  8. this.contentType = contentType;
  9. this.delegate = delegate;
  10. this.responseTransformer = Optional.ofNullable(responseTransformer);
  11. }
  12.  
  13. @Override
  14. public Object handle(Request request, Response response) throws Exception {
  15. final Object result = delegateAndTransform(request, response);
  16.  
  17. response.header("Content-Type", contentType);
  18.  
  19. return result;
  20. }
  21.  
  22. private Object delegateAndTransform(Request request, Response response) throws Exception {
  23. final Object data = delegate.handle(request, response);
  24.  
  25. if (responseTransformer.isPresent()) {
  26. return responseTransformer.get().render(data);
  27. }
  28.  
  29. return data;
  30. }
  31.  
  32. public static Route create(Route delegate, String contentType) {
  33. return create(delegate, contentType, null);
  34. }
  35.  
  36. public static Route create(Route delegate, String contentType, ResponseTransformer responseTransformer) {
  37. return new ContentTypeRoute(contentType, delegate, responseTransformer);
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement