KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > factory > CachingPool


1 package jfun.yan.factory;
2
3 /**
4  * A thread-unsafe implementation of Pool that does simple caching.
5  * <p>
6  * @author Ben Yu
7  * Feb 2, 2006 12:13:08 PM
8  */

9 public class CachingPool<T> implements Pool<T> {
10   private transient T v = null;
11   private transient boolean pooled = false;
12   private void readObject(java.io.ObjectInputStream JavaDoc in)
13   throws ClassNotFoundException JavaDoc, java.io.IOException JavaDoc{
14     in.defaultReadObject();
15     this.pooled = false;
16   }
17   
18   public T getInstance(Factory<T> factory) {
19     if(!pooled){
20       v = factory.create();
21       pooled = true;
22     }
23     return v;
24   }
25   public T getPooledInstance(T def) {
26     return pooled?v:def;
27   }
28   /**
29    * Is this pool currently having something in cache?
30    */

31   public boolean isPooled(){
32     return pooled;
33   }
34 }
35
Popular Tags