KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > applications > faces > auctionMonitor > AuctionState


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.applications.faces.auctionMonitor;
35
36 import java.util.Hashtable JavaDoc;
37 import java.util.Iterator JavaDoc;
38 import java.util.Map JavaDoc;
39 import java.util.WeakHashMap JavaDoc;
40
41 /**
42  * Class used to maintain an overall state of the auction This class is a
43  * singleton as there should only be a single state at one time Also this class
44  * will handle global auction events
45  */

46 public class AuctionState {
47     public static final String JavaDoc AUCTION_STATE =
48             "com.icesoft.applications.faces.auctionMonitor.AuctionState";
49     private static Map JavaDoc auctionMap = new Hashtable JavaDoc();
50     private static AuctionState singleton = null;
51     private WeakHashMap JavaDoc listeners = new WeakHashMap JavaDoc();
52
53     public static Map JavaDoc 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 JavaDoc t = new Thread JavaDoc(new Runnable JavaDoc() {
70             public void run() {
71                 Iterator JavaDoc 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