package eu.dnetlib.espas.gui.shared;

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

import com.google.gwt.user.client.rpc.IsSerializable;

public class Observation implements IsSerializable {
	
	private ValidityStatus validityStatus = ValidityStatus.Valid;
	
	private String id;
	private TimeExtent phenomenonTime;
	private Date resultTime;
	private TimeExtent validTime;
	private Process procedure;
	private Vocabulary featureOfInterest;
	private Vocabulary observedProperty;
	private String description;
	private String resolution;
	private String temporalResolution;
	private Vocabulary resultAccumulation;
	private Vocabulary status;
	private Vocabulary licence;

	private List<RelatedParty> relatedParties;
	
	private List<Citation> citations;
	
	private List<Project> projects;
	
	private List<Parameter> parameters;
	
	private BeanList<GeovertExtent> geovertExtents;
	
	private List<Context> contexts;
	
	private List<Quality> qualities;
	
	private List<Result> results;
	
	private Identifier identifier;
	
	private String template;
	
	public ValidityStatus getValidityStatus() {
		return validityStatus;
	}

	public void setValidityStatus(ValidityStatus validityStatus) {
		this.validityStatus = validityStatus;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}
	
	public TimeExtent getPhenomenonTime() {
		return phenomenonTime;
	}

	public void setPhenomenonTime(TimeExtent phenomenonTime) {
		this.phenomenonTime = phenomenonTime;
	}

	public Date getResultTime() {
		return resultTime;
	}

	public void setResultTime(Date resultTime) {
		this.resultTime = resultTime;
	}

	public TimeExtent getValidTime() {
		return validTime;
	}

	public void setValidTime(TimeExtent validTime) {
		this.validTime = validTime;
	}

	public Process getProcedure() {
		return procedure;
	}

	public void setProcedure(Process procedure) {
		this.procedure = procedure;
	}

	public Vocabulary getFeatureOfInterest() {
		return featureOfInterest;
	}

	public void setFeatureOfInterest(Vocabulary featureOfInterest) {
		this.featureOfInterest = featureOfInterest;
	}

	public Vocabulary getObservedProperty() {
		return observedProperty;
	}

	public void setObservedProperty(Vocabulary observedProperty) {
		this.observedProperty = observedProperty;
	}

	public String getDescription() {
		return description;
	}

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

	public String getResolution() {
		return resolution;
	}

	public void setResolution(String resolution) {
		this.resolution = resolution;
	}

	public String getTemporalResolution() {
		return temporalResolution;
	}

	public void setTemporalResolution(String temporalResolution) {
		this.temporalResolution = temporalResolution;
	}

	public Vocabulary getResultAccumulation() {
		return resultAccumulation;
	}

	public void setResultAccumulation(Vocabulary resultAccumulation) {
		this.resultAccumulation = resultAccumulation;
	}

	public Vocabulary getStatus() {
		return status;
	}

	public void setStatus(Vocabulary status) {
		this.status = status;
	}

	public Vocabulary getLicence() {
		return licence;
	}

	public void setLicence(Vocabulary licence) {
		this.licence = licence;
	}

	public List<RelatedParty> getRelatedParties() {
		return relatedParties;
	}

	public void setRelatedParties(List<RelatedParty> relatedParties) {
		this.relatedParties = relatedParties;
	}

	public List<Citation> getCitations() {
		return citations;
	}

	public void setCitations(List<Citation> citations) {
		this.citations = citations;
	}
	
	public List<Project> getProjects() {
		return projects;
	}

	public void setProjects(List<Project> projects) {
		this.projects = projects;
	}

	public List<Parameter> getParameters() {
		return parameters;
	}

	public void setParameters(List<Parameter> parameters) {
		this.parameters = parameters;
	}

	public BeanList<GeovertExtent> getGeovertExtents() {
		return geovertExtents;
	}

	public void setGeovertExtents(BeanList<GeovertExtent> geovertExtents) {
		this.geovertExtents = geovertExtents;
	}

	public List<Context> getContexts() {
		return contexts;
	}

	public void setContexts(List<Context> contexts) {
		this.contexts = contexts;
	}

	public List<Quality> getQualities() {
		return qualities;
	}

	public void setQualities(List<Quality> qualities) {
		this.qualities = qualities;
	}

	public List<Result> getResults() {
		return results;
	}

	public void setResults(List<Result> results) {
		this.results = results;
	}

	public Identifier getIdentifier() {
		return identifier;
	}

	public void setIdentifier(Identifier identifier) {
		this.identifier = identifier;
	}

	public String getTemplate() {
		return template;
	}

	public void setTemplate(String template) {
		this.template = template;
	}
}
