HttpRequestBuilder.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package cz.senslog.analyzer.util.http;
  2. import java.net.URL;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. /**
  8. * The class {@code HttpRequestBuilder} represents a builder for the {@link HttpRequest}.
  9. *
  10. * @author Lukas Cerny
  11. * @version 1.0
  12. * @since 1.0
  13. */
  14. final class HttpRequestBuilder implements HttpRequest.Builder {
  15. private URL url;
  16. private Map<String, String> headers;
  17. private final List<HttpCookie> cookies;
  18. private String body;
  19. private HttpMethod method;
  20. private String contentType;
  21. HttpRequestBuilder() {
  22. this.headers = new HashMap<>();
  23. this.cookies = new ArrayList<>();
  24. this.method = HttpMethod.GET;
  25. this.body = "";
  26. }
  27. @Override
  28. public HttpRequest.Builder header(String name, String value) {
  29. this.headers.put(name, value);
  30. return this;
  31. }
  32. @Override
  33. public HttpRequest.Builder url(URL url) {
  34. this.url = url;
  35. return this;
  36. }
  37. @Override
  38. public HttpRequest.Builder POST() {
  39. this.method = HttpMethod.POST;
  40. return this;
  41. }
  42. @Override
  43. public HttpRequest.Builder GET() {
  44. this.method = HttpMethod.GET;
  45. return this;
  46. }
  47. @Override
  48. public HttpRequest.Builder contentType(String contentType) {
  49. this.contentType = contentType;
  50. return this;
  51. }
  52. @Override
  53. public HttpRequest.Builder body(String body) {
  54. this.body = body;
  55. return this;
  56. }
  57. @Override
  58. public HttpRequest.Builder addCookie(HttpCookie cookie) {
  59. this.cookies.add(cookie);
  60. return this;
  61. }
  62. @Override
  63. public HttpRequest build() {
  64. return new HttpRequest(url, headers, body, method, contentType, cookies.toArray(new HttpCookie[0]));
  65. }
  66. }