package eu.dnetlib.rmi.blackboard;

import eu.dnetlib.common.ifaces.ProgressProvider;
import eu.dnetlib.rmi.objects.data.DownloadItem;
import eu.dnetlib.rmi.objects.resultSet.ResultSet;

public class DownloadMessage implements ProgressProvider {

	private String objectStoreID;
	private String protocol;
	private String plugin;
	private String mimeType;
	private ResultSet<DownloadItem> resultSet;
	private int total = 0;
	private int progressTotal = 0;
	private int progressPosition = 0;
	private boolean progressInaccurate = false;

	public DownloadMessage() {}

	public DownloadMessage(final String objectStoreID, final String protocol, final String plugin, final String mimeType,
			final ResultSet<DownloadItem> resultSet) {
		this.objectStoreID = objectStoreID;
		this.protocol = protocol;
		this.plugin = plugin;
		this.mimeType = mimeType;
		this.resultSet = resultSet;
	}

	@Override
	public int getProgressTotal() {
		return progressTotal;
	}

	@Override
	public int getProgressPosition() {
		return progressPosition;
	}

	@Override
	public boolean isProgressInaccurate() {
		return progressInaccurate;
	}

	public void setProgressInaccurate(final boolean progressInaccurate) {
		this.progressInaccurate = progressInaccurate;
	}

	public void setProgressTotal(final int progressTotal) {
		this.progressTotal = progressTotal;
	}

	public void setProgressPosition(final int progressPosition) {
		this.progressPosition = progressPosition;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(final int total) {
		this.total = total;
	}

	public String getObjectStoreID() {
		return objectStoreID;
	}

	public void setObjectStoreID(final String objectStoreID) {
		this.objectStoreID = objectStoreID;
	}

	public String getProtocol() {
		return protocol;
	}

	public void setProtocol(final String protocol) {
		this.protocol = protocol;
	}

	public String getPlugin() {
		return plugin;
	}

	public void setPlugin(final String plugin) {
		this.plugin = plugin;
	}

	public String getMimeType() {
		return mimeType;
	}

	public void setMimeType(final String mimeType) {
		this.mimeType = mimeType;
	}

	public ResultSet<DownloadItem> getResultSet() {
		return resultSet;
	}

	public void setResultSet(final ResultSet<DownloadItem> resultSet) {
		this.resultSet = resultSet;
	}
}
