package com.esri.geoevent.solutions.transport.irc.jerklib.listeners; import java.util.logging.Logger; import com.esri.geoevent.solutions.transport.irc.jerklib.events.*; import com.esri.geoevent.solutions.transport.irc.jerklib.events.IRCEvent.Type; import com.esri.geoevent.solutions.transport.irc.jerklib.events.dcc.DccEvent; import com.esri.geoevent.solutions.transport.irc.jerklib.events.modes.ModeEvent; public abstract class DefaultIRCEventListener implements IRCEventListener { protected Logger log = Logger.getLogger(this.getClass().getName()); public void receiveEvent(IRCEvent e) { Type t = e.getType(); boolean handled = handleChannelEvents(t, e); handled |= handleServerEvents(t, e); handled |= handleOnChannelEvents(t, e); if (!handled) { log.info("Unhandled event: " + e.getRawEventData()); } } protected boolean handleChannelEvents(Type t, IRCEvent e) { // things that happen ON a channel if (Type.TOPIC.equals(t)) { handleTopicEvent((TopicEvent) e); return true; } if (Type.AWAY_EVENT.equals(t)) { handleAwayEvent((AwayEvent) e); return true; } if (Type.CHANNEL_LIST_EVENT.equals(t)) { handleChannelListEvent((ChannelListEvent) e); return true; } if (Type.CHANNEL_MESSAGE.equals(t)) { handleChannelMessage((MessageEvent) e); return true; } if (Type.NICK_CHANGE.equals(t)) { handleNickChangeEvent((NickChangeEvent) e); return true; } if (Type.NICK_IN_USE.equals(t)) { handleNickInUseEvent((NickInUseEvent) e); return true; } if (Type.PRIVATE_MESSAGE.equals(t)) { handlePrivateMessage((MessageEvent) e); return true; } return false; } protected boolean handleServerEvents(Type t, IRCEvent e) { // things that happen on a server if (Type.CONNECT_COMPLETE.equals(t)) { handleConnectComplete((ConnectionCompleteEvent) e); return true; } if (Type.CTCP_EVENT.equals(t)) { handleCtcpEvent((CtcpEvent) e); return true; } if (Type.DCC_EVENT.equals(t)) { handleDccEvent((DccEvent) e); return true; } if (Type.ERROR.equals(t)) { handleErrorEvent((ErrorEvent) e); return true; } if (Type.INVITE_EVENT.equals(t)) { handleInviteEvent((InviteEvent) e); return true; } if (Type.JOIN.equals(t)) { handleJoinEvent((JoinEvent) e); return true; } if (Type.JOIN_COMPLETE.equals(t)) { handleJoinCompleteEvent((JoinCompleteEvent) e); return true; } if (Type.MOTD.equals(t)) { handleMotdEvent((MotdEvent) e); return true; } if (Type.NOTICE.equals(t)) { handleNoticeEvent((NoticeEvent) e); return true; } if (Type.SERVER_INFORMATION.equals(t)) { handleServerInformationEvent((ServerInformationEvent) e); return true; } if (Type.SERVER_VERSION_EVENT.equals(t)) { handleServerVersionEvent((ServerVersionEvent) e); return true; } return false; } protected boolean handleOnChannelEvents(Type t, IRCEvent e) { // things that happen TO a channel if (Type.KICK_EVENT.equals(t)) { handleKickEvent((KickEvent) e); return true; } if (Type.MODE_EVENT.equals(t)) { handleModeEvent((ModeEvent) e); return true; } if (Type.NICK_LIST_EVENT.equals(t)) { handleNickListEvent((NickListEvent) e); return true; } if (Type.PART.equals(t)) { handlePartEvent((PartEvent) e); return true; } if (Type.QUIT.equals(t)) { handleQuitEvent((QuitEvent) e); return true; } if (Type.WHO_EVENT.equals(t)) { handleWhoEvent((WhoEvent) e); return true; } if (Type.WHOIS_EVENT.equals(t)) { handleWhoisEvent((WhoisEvent) e); return true; } if (Type.WHOWAS_EVENT.equals(t)) { handleWhowasEvent((WhowasEvent) e); return true; } return false; } protected void handleWhowasEvent(WhowasEvent event) { log.finest(event.getRawEventData()); } protected void handleWhoisEvent(WhoisEvent event) { log.finest(event.getRawEventData()); } protected void handleWhoEvent(WhoEvent event) { log.finest(event.getRawEventData()); } protected void handleTopicEvent(TopicEvent event) { log.finest(event.getRawEventData()); } protected void handleServerVersionEvent(ServerVersionEvent event) { log.finest(event.getRawEventData()); } protected void handlePrivateMessage(MessageEvent event) { handleChannelMessage(event); } protected void handleServerInformationEvent(ServerInformationEvent event) { log.finest(event.getRawEventData()); } protected void handleQuitEvent(QuitEvent event) { log.finest(event.getRawEventData()); } protected void handlePartEvent(PartEvent event) { log.finest(event.getRawEventData()); } protected void handleNoticeEvent(NoticeEvent event) { log.finest(event.getRawEventData()); } protected void handleNickListEvent(NickListEvent event) { log.finest(event.getRawEventData()); } protected void handleNickInUseEvent(NickInUseEvent event) { log.finest(event.getRawEventData()); } protected void handleNickChangeEvent(NickChangeEvent event) { log.finest(event.getRawEventData()); } protected void handleMotdEvent(MotdEvent event) { log.finest(event.getRawEventData()); } protected void handleModeEvent(ModeEvent event) { log.finest(event.getRawEventData()); } protected void handleKickEvent(KickEvent event) { log.finest(event.getRawEventData()); } protected void handleJoinCompleteEvent(JoinCompleteEvent event) { log.finest(event.getRawEventData()); } protected void handleJoinEvent(JoinEvent event) { log.finest(event.getRawEventData()); } protected void handleInviteEvent(InviteEvent event) { log.finest(event.getRawEventData()); } protected void handleErrorEvent(ErrorEvent event) { log.finest(event.getRawEventData()); } protected void handleCtcpEvent(CtcpEvent event) { log.finest(event.getRawEventData()); } protected void handleDccEvent(DccEvent event) { log.finest(event.getRawEventData()); } protected void handleConnectComplete(ConnectionCompleteEvent event) { log.finest(event.getRawEventData()); } protected void handleChannelMessage(MessageEvent event) { log.finest(event.getRawEventData()); } protected void handleChannelListEvent(ChannelListEvent e) { log.finest(e.getRawEventData()); } protected void handleAwayEvent(AwayEvent e) { log.finest(e.getRawEventData()); } }