Ranides Atterwim 9 роки тому
батько
коміт
aae94a5cf3

+ 26 - 24
assira/src/main/java/net/ranides/assira/collection/maps/Cache.java

@@ -61,32 +61,37 @@ public abstract class Cache<K,V> {
     }
 
     public final V get(K key, Supplier<V> function) {
-        Reference<V> ref = getReference(key);
+        Reference<V> ref = iget(key);
         if(null == ref) {
             cleanup();
-            return put(key, function.get());
+            return iput(key, function.get());
         }
         V ret = ref.get();
         if(null == ret) {
             cleanup();
-            return put(key, function.get());
+            return iput(key, function.get());
         }
         return ret;
     }
 
-    protected abstract Reference<V> getReference(K key);
+    public final void clear() {
+        iclear();
+        cleanup();
+    }
+
+    protected abstract Reference<V> iget(K key);
 
-    protected abstract V put(K key, V value);
+    protected abstract V iput(K key, V value);
 
-    protected abstract void remove(K key);
+    protected abstract void iremove(K key);
 
-    public abstract void clear();
+    protected abstract void iclear();
 
     protected static void cleanup() {
         if(!USE_THREAD) {
             KRef ref;
             while ( null != (ref = (KRef)QUEUE.poll()) ) {
-                ref.src.remove(ref.key);
+                ref.src.iremove(ref.key);
             }
         }
     }
@@ -95,7 +100,7 @@ public abstract class Cache<K,V> {
         try {
             while (true) {
                 KRef ref = (KRef) QUEUE.remove();
-                ref.src.remove(ref.key);
+                ref.src.iremove(ref.key);
             }
         } catch (InterruptedException cause) {
             // shutdown
@@ -111,25 +116,24 @@ public abstract class Cache<K,V> {
         }
 
         @Override
-        protected V put(K key, V value) {
+        protected V iput(K key, V value) {
             map.put(key, new KRef<K, V>(this, key, value));
             return value;
         }
 
         @Override
-        public Reference<V> getReference(K key) {
+        public Reference<V> iget(K key) {
             return map.get(key);
         }
 
         @Override
-        protected void remove(K key) {
+        protected void iremove(K key) {
             map.remove(key);
         }
 
         @Override
-        public void clear() {
+        public void iclear() {
             map.clear();
-            cleanup();
         }
     }
 
@@ -143,7 +147,7 @@ public abstract class Cache<K,V> {
         }
 
         @Override
-        protected V put(K key, V value) {
+        protected V iput(K key, V value) {
             synchronized (map) {
                 map.put(key, new KRef<K, V>(this, key, value));
             }
@@ -151,25 +155,24 @@ public abstract class Cache<K,V> {
         }
 
         @Override
-        public Reference<V> getReference(K key) {
+        public Reference<V> iget(K key) {
             synchronized (map) {
                 return map.get(key);
             }
         }
 
         @Override
-        protected void remove(K key) {
+        protected void iremove(K key) {
             synchronized (map) {
                 map.remove(key);
             }
         }
 
         @Override
-        public void clear() {
+        public void iclear() {
             synchronized (map) {
                 map.clear();
             }
-            cleanup();
         }
     }
 
@@ -185,25 +188,24 @@ public abstract class Cache<K,V> {
         }
 
         @Override
-        protected V put(K key, V value) {
+        protected V iput(K key, V value) {
             map.put(key, new TRef<K, V>(this, key, value, ttl));
             return value;
         }
 
         @Override
-        public Reference<V> getReference(K key) {
+        public Reference<V> iget(K key) {
             return map.get(key);
         }
 
         @Override
-        protected void remove(K key) {
+        protected void iremove(K key) {
             map.remove(key);
         }
 
         @Override
-        public void clear() {
+        public void iclear() {
             map.clear();
-            cleanup();
         }
     }