|
Author: doogie
Date: Thu Apr 1 04:37:50 2010 New Revision: 929824 URL: http://svn.apache.org/viewvc?rev=929824&view=rev Log: Refactored setUseSoftReference, to call a new method CacheLine.changeLine. Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java?rev=929824&r1=929823&r2=929824&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/CacheLine.java Thu Apr 1 04:37:50 2010 @@ -35,6 +35,7 @@ public abstract class CacheLine<V> imple this.loadTime = loadTime; } + abstract CacheLine<V> changeLine(boolean useSoftReference, long expireTime); public abstract V getValue(); public abstract boolean isInvalid(); Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java?rev=929824&r1=929823&r2=929824&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/HardRefCacheLine.java Thu Apr 1 04:37:50 2010 @@ -32,6 +32,18 @@ public final class HardRefCacheLine<V> e this.value = value; } + CacheLine<V> changeLine(boolean useSoftReference, long expireTime) { + if (useSoftReference) { + return new SoftRefCacheLine<V>(getValue(), loadTime, expireTime); + } else { + if (this.expireTime == expireTime) { + return this; + } else { + return new HardRefCacheLine<V>(getValue(), loadTime, expireTime); + } + } + } + @Override public V getValue() { return value; Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java?rev=929824&r1=929823&r2=929824&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/SoftRefCacheLine.java Thu Apr 1 04:37:50 2010 @@ -32,6 +32,18 @@ public final class SoftRefCacheLine<V> e this.ref = new CacheSoftReference<V>(value); } + CacheLine<V> changeLine(boolean useSoftReference, long expireTime) { + if (useSoftReference) { + if (this.expireTime == expireTime) { + return this; + } else { + return new SoftRefCacheLine<V>(getValue(), loadTime, expireTime); + } + } else { + return new HardRefCacheLine<V>(getValue(), loadTime, expireTime); + } + } + @Override public V getValue() { return ref.get(); Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java?rev=929824&r1=929823&r2=929824&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java Thu Apr 1 04:37:50 2010 @@ -500,13 +500,7 @@ public class UtilCache<K, V> implements this.useSoftReference = useSoftReference; for (K key: cacheLineTable.keySet()) { CacheLine<V> line = cacheLineTable.get(key); - if (useSoftReference) { - if (line instanceof SoftRefCacheLine) continue; - cacheLineTable.put(key, new SoftRefCacheLine<V>(line.getValue(), line.loadTime, line.expireTime)); - } else { - if (line instanceof HardRefCacheLine) continue; - cacheLineTable.put(key, new HardRefCacheLine<V>(line.getValue(), line.loadTime, line.expireTime)); - } + cacheLineTable.put(key, line.changeLine(useSoftReference, line.expireTime)); } } } |
| Free forum by Nabble | Edit this page |
