001
014
015 package com.liferay.portal.cache.ehcache;
016
017 import com.liferay.portal.kernel.cache.PortalCache;
018 import com.liferay.portal.kernel.cache.PortalCacheWrapper;
019
020 import net.sf.ehcache.Ehcache;
021
022
025 public class EhcacheUnwrapUtil {
026
027 public static Ehcache getEhcache(PortalCache<?, ?> portalCache) {
028 PortalCache<?, ?> currentPortalCache = portalCache;
029
030 while (currentPortalCache instanceof PortalCacheWrapper) {
031 PortalCacheWrapper<?, ?> portalCacheWrapper =
032 (PortalCacheWrapper<?, ?>)currentPortalCache;
033
034 currentPortalCache = portalCacheWrapper.getWrappedPortalCache();
035 }
036
037 if (currentPortalCache instanceof EhcachePortalCache) {
038 EhcachePortalCache<?, ?> ehcachePortalCache =
039 (EhcachePortalCache<?, ?>)currentPortalCache;
040
041 return ehcachePortalCache.ehcache;
042 }
043
044 throw new IllegalArgumentException(
045 "Unable to locate Ehcache from " + portalCache);
046 }
047
048 }