001    package org.mycore.services.imaging;
002    
003    import org.apache.log4j.Logger;
004    import org.mycore.common.events.MCREvent;
005    import org.mycore.common.events.MCREventHandlerBase;
006    import org.mycore.datamodel.ifs.MCRFile;
007    
008    public class MCRImgCacheEventHandler extends MCREventHandlerBase {
009        private static Logger LOGGER = Logger.getLogger(MCRImgCacheEventHandler.class.getName());
010    
011        /**
012         * Handles file created events.
013         * 
014         * @param evt
015         *            the event that occured
016         * @param file
017         *            the MCRFile that caused the event
018         */
019        protected void handleFileCreated(MCREvent evt, MCRFile file) {
020            LOGGER.debug("MCRImgCacheEventHandler.handleFileCreated");
021            LOGGER.debug("FileName: " + file.getName());
022            LOGGER.debug("OwnerID: " + file.getOwnerID());
023            MCRImgCacheManager imgCache = MCRImgCacheManager.instance();
024    
025            if (!file.getOwnerID().equals(MCRImgCacheManager.CACHE_FOLDER) && !imgCache.existInCache(file)) {
026                LOGGER.debug("MCRImgCacheEventHandler.handleFileCreated - IF");
027                LOGGER.debug("FileName: " + file.getName());
028                LOGGER.debug("OwnerID: " + file.getOwnerID());
029                LOGGER.debug("ID: " + file.getID());
030                try {
031                    MCRImgCacheCommands.cacheFile(file.getID());
032                } catch (Exception e) {
033                    // TODO Auto-generated catch block
034                    e.printStackTrace();
035                }
036            } else {
037                LOGGER.debug("MCRImgCacheEventHandler.handleFileCreated");
038                LOGGER.debug("We don't want to cache files from Image Cache");
039            }
040        }
041    
042        /**
043         * Handles file deleted events.
044         * 
045         * @param evt
046         *            the event that occured
047         * @param file
048         *            the MCRFile that caused the event
049         */
050        protected void handleFileDeleted(MCREvent evt, MCRFile file) {
051            MCRImgCacheManager imgCache = MCRImgCacheManager.instance();
052            if (!file.getOwnerID().equals(MCRImgCacheManager.CACHE_FOLDER) && imgCache.existInCache(file)) {
053                try {
054                    MCRImgCacheCommands.deleteCachedFile(file.getID());
055                } catch (Exception e) {
056                    // TODO Auto-generated catch block
057                    e.printStackTrace();
058                }
059                LOGGER.debug("MCRImgCacheEventHandler.handleFileDeleted");
060                LOGGER.debug("Remove File: " + file.getName());
061            } else {
062                LOGGER.debug("MCRImgCacheEventHandler.handleFileCreated");
063                LOGGER.debug("We only delete files from Image Cache");
064            }
065        }
066    
067    }