/* * 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.task.localTasks.fileEventTask; import java.io.File; import java.io.IOException; import org.pieShare.pieShareApp.model.PieShareAppBeanNames; import org.pieShare.pieShareApp.model.PieUser; import org.pieShare.pieShareApp.model.message.fileMessageBase.FileMessageBase; import org.pieShare.pieShareApp.model.message.api.IFileMessageBase; import org.pieShare.pieShareApp.model.pieFile.PieFile; import org.pieShare.pieShareApp.service.factoryService.IMessageFactoryService; import org.pieShare.pieShareApp.service.fileFilterService.api.IFileFilterService; import org.pieShare.pieShareApp.service.fileService.api.IFileService; import org.pieShare.pieShareApp.service.fileService.fileEncryptionService.IFileEncryptionService; import org.pieShare.pieShareApp.service.fileService.fileListenerService.api.IFileWatcherService; import org.pieShare.pieShareApp.service.historyService.IHistoryService; import org.pieShare.pieShareApp.task.AMessageSendingTask; import org.pieShare.pieTools.piePlate.service.cluster.api.IClusterManagementService; import org.pieShare.pieTools.piePlate.service.cluster.exception.ClusterManagmentServiceException; import org.pieShare.pieTools.pieUtilities.service.beanService.IBeanService; import org.pieShare.pieTools.pieUtilities.service.pieExecutorService.api.task.IPieTask; import org.pieShare.pieTools.pieUtilities.service.pieLogger.PieLogger; /** * * @author Svetoslav */ public abstract class ALocalFileEventTask extends AMessageSendingTask { protected IFileService fileService; protected IHistoryService historyService; protected IFileFilterService fileFilterService; protected IFileEncryptionService fileEncrypterService; protected IFileWatcherService fileWatcherService; protected IFileService historyFileService; protected File file; public void setFileWatcherService(IFileWatcherService fileWatcherService) { this.fileWatcherService = fileWatcherService; } public void setFileEncrypterService(IFileEncryptionService fileEncrypterService) { this.fileEncrypterService = fileEncrypterService; } public void setHistoryService(IHistoryService historyService) { this.historyService = historyService; } public void setFileFilterService(IFileFilterService fileFilterService) { this.fileFilterService = fileFilterService; } public void setFileService(IFileService fileService) { PieLogger.info(this.getClass(), "Setting FileService!"); this.fileService = fileService; } public void setHistoryFileService(IFileService historyFileService) { this.historyFileService = historyFileService; } public void setFile(File file) { this.file = file; } protected PieFile prepareWork() throws IOException { if(!this.fileFilterService.checkFile(this.file)) { return null; } this.fileService.waitUntilCopyFinished(this.file); PieFile pieFile = this.fileService.getPieFile(file); PieFile oldPieFile = this.historyFileService.getPieFile(this.file); if(oldPieFile != null && oldPieFile.equals(pieFile)) { return null; } if(this.fileWatcherService.isPieFileModifiedByUs(pieFile)) { this.fileWatcherService.removePieFileFromModifiedList(pieFile); return null; } return pieFile; } protected void doWork(IFileMessageBase msg, PieFile file) { try { msg.setPieFile(file); this.setDefaultAdresse(msg); this.clusterManagementService.sendMessage(msg); } catch (ClusterManagmentServiceException ex) { PieLogger.info(this.getClass(), "Local file delete messed up!", ex); } } }