1 33 34 package com.icesoft.applications.faces.auctionMonitor; 35 36 import java.util.Hashtable ; 37 import java.util.Iterator ; 38 import java.util.Map ; 39 import java.util.WeakHashMap ; 40 41 46 public class AuctionState { 47 public static final String AUCTION_STATE = 48 "com.icesoft.applications.faces.auctionMonitor.AuctionState"; 49 private static Map auctionMap = new Hashtable (); 50 private static AuctionState singleton = null; 51 private WeakHashMap listeners = new WeakHashMap (); 52 53 public static Map getAuctionMap() { 54 return auctionMap; 55 } 56 57 public static synchronized AuctionState getInstance() { 58 if (null == singleton) { 59 singleton = new AuctionState(); 60 } 61 return singleton; 62 } 63 64 public void addAuctionListener(AuctionListener listener) { 65 listeners.put(listener, null); 66 } 67 68 public void fireAuctionEvent(final AuctionEvent auctionEvent) { 69 Thread t = new Thread (new Runnable () { 70 public void run() { 71 Iterator listenerList = listeners.keySet().iterator(); 72 AuctionListener auctionListener; 73 while (listenerList.hasNext()) { 74 auctionListener = (AuctionListener) listenerList.next(); 75 Thread.currentThread().setContextClassLoader( 76 auctionListener.getClass().getClassLoader()); 77 auctionListener.handleAuctionEvent(auctionEvent); 78 } 79 } 80 }); 81 t.start(); 82 } 83 } 84 | Popular Tags |