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

gov.loc.repository.bagit.FetchTxt Maven / Gradle / Ivy

package gov.loc.repository.bagit;

import java.text.MessageFormat;
import java.util.List;

public interface FetchTxt extends List, BagFile {

	static final String NO_SIZE_MARKER = "-";

	public enum FetchStatus {
		NOT_FETCHED, 
		FETCH_FAILED, 
		VERIFY_FAILED, 
		SUCCEEDED;
	}

	public class FilenameSizeUrl {
		private String filename;
		private Long size;
		private String url;
		private FetchStatus fetchStatus;

		public FilenameSizeUrl() {
		}

		public FilenameSizeUrl(String filename, Long size, String url) {
			this.setFilename(filename);
			this.setSize(size);
			this.setUrl(url);
		}
		
		public FilenameSizeUrl(String filename, Long size, String url, FetchStatus fetchStatus) {
			this.setFilename(filename);
			this.setSize(size);
			this.setUrl(url);
			this.setFetchStatus(fetchStatus);
		}

		public void setFilename(String filename) {
			this.filename = filename;
		}

		public String getFilename() {
			return filename;
		}

		public void setSize(Long size) {
			this.size = size;
		}

		public Long getSize() {
			return size;
		}

		public void setUrl(String url) {
			this.url = url;
		}

		public String getUrl() {
			return url;
		}

		public FetchStatus getFetchStatus(){
			return this.fetchStatus;
		}
		
		public void setFetchStatus(FetchStatus fetchStatus){
			this.fetchStatus = fetchStatus;
		}
		
		@Override
		public String toString() {
			String size = NO_SIZE_MARKER;
			if (this.size != null) {
				size = this.size.toString();
			}
			return MessageFormat.format("Filename is {0}. Size is {1}. Url is {2}. Fetch status is {3}.", this.filename, size, this.url, this.fetchStatus);
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result
					+ ((filename == null) ? 0 : filename.hashCode());
			result = prime * result + ((url == null) ? 0 : url.hashCode());
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj){
				return true;
			}
			if (obj == null){
				return false;
			}
			if (getClass() != obj.getClass()){
				return false;
			}
			FilenameSizeUrl other = (FilenameSizeUrl) obj;
			if (filename == null) {
				if (other.filename != null){
					return false;
				}
			} else if (!filename.equals(other.filename)){
				return false;
			}
			if (url == null) {
				if (other.url != null){
					return false;
				}
			} else if (!url.equals(other.url)){
				return false;
			}
			return true;
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy