001 /*
002 @license.text@
003 */
004 package biz.hammurapi.cache;
005
006 import java.util.ArrayList;
007 import java.util.Collection;
008 import java.util.Iterator;
009
010 /**
011 * Implements remove event propagation to caches.
012 * @author Pavel Vlasov
013 * @version $Revision: 1.1 $
014 */
015 public abstract class AbstractProducer implements Producer {
016 private Collection caches=new ArrayList();
017
018 protected void onRemove(Object key) {
019 synchronized (caches) {
020 Iterator it=caches.iterator();
021 while (it.hasNext()) {
022 ((Cache) it.next()).remove(key);
023 }
024 }
025 }
026
027 public void addCache(Cache cache) {
028 synchronized (caches) {
029 caches.add(cache);
030 }
031 }
032
033 }