001// ______________________________________________________
002// Generated by sql2java - https://github.com/10km/sql2java-2-6-7 (custom branch) 
003// modified by guyadong from
004// sql2java original version https://sourceforge.net/projects/sql2java/ 
005// JDBC driver used at code generation time: com.mysql.jdbc.Driver
006// template: removal.listener.container.java.vm
007// ______________________________________________________
008package net.gdface.facelog.db;
009
010import java.util.LinkedHashSet;
011
012import com.google.common.base.Preconditions;
013import com.google.common.cache.RemovalListener;
014import com.google.common.cache.RemovalNotification;
015
016/**
017 * {@link RemovalListener}¹ÜÀíÈÝÆ÷
018 * @author guyadong
019 *
020 * @param <K>
021 * @param <V>
022 */
023public class RemovalListenerContainer<K,V> implements RemovalListener<K, V> {
024    LinkedHashSet<RemovalListener<K,V>> listeners = new LinkedHashSet<RemovalListener<K,V>>(); 
025    public RemovalListenerContainer() {
026    }
027
028    /**
029     * @param e
030     * @return
031     * @see java.util.HashSet#add(java.lang.Object)
032     */
033    public boolean add(RemovalListener<K, V> e) {
034        return listeners.add(Preconditions.checkNotNull(e));
035    }
036
037    /**
038     * @param o
039     * @return
040     * @see java.util.HashSet#remove(java.lang.Object)
041     */
042    public boolean remove(RemovalListener<K, V> o) {
043        return listeners.remove(o);
044    }
045
046    /**
047     * 
048     * @see java.util.HashSet#clear()
049     */
050    public void clear() {
051        listeners.clear();
052    }
053
054    @Override
055    public void onRemoval(RemovalNotification<K, V> notification) {
056        for(RemovalListener<K, V> listener:listeners){
057            try{
058                listener.onRemoval(notification);
059            }catch(Exception e){
060                e.printStackTrace();
061            }
062        }
063    }
064
065}