package eu.dnetlib.enabling.datasources.rmi;

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

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class DatasourceDesc {

	private String id;
	private String officialName;
	private String englishName;
	private String websiteUrl;
	private String logoUrl;
	private String contactEmail;
	private String country;
	private String organization;
	private Double latitude = 0.0;
	private Double longitude = 0.0;
	private Double timezone = 0.0;
	private String namespacePrefix;
	private String odNumberOfItems;
	private String odNumberOfItemsDate;
	private String odPolicies;
	private String odLanguages;
	private String odContentTypes;
	private String collectedFrom;
	private Boolean inferred = false;
	private Boolean deletedByInference = false;
	private Double trust = 0.9;
	private String inferenceProvenance;
	private Date dateOfValidation;
	private String datasourceClass;
	private String provenanceActionClass;
	private Date dateOfCollection;
	private String typology;
	private String activationId;
	private Boolean mergehomonyms = true;
	private String description;
	private Date releaseStartDate;
	private Date releaseEndDate;
	private String missionStatementUrl;
	private Boolean dataProvider = false;
	private Boolean serviceProvider = false;
	private String databaseAccessType;
	private String dataUploadType;
	private String databaseAccessRestriction;
	private String dataUploadRestriction;
	private Boolean versioning = false;
	private String citationGuidelineUrl;
	private String qualityManagementKind;
	private String pidSystems;
	private String certificates;
	private String aggregator;
	private String issn;
	private String eissn;
	private String lissn;
	private List<IfaceDesc> interfaces = new ArrayList<IfaceDesc>();

	public String getId() {
		return id;
	}

	public void setId(final String id) {
		this.id = id;
	}

	public String getOfficialName() {
		return officialName;
	}

	public void setOfficialName(final String officialName) {
		this.officialName = officialName;
	}

	public String getEnglishName() {
		return englishName;
	}

	public void setEnglishName(final String englishName) {
		this.englishName = englishName;
	}

	public String getWebsiteUrl() {
		return websiteUrl;
	}

	public void setWebsiteUrl(final String websiteUrl) {
		this.websiteUrl = websiteUrl;
	}

	public String getLogoUrl() {
		return logoUrl;
	}

	public void setLogoUrl(final String logoUrl) {
		this.logoUrl = logoUrl;
	}

	public String getContactEmail() {
		return contactEmail;
	}

	public void setContactEmail(final String contactEmail) {
		this.contactEmail = contactEmail;
	}

	public String getCountry() {
		return country;
	}

	public void setCountry(final String country) {
		this.country = country;
	}

	public String getOrganization() {
		return organization;
	}

	public void setOrganization(final String organization) {
		this.organization = organization;
	}

	public Double getLatitude() {
		return latitude;
	}

	public void setLatitude(final Double latitude) {
		this.latitude = latitude;
	}

	public Double getLongitude() {
		return longitude;
	}

	public void setLongitude(final Double longitude) {
		this.longitude = longitude;
	}

	public Double getTimezone() {
		return timezone;
	}

	public void setTimezone(final Double timezone) {
		this.timezone = timezone;
	}

	public String getNamespacePrefix() {
		return namespacePrefix;
	}

	public void setNamespacePrefix(final String namespacePrefix) {
		this.namespacePrefix = namespacePrefix;
	}

	public String getOdNumberOfItems() {
		return odNumberOfItems;
	}

	public void setOdNumberOfItems(final String odNumberOfItems) {
		this.odNumberOfItems = odNumberOfItems;
	}

	public String getOdNumberOfItemsDate() {
		return odNumberOfItemsDate;
	}

	public void setOdNumberOfItemsDate(final String odNumberOfItemsDate) {
		this.odNumberOfItemsDate = odNumberOfItemsDate;
	}

	public String getOdPolicies() {
		return odPolicies;
	}

	public void setOdPolicies(final String odPolicies) {
		this.odPolicies = odPolicies;
	}

	public String getOdLanguages() {
		return odLanguages;
	}

	public void setOdLanguages(final String odLanguages) {
		this.odLanguages = odLanguages;
	}

	public String getOdContentTypes() {
		return odContentTypes;
	}

	public void setOdContentTypes(final String odContentTypes) {
		this.odContentTypes = odContentTypes;
	}

	public String getCollectedFrom() {
		return collectedFrom;
	}

	public void setCollectedFrom(final String collectedFrom) {
		this.collectedFrom = collectedFrom;
	}

	public Boolean isInferred() {
		return inferred;
	}

	public void setInferred(final Boolean inferred) {
		this.inferred = inferred;
	}

	public Boolean isDeletedByInference() {
		return deletedByInference;
	}

	public void setDeletedByInference(final Boolean deletedByInference) {
		this.deletedByInference = deletedByInference;
	}

	public Double getTrust() {
		return trust;
	}

	public void setTrust(final Double trust) {
		this.trust = trust;
	}

	public String getInferenceProvenance() {
		return inferenceProvenance;
	}

	public void setInferenceProvenance(final String inferenceProvenance) {
		this.inferenceProvenance = inferenceProvenance;
	}

	public Date getDateOfValidation() {
		return dateOfValidation;
	}

	public void setDateOfValidation(final Date dateOfValidation) {
		this.dateOfValidation = dateOfValidation;
	}

	public String getDatasourceClass() {
		return datasourceClass;
	}

	public void setDatasourceClass(final String datasourceClass) {
		this.datasourceClass = datasourceClass;
	}

	public String getProvenanceActionClass() {
		return provenanceActionClass;
	}

	public void setProvenanceActionClass(final String provenanceActionClass) {
		this.provenanceActionClass = provenanceActionClass;
	}

	public Date getDateOfCollection() {
		return dateOfCollection;
	}

	public void setDateOfCollection(final Date dateOfCollection) {
		this.dateOfCollection = dateOfCollection;
	}

	public String getTypology() {
		return typology;
	}

	public void setTypology(final String typology) {
		this.typology = typology;
	}

	public String getActivationId() {
		return activationId;
	}

	public void setActivationId(final String activationId) {
		this.activationId = activationId;
	}

	public Boolean isMergehomonyms() {
		return mergehomonyms;
	}

	public void setMergehomonyms(final Boolean mergehomonyms) {
		this.mergehomonyms = mergehomonyms;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(final String description) {
		this.description = description;
	}

	public Date getReleaseStartDate() {
		return releaseStartDate;
	}

	public void setReleaseStartDate(final Date releaseStartDate) {
		this.releaseStartDate = releaseStartDate;
	}

	public Date getReleaseEndDate() {
		return releaseEndDate;
	}

	public void setReleaseEndDate(final Date releaseEndDate) {
		this.releaseEndDate = releaseEndDate;
	}

	public String getMissionStatementUrl() {
		return missionStatementUrl;
	}

	public void setMissionStatementUrl(final String missionStatementUrl) {
		this.missionStatementUrl = missionStatementUrl;
	}

	public Boolean isDataProvider() {
		return dataProvider;
	}

	public void setDataProvider(final Boolean dataProvider) {
		this.dataProvider = dataProvider;
	}

	public Boolean isServiceProvider() {
		return serviceProvider;
	}

	public void setServiceProvider(final Boolean serviceProvider) {
		this.serviceProvider = serviceProvider;
	}

	public String getDatabaseAccessType() {
		return databaseAccessType;
	}

	public void setDatabaseAccessType(final String databaseAccessType) {
		this.databaseAccessType = databaseAccessType;
	}

	public String getDataUploadType() {
		return dataUploadType;
	}

	public void setDataUploadType(final String dataUploadType) {
		this.dataUploadType = dataUploadType;
	}

	public String getDatabaseAccessRestriction() {
		return databaseAccessRestriction;
	}

	public void setDatabaseAccessRestriction(final String databaseAccessRestriction) {
		this.databaseAccessRestriction = databaseAccessRestriction;
	}

	public String getDataUploadRestriction() {
		return dataUploadRestriction;
	}

	public void setDataUploadRestriction(final String dataUploadRestriction) {
		this.dataUploadRestriction = dataUploadRestriction;
	}

	public Boolean isVersioning() {
		return versioning;
	}

	public void setVersioning(final Boolean versioning) {
		this.versioning = versioning;
	}

	public String getCitationGuidelineUrl() {
		return citationGuidelineUrl;
	}

	public void setCitationGuidelineUrl(final String citationGuidelineUrl) {
		this.citationGuidelineUrl = citationGuidelineUrl;
	}

	public String getQualityManagementKind() {
		return qualityManagementKind;
	}

	public void setQualityManagementKind(final String qualityManagementKind) {
		this.qualityManagementKind = qualityManagementKind;
	}

	public String getPidSystems() {
		return pidSystems;
	}

	public void setPidSystems(final String pidSystems) {
		this.pidSystems = pidSystems;
	}

	public String getCertificates() {
		return certificates;
	}

	public void setCertificates(final String certificates) {
		this.certificates = certificates;
	}

	public String getAggregator() {
		return aggregator;
	}

	public void setAggregator(final String aggregator) {
		this.aggregator = aggregator;
	}

	public String getIssn() {
		return issn;
	}

	public void setIssn(final String issn) {
		this.issn = issn;
	}

	public String getEissn() {
		return eissn;
	}

	public void setEissn(final String eissn) {
		this.eissn = eissn;
	}

	public String getLissn() {
		return lissn;
	}

	public void setLissn(final String lissn) {
		this.lissn = lissn;
	}

	public List<IfaceDesc> getInterfaces() {
		return interfaces;
	}

	public void setInterfaces(final List<IfaceDesc> interfaces) {
		this.interfaces = interfaces;
	}

}
