1 package net.pterodactylus.irc.connection;
3 import java.util.HashMap;
7 import net.pterodactylus.irc.Reply;
8 import net.pterodactylus.irc.Source;
10 import com.google.common.base.Optional;
13 * Handler that can process any number of events.
15 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
17 public class SimpleCommandHandler implements Handler {
19 private final Map<String, EventProcessor> commandEventSenders =
22 public SimpleCommandHandler addCommand(String command,
23 EventProcessor eventProcessor) {
24 commandEventSenders.put(command.toLowerCase(), eventProcessor);
29 public boolean willHandle(Reply reply) {
30 return commandEventSenders.containsKey(reply.command().toLowerCase());
34 public void handleReply(Reply reply) {
35 EventProcessor eventProcessor =
36 commandEventSenders.get(reply.command().toLowerCase());
37 eventProcessor.processEvent(reply.source(), reply.parameters());
41 * Interface for event processors.
43 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
46 public static interface EventProcessor {
48 void processEvent(Optional<Source> source, List<String> parameters);