package com.idega.block.process.business.file; import java.util.Collection; import java.util.logging.Level; import java.util.logging.Logger; import javax.ejb.FinderException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import com.idega.block.process.business.CaseManagersProvider; import com.idega.block.process.data.Case; import com.idega.block.process.data.CaseHome; import com.idega.business.file.FileStatisticsProvider; import com.idega.data.IDOLookup; import com.idega.user.data.User; import com.idega.util.StringUtil; @Service @Scope(BeanDefinition.SCOPE_SINGLETON) public class CaseAttachmentStatisticsProvider implements FileStatisticsProvider { private static final long serialVersionUID = -7668215972004833935L; private static final Logger LOGGER = Logger.getLogger(CaseAttachmentStatisticsProvider.class.getName()); @Autowired private CaseManagersProvider caseManagersProvider; public Collection<User> getPotentialDownloaders(String fileHolderIdentifier) { if (StringUtil.isEmpty(fileHolderIdentifier)) { return null; } Case theCase = null; try { CaseHome caseHome = (CaseHome) IDOLookup.getHome(Case.class); theCase = caseHome.findByPrimaryKey(fileHolderIdentifier); } catch(FinderException e) { } catch(Exception e) { LOGGER.log(Level.WARNING, "Error getting potential attachments downloaders for case: " + fileHolderIdentifier, e); } return theCase == null ? null : theCase.getSubscribers(); } public CaseManagersProvider getCaseManagersProvider() { return caseManagersProvider; } public void setCaseManagersProvider(CaseManagersProvider caseManagersProvider) { this.caseManagersProvider = caseManagersProvider; } }