1 package rero.bridges.event; 2 3 import rero.ircfw.*; 4 import rero.ircfw.interfaces.*; 5 6 import java.util.*; 7 8 public abstract class EventChatListener implements ChatListener 9 { 10 protected List listeners = new LinkedList(); 11 protected int storedFlags = 0; 13 public void setFlags(int flag) 14 { 15 storedFlags = storedFlags | flag; 16 } 17 18 public void addListener(CodeSnippet code) 19 { 20 listeners.add(code); 21 } 22 23 public int fireChatEvent (HashMap eventDescription) 24 { 25 Iterator i = listeners.iterator(); 26 while (i.hasNext()) 27 { 28 int value = ((CodeSnippet)i.next()).execute(eventDescription); 29 30 if ((value & ChatListener.REMOVE_LISTENER) == ChatListener.REMOVE_LISTENER) 31 { 32 i.remove(); 33 } 34 35 if ((value & ChatListener.EVENT_HALT) == ChatListener.EVENT_HALT) 36 { 37 return ChatListener.EVENT_HALT | storedFlags; 38 } 39 } 40 41 return ChatListener.EVENT_DONE | storedFlags; 42 } 43 44 public abstract boolean isChatEvent(String eventId, HashMap eventDescription); 45 } 46 | Popular Tags |