All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ecwid.consul.v1.Request Maven / Gradle / Ivy

package com.ecwid.consul.v1;

import com.ecwid.consul.UrlParameters;
import com.ecwid.consul.transport.HttpRequest;

import java.util.ArrayList;
import java.util.List;

public final class Request {

	private final String endpoint;
	private final List urlParameters;

	private final String content;
	private final byte[] binaryContent;

	private final String token;

	private Request(String endpoint, List urlParameters, String content, byte[] binaryContent, String token) {
		if (content != null && binaryContent != null) {
			throw new IllegalArgumentException("You should set only content or binaryContent, not both.");
		}

		this.endpoint = endpoint;
		this.urlParameters = urlParameters;
		this.content = content;
		this.binaryContent = binaryContent;
		this.token = token;
	}

	public String getEndpoint() {
		return endpoint;
	}

	public List getUrlParameters() {
		return urlParameters;
	}

	public String getContent() {
		return content;
	}

	public byte[] getBinaryContent() {
		return binaryContent;
	}

	public String getToken() {
		return token;
	}

	// -------------------------------
	// Builder
	public static class Builder {
		private String endpoint;
		private List urlParameters = new ArrayList<>();

		private String content;
		private byte[] binaryContent;

		private String token;

		public static Builder newBuilder() {
			return new Builder();
		}

		public Builder setEndpoint(String endpoint) {
			this.endpoint = endpoint;
			return this;
		}

		public Builder addUrlParameters(List urlParameters) {
			this.urlParameters.addAll(urlParameters);
			return this;
		}

		public Builder addUrlParameter(UrlParameters urlParameter) {
			this.urlParameters.add(urlParameter);
			return this;
		}

		public Builder setContent(String content) {
			this.content = content;
			return this;
		}

		public Builder setBinaryContent(byte[] binaryContent) {
			this.binaryContent = binaryContent;
			return this;
		}

		public Builder setToken(String token) {
			this.token = token;
			return this;
		}

		public Request build() {
			return new Request(endpoint, urlParameters, content, binaryContent, token);
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy