View Javadoc
1 /*** 2 * Copyright (c) 2003 held jointly by the individual authors. 3 * 4 * This library is free software; you can redistribute it and/or modify it 5 * under the terms of the GNU Lesser General Public License as published 6 * by the Free Software Foundation; either version 2.1 of the License, or 7 * (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; with out even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this library; if not, write to the Free Software Foundation, 16 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 17 * 18 * > http://www.gnu.org/copyleft/lesser.html 19 * > http://www.opensource.org/licenses/lgpl-license.php 20 */ 21 package net.mlw.gfw.event; 22 23 import java.util.Stack; 24 25 /*** 26 * @author Matthew L. Wilson 27 * @version $Revision: 1.3 $ $Date: 2004/06/29 20:32:57 $ 28 */ 29 public class AsynchronousEventHandlerDecorator extends Thread implements EventHandler 30 { 31 private EventHandler parent; 32 private Stack eventStack = new Stack(); 33 34 /*** 35 * @param parent 36 */ 37 public AsynchronousEventHandlerDecorator(EventHandler parent) 38 { 39 setDaemon(true); 40 this.parent = parent; 41 } 42 43 /*** 44 * @see net.mlw.gfw.event.EventHandler#onEvent(net.mlw.gfw.event.Event) 45 */ 46 public synchronized void onEvent(Event event) 47 { 48 eventStack.addElement(event); 49 interrupt(); 50 } 51 52 /*** 53 * @see java.lang.Runnable#run() 54 */ 55 public void run() 56 { 57 while (true) 58 { 59 try 60 { 61 while (eventStack.size() == 0) 62 { 63 synchronized (this) 64 { 65 wait(); 66 } 67 } 68 69 Event event = (Event) eventStack.pop(); 70 System.out.println(this +" " + event); 71 parent.onEvent(event); 72 } 73 catch (InterruptedException normalBehavior) 74 { 75 } 76 } 77 } 78 }

This page was automatically generated by Maven