package pt.rupeal.invoicexpress.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import pt.rupeal.invoicexpress.utils.DocumentsComparable;
/**
* @author dneves
*
* This structure can be find in InvoiceXpress Singleton and ContactsModel.
* DocumentsModel will save the documents user data and documents client data.
*/
public class DocumentsModel implements Serializable {
private static final long serialVersionUID = -7962853032893508474L;
private Map<String, DocumentModel> documents;
private int currentPage;
private int totalPages;
private int downloadedDocuments;
private int totalDocuments;
public DocumentsModel() {
documents = new HashMap<String, DocumentModel>();
}
public Map<String, DocumentModel> getDocuments() {
return documents;
}
public void setDocuments(Map<String, DocumentModel> documents) {
this.documents = documents;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getDownloadedDocuments() {
return downloadedDocuments;
}
public void setDownloadedDocuments(int downloadedDocuments) {
this.downloadedDocuments = downloadedDocuments;
}
public void addDownloadedDocuments(int downloadedDocuments) {
this.downloadedDocuments += downloadedDocuments;
}
public int getTotalDocuments() {
return totalDocuments;
}
public void setTotalDocuments(int totalDocuments) {
this.totalDocuments = totalDocuments;
}
public void clear() {
documents.clear();
currentPage = 0;
totalPages = 0;
downloadedDocuments = 0;
totalDocuments = 0;
}
/**
* Get documents list sorted by filter to show.
* @return
*/
public List<DocumentModel> getDocumentsSorted(){
List<DocumentModel> documentsSorted = new ArrayList<DocumentModel>(documents.values());
Collections.sort(documentsSorted, new DocumentsComparable());
return documentsSorted;
}
}