package eu.dnetlib.r2d2.rmi;

import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class ComprehensiveSearchResult {

	private int peopleResultCount;
	private int groupResultCount;
	private int readingListResultCount;
	private int documentResultCount;

	//Do we need to add tokens here for getting further results?

	//Should contain the first...5? results from each??
	private List<Profile> profileResults;
	private List<Group> groupResults;
	private List<ReadingList> readingListResults;
	private List<PublishedItem> documentResult;

	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/")
	public int getPeopleResultCount() {
		return peopleResultCount;
	}

	public void setPeopleResultCount(int peopleResultCount) {
		this.peopleResultCount = peopleResultCount;
	}

	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/")
	public int getGroupResultCount() {
		return groupResultCount;
	}

	public void setGroupResultCount(int groupResultCount) {
		this.groupResultCount = groupResultCount;
	}

	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/")
	public int getReadingListResultCount() {
		return readingListResultCount;
	}

	public void setReadingListResultCount(int readingListResultCount) {
		this.readingListResultCount = readingListResultCount;
	}

	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/")
	public int getDocumentResultCount() {
		return documentResultCount;
	}

	public void setDocumentResultCount(int documentResultCount) {
		this.documentResultCount = documentResultCount;
	}

	@XmlElementWrapper(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "profileResults")
	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "item")
	public List<Profile> getProfileResults() {
		return profileResults;
	}

	public void setProfileResults(List<Profile> profileResults) {
		this.profileResults = profileResults;
	}

	@XmlElementWrapper(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "groupResults")
	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "item")
	public List<Group> getGroupResults() {
		return groupResults;
	}

	public void setGroupResults(List<Group> groupResults) {
		this.groupResults = groupResults;
	}

	@XmlElementWrapper(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "resingListResults")
	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "item")
	public List<ReadingList> getReadingListResults() {
		return readingListResults;
	}

	public void setReadingListResults(List<ReadingList> readingListResults) {
		this.readingListResults = readingListResults;
	}

	@XmlElementWrapper(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "publishedItems")
	@XmlElement(namespace = "http://rmi.r2d2.dnetlib.eu/", name = "item")
	public List<PublishedItem> getDocumentResult() {
		return documentResult;
	}

	public void setDocumentResult(List<PublishedItem> documentResult) {
		this.documentResult = documentResult;
	}

}
