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

au.com.agic.apptesting.utils.impl.ProxyDetailsImpl Maven / Gradle / Ivy

package au.com.agic.apptesting.utils.impl;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;

import au.com.agic.apptesting.utils.ProxyDetails;

import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

import javax.validation.constraints.NotNull;

/**
 * An data object that holds proxy details
 */
public class ProxyDetailsImpl implements ProxyDetails {

	private final boolean mainProxy;
	private final int port;
	private final Optional interfaceObject;
	private final String name;
	private final Map properties = new HashMap<>();

	public ProxyDetailsImpl(final int port) {
		this.port = port;
		this.mainProxy = false;
		this.name = null;
		this.interfaceObject = Optional.empty();
	}

	public ProxyDetailsImpl(final int port, @NotNull final T interfaceObject) {
		checkNotNull(interfaceObject);

		this.port = port;
		this.mainProxy = false;
		this.name = null;
		this.interfaceObject = Optional.of(interfaceObject);
	}

	public ProxyDetailsImpl(final int port, final boolean mainProxy, @NotNull final T interfaceObject) {
		checkNotNull(interfaceObject);

		this.port = port;
		this.mainProxy = mainProxy;
		this.name = null;
		this.interfaceObject = Optional.of(interfaceObject);
	}

	public ProxyDetailsImpl(
		final int port,
		final boolean mainProxy,
		@NotNull final String name,
		@NotNull final T interfaceObject) {
		checkNotNull(interfaceObject);
		checkArgument(StringUtils.isNotBlank(name));

		this.port = port;
		this.mainProxy = mainProxy;
		this.name = name;
		this.interfaceObject = Optional.of(interfaceObject);
	}

	@Override
	public String getProxyName() {
		return name;
	}

	@Override
	public int getPort() {
		return port;
	}

	@Override
	public Optional getInterface() {
		return interfaceObject;
	}

	@Override
	public Map getProperties() {
		return new HashMap<>(properties);
	}

	@Override
	public void setProperties(@NotNull final Map properties) {
		checkNotNull(properties);

		this.properties.clear();
		this.properties.putAll(properties);
	}

	@Override
	public boolean isMainProxy() {
		return mainProxy;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy