/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pieShare.pieShareApp.service.historyService; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.pieShare.pieShareApp.model.pieFile.PieFile; import org.pieShare.pieShareApp.service.comparerService.api.ILocalFileCompareService; import org.pieShare.pieShareApp.service.database.api.IDatabaseService; import org.pieShare.pieShareApp.service.fileService.api.IFileService; /** * * @author Svetoslav */ public class HistoryService implements IHistoryService { private IDatabaseService databaseService; private IFileService fileService; public void setDatabaseService(IDatabaseService databaseService) { this.databaseService = databaseService; } public void setFileService(IFileService fileService) { this.fileService = fileService; } @Override public void syncPieFileWithDb(PieFile pieFile) { databaseService.mergePieFile(pieFile); } @Override public PieFile syncDeleteToHistory(PieFile file) { PieFile historyFile = this.databaseService.findPieFile(file); historyFile.setDeleted(true); this.databaseService.mergePieFile(historyFile); return historyFile; } @Override public List<PieFile> syncLocalPieFilesWithHistory() { this.databaseService.resetAllPieFileSynchedFlags(); List<PieFile> filesToSend = new ArrayList<PieFile>(); try { List<PieFile> files = this.fileService.getAllFiles(); for(PieFile file: files) { PieFile historyFile = this.databaseService.findPieFile(file); this.databaseService.mergePieFile(file); //in this case there is a new file if(historyFile == null) { filesToSend.add(file); } else { //in this case a file has changed if(!file.equals(historyFile)){ filesToSend.add(file); } } } //get all deleted files List<PieFile> deletedFiles = this.databaseService.findAllUnsyncedPieFiles(); filesToSend.addAll(deletedFiles); } catch (IOException ex) { //todo-history: what has to be done here? } return filesToSend; } }