CommandManager.java


current inspection = 2009-09-03 21:56:13 (id #1)


Filter Options
Annotation Kind:
pre
presumption
post
unanalyzed
test_vector


  • char access$002(char)

  • Kind Annotation Text
    postcommandChar == x0
    postinit'ed(commandChar)
    postreturn_value == commandChar

  • char access$102(char)

  • Kind Annotation Text
    postinit'ed(return_value)
    postreturn_value == x0
    postsilenceChar == return_value

  • void com.dmdirc.commandparser.CommandManager$1()

  • Kind Annotation Text

  • com.dmdirc.commandparser.CommandManager$1__static_init

  • Kind Annotation Text

  • void com.dmdirc.commandparser.CommandManager()

  • Kind Annotation Text

  • com.dmdirc.commandparser.CommandManager__static_init

  • Kind Annotation Text
    pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
    preinit'ed(com/dmdirc/config/IdentityManager. globalconfig)
    post"commandchar"._tainted == 0
    post"general"._tainted == 0
    post"silencechar"._tainted == 0
    postcom/dmdirc/config/IdentityManager.globalconfig != null
    postcommands == &new HashMap(CommandManager__ static_init#1)
    postinit'ed(commandChar)
    postinit'ed(new ConfigManager(getGlobalConfig#1). channel)
    postinit'ed(new ConfigManager(getGlobalConfig#1).file)
    postinit'ed(new ConfigManager(getGlobalConfig#1).ircd)
    postinit'ed(new ConfigManager(getGlobalConfig#1). listeners)
    postinit'ed(new ConfigManager(getGlobalConfig#1). network)
    postinit'ed(new ConfigManager(getGlobalConfig#1). server)
    postinit'ed(new ConfigManager(getGlobalConfig#1). sources)
    postinit'ed(silenceChar)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew ArrayList(getSources#1) num objects <= 1
    postnew ArrayList(getSources#1) num objects == 0
    postnew ConfigManager(getGlobalConfig#1) num objects == 0
    postnew ConfigManager(getGlobalConfig#1) num objects == new ArrayList(getSources#1) num objects
    postnew ConfigManager(getGlobalConfig#1).channel == &amp;java.lang.StringBuilder:toString(...)
    postnew ConfigManager(getGlobalConfig#1).ircd == &amp;""
    postnew ConfigManager(getGlobalConfig#1).listeners == &amp;new MapList(ConfigManager#1)
    postnew ConfigManager(getGlobalConfig#1).network == &amp;""
    postnew ConfigManager(getGlobalConfig#1).server == &amp;""
    postnew ConfigManager(getGlobalConfig#1).sources == &amp;new ArrayList(getSources#1)
    postnew HashMap(CommandManager__static_init#1) num objects == 1
    postnew MapList(CommandManager__static_init#2) num objects == 1
    postnew MapList(ConfigManager#1) num objects == 0
    postnew MapList(ConfigManager#1) num objects == new ArrayList(getSources#1) num objects
    postparsers == &amp;new MapList(CommandManager__static_ init#2)
    unanalyzedcall on addConfigManager
    unanalyzedcall on addListener
    unanalyzedcall on com.dmdirc.config.ConfigSource
    unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
    unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.MapList
    unanalyzedcall on getOption
    unanalyzedcall on getSources
    unanalyzedcall on getTarget
    unanalyzedcall on hasOption
    unanalyzedcall on java.lang.IllegalArgumentException
    unanalyzedcall on java.lang.Integer:intValue
    unanalyzedcall on java.lang.Integer:valueOf
    unanalyzedcall on java.lang.String:charAt
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collections:sort
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put

  • void configChanged(String, String)

  • Kind Annotation Text
    pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
    preinit'ed(com/dmdirc/config/IdentityManager. globalconfig)
    postcom/dmdirc/config/IdentityManager.globalconfig != null
    postinit'ed(com/dmdirc/commandparser/CommandManager. commandChar)
    postinit'ed(com/dmdirc/commandparser/CommandManager. silenceChar)
    postinit'ed(new ConfigManager(getGlobalConfig#1). channel)
    postinit'ed(new ConfigManager(getGlobalConfig#1).file)
    postinit'ed(new ConfigManager(getGlobalConfig#1).ircd)
    postinit'ed(new ConfigManager(getGlobalConfig#1). listeners)
    postinit'ed(new ConfigManager(getGlobalConfig#1). network)
    postinit'ed(new ConfigManager(getGlobalConfig#1). server)
    postinit'ed(new ConfigManager(getGlobalConfig#1). sources)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew ArrayList(getSources#1) num objects <= 1
    postnew ArrayList(getSources#1) num objects == 0
    postnew ConfigManager(getGlobalConfig#1) num objects == 0
    postnew ConfigManager(getGlobalConfig#1) num objects == new ArrayList(getSources#1) num objects
    postnew ConfigManager(getGlobalConfig#1).channel == &amp;java.lang.StringBuilder:toString(...)
    postnew ConfigManager(getGlobalConfig#1).ircd == &amp;""
    postnew ConfigManager(getGlobalConfig#1).listeners == &amp;new MapList(ConfigManager#1)
    postnew ConfigManager(getGlobalConfig#1).network == &amp;""
    postnew ConfigManager(getGlobalConfig#1).server == &amp;""
    postnew ConfigManager(getGlobalConfig#1).sources == &amp;new ArrayList(getSources#1)
    postnew MapList(ConfigManager#1) num objects == 0
    postnew MapList(ConfigManager#1) num objects == new ArrayList(getSources#1) num objects
    unanalyzedcall on addConfigManager
    unanalyzedcall on addListener
    unanalyzedcall on com.dmdirc.config.ConfigSource
    unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
    unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.MapList
    unanalyzedcall on getOption
    unanalyzedcall on getSources
    unanalyzedcall on getTarget
    unanalyzedcall on hasOption
    unanalyzedcall on java.lang.IllegalArgumentException
    unanalyzedcall on java.lang.Integer:intValue
    unanalyzedcall on java.lang.Integer:valueOf
    unanalyzedcall on java.lang.String:charAt
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collections:sort
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put

  • Map$Entry getCommand(CommandType, String)

  • Kind Annotation Text
    presumptionjava.util.Map:entrySet(...)@353 != null
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.commandparser.CommandType:equals
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Set:iterator

  • Map$Entry getCommand(String)

  • Kind Annotation Text
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.commandparser.CommandType:equals
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:isEmpty
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Set:iterator

  • char getCommandChar()

  • Kind Annotation Text
    preinit'ed(commandChar)
    postinit'ed(return_value)
    postreturn_value == commandChar

  • List getCommandNames(CommandType)

  • Kind Annotation Text
    pre(soft) init'ed(commandChar)
    presumptionjava.util.Iterator:next(...)@376 != null
    presumptionjava.util.Map:keySet(...)@376 != null
    postnew ArrayList(getCommandNames#1) num objects == 1
    postreturn_value == &amp;new ArrayList(getCommandNames# 1)
    unanalyzedcall on com.dmdirc.commandparser.CommandType:equals
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Set:iterator
    test_vectorjava.util.Iterator:hasNext(...)@376: {0}, {1}

  • Map getCommands(CommandType)

  • Kind Annotation Text
    postnew HashMap(getCommands#1*) num objects == 1
    postreturn_value == &amp;new HashMap(getCommands#1*)
    unanalyzedcall on com.dmdirc.commandparser.CommandType:equals
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Set:iterator

  • Map getCommands(CommandType, String)

  • Kind Annotation Text
    presumptionjava.util.Iterator:next(...)@408 != null
    presumptionjava.util.Map:entrySet(...)@408 != null
    presumptionjava.util.Map_Entry:getKey(...)@409 != null
    postnew HashMap(getCommands#1) num objects == 1
    postreturn_value == &amp;new HashMap(getCommands#1)
    test_vectorcom.dmdirc.commandparser.CommandType:equals(... )@409: {0}, {1}
    test_vectorjava.lang.String:equals(...)@409: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@408: {0}, {1}
    test_vectorname: Addr_Set{null}, Inverse{null}
    test_vectortype: Addr_Set{null}, Inverse{null}

  • char getSilenceChar()

  • Kind Annotation Text
    preinit'ed(silenceChar)
    postinit'ed(return_value)
    postreturn_value == silenceChar

  • void initCommands()

  • Kind Annotation Text
    pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
    preinit'ed(com/dmdirc/config/IdentityManager. globalconfig)
    preinit'ed(commandChar)
    presumptiongetGlobalConfig(...).listeners != null
    postcom/dmdirc/config/IdentityManager.globalconfig != null
    postinit'ed(new ConfigManager(getGlobalConfig#1). channel)
    postinit'ed(new ConfigManager(getGlobalConfig#1).ircd)
    postinit'ed(new ConfigManager(getGlobalConfig#1). listeners)
    postinit'ed(new ConfigManager(getGlobalConfig#1). network)
    postinit'ed(new ConfigManager(getGlobalConfig#1). server)
    postinit'ed(new ConfigManager(getGlobalConfig#1). sources)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew ArrayList(getSources#1) num objects <= 1
    postnew ArrayList(getSources#1) num objects == 0
    postnew ConfigManager(getGlobalConfig#1) num objects == 0
    postnew ConfigManager(getGlobalConfig#1) num objects == new ArrayList(getSources#1) num objects
    postnew ConfigManager(getGlobalConfig#1).channel == &amp;java.lang.StringBuilder:toString(...)
    postnew ConfigManager(getGlobalConfig#1).ircd == &amp;""
    postnew ConfigManager(getGlobalConfig#1).listeners == &amp;new MapList(ConfigManager#1)
    postnew ConfigManager(getGlobalConfig#1).network == &amp;""
    postnew ConfigManager(getGlobalConfig#1).server == &amp;""
    postnew ConfigManager(getGlobalConfig#1).sources == &amp;new ArrayList(getSources#1)
    postnew MapList(ConfigManager#1) num objects == 0
    postnew MapList(ConfigManager#1) num objects == new ArrayList(getSources#1) num objects
    unanalyzedcall on addConfigManager
    unanalyzedcall on addListener
    unanalyzedcall on com.dmdirc.Channel:getTabCompleter
    unanalyzedcall on com.dmdirc.Query:getTabCompleter
    unanalyzedcall on com.dmdirc.Server:getChannel
    unanalyzedcall on com.dmdirc.Server:getChannels
    unanalyzedcall on com.dmdirc.Server:getQueries
    unanalyzedcall on com.dmdirc.Server:getTabCompleter
    unanalyzedcall on com.dmdirc.ServerManager:getServerManager
    unanalyzedcall on com.dmdirc.ServerManager:getServers
    unanalyzedcall on com.dmdirc.commandparser.commands. ChannelCommand
    unanalyzedcall on com.dmdirc.commandparser.commands. ChatCommand
    unanalyzedcall on com.dmdirc.commandparser.commands.Command
    unanalyzedcall on com.dmdirc.commandparser.commands. GlobalCommand
    unanalyzedcall on com.dmdirc.commandparser.commands. ServerCommand
    unanalyzedcall on com.dmdirc.config.ConfigSource
    unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
    unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:removeEntr y
    unanalyzedcall on com.dmdirc.util.MapList
    unanalyzedcall on com.dmdirc.util.MapList:add
    unanalyzedcall on com.dmdirc.util.MapList:containsKey
    unanalyzedcall on com.dmdirc.util.MapList:get
    unanalyzedcall on getName
    unanalyzedcall on getSources
    unanalyzedcall on getTarget
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collections:sort
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on registerCommand

  • bool isChannelCommand(String)

  • Kind Annotation Text
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.commandparser.CommandType:equals
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:isEmpty
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Set:iterator

  • void loadCommands(CommandParser, CommandType[])

  • Kind Annotation Text
    pre(soft) parser != null
    pre(soft) parser.commands != null
    pre(soft) supertypes[...] != null
    presupertypes != null
    presupertypes.length <= 232-1
    presumptionjava.util.Iterator:next(...)@322 != null
    presumptionjava.util.Map:entrySet(...)@322 != null
    presumptionjava.util.Map_Entry:getKey(...)@323 != null
    unanalyzedcall on com.dmdirc.commandparser.CommandType:equals
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Set:iterator
    test_vectorjava.util.Iterator:hasNext(...)@322: {0}, {1}

  • void registerCommand(CommandInfo, Command, List, bool)

  • Kind Annotation Text
    pre(soft) info != null
    premyParsers != null
    presumptionjava.util.Iterator:next(...)@163 != null
    presumptionparser.commands@163 != null
    unanalyzedcall on getName
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    test_vectorjava.util.Iterator:hasNext(...)@163: {0}, {1}
    test_vectorregister: {0}, {1}

  • void registerCommand(CommandInfo, Command, bool)

  • Kind Annotation Text
    preinfo != null
    preinit'ed(commandChar)
    presumptioncom.dmdirc.util.MapList:get(...)@141 != null
    unanalyzedcall on com.dmdirc.Channel:getTabCompleter
    unanalyzedcall on com.dmdirc.Query:getTabCompleter
    unanalyzedcall on com.dmdirc.Server:getChannel
    unanalyzedcall on com.dmdirc.Server:getChannels
    unanalyzedcall on com.dmdirc.Server:getQueries
    unanalyzedcall on com.dmdirc.Server:getTabCompleter
    unanalyzedcall on com.dmdirc.ServerManager:getServerManager
    unanalyzedcall on com.dmdirc.ServerManager:getServers
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:removeEntr y
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    test_vectorcom.dmdirc.util.MapList:containsKey(...)@140: {0}, {1}
    test_vectorregister: {0}, {1}

  • void registerCommand(Command)

  • Kind Annotation Text
    precommand != null
    preinit'ed(commandChar)
    unanalyzedcall on com.dmdirc.Channel:getTabCompleter
    unanalyzedcall on com.dmdirc.Query:getTabCompleter
    unanalyzedcall on com.dmdirc.Server:getChannel
    unanalyzedcall on com.dmdirc.Server:getChannels
    unanalyzedcall on com.dmdirc.Server:getQueries
    unanalyzedcall on com.dmdirc.Server:getTabCompleter
    unanalyzedcall on com.dmdirc.ServerManager:getServerManager
    unanalyzedcall on com.dmdirc.ServerManager:getServers
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:removeEntr y
    unanalyzedcall on com.dmdirc.util.MapList:containsKey
    unanalyzedcall on com.dmdirc.util.MapList:get
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove

  • void registerCommand(Command, CommandInfo)

  • Kind Annotation Text
    preinfo != null
    preinit'ed(commandChar)
    unanalyzedcall on com.dmdirc.Channel:getTabCompleter
    unanalyzedcall on com.dmdirc.Query:getTabCompleter
    unanalyzedcall on com.dmdirc.Server:getChannel
    unanalyzedcall on com.dmdirc.Server:getChannels
    unanalyzedcall on com.dmdirc.Server:getQueries
    unanalyzedcall on com.dmdirc.Server:getTabCompleter
    unanalyzedcall on com.dmdirc.ServerManager:getServerManager
    unanalyzedcall on com.dmdirc.ServerManager:getServers
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:removeEntr y
    unanalyzedcall on com.dmdirc.util.MapList:containsKey
    unanalyzedcall on com.dmdirc.util.MapList:get
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove

  • void registerCommandName(CommandInfo, bool)

  • Kind Annotation Text
    precommand != null
    preinit'ed(commandChar)
    presumptioncom.dmdirc.Channel:getTabCompleter(...)@196 != null
    presumptioncom.dmdirc.Query:getTabCompleter(...)@204 != null
    presumptioncom.dmdirc.Server:getChannel(...)@196 != null
    presumptioncom.dmdirc.Server:getChannels(...)@195 != null
    presumptioncom.dmdirc.Server:getQueries(...)@203 != null
    presumptioncom.dmdirc.Server:getTabCompleter(...)@190 != null
    presumptioncom.dmdirc.ServerManager:getServerManager(...)@187 != null
    presumptioncom.dmdirc.ServerManager:getServers(...)@187 != null
    presumptionjava.util.Iterator:next(...)@187 != null
    presumptionjava.util.Iterator:next(...)@203 != null
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:removeEntr y
    test_vectorjava.util.Iterator:hasNext(...)@187: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@195: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@203: {0}, {1}

  • void registerCommandName(TabCompleter, String, bool)

  • Kind Annotation Text
    precompleter != null
    presumptioninit'ed(com.dmdirc.ui.input.TabCompletionType. COMMAND)
    test_vectorregister: {0}, {1}

  • void unregisterCommand(CommandInfo)

  • Kind Annotation Text
    preinfo != null
    preinit'ed(commandChar)
    unanalyzedcall on com.dmdirc.Channel:getTabCompleter
    unanalyzedcall on com.dmdirc.Query:getTabCompleter
    unanalyzedcall on com.dmdirc.Server:getChannel
    unanalyzedcall on com.dmdirc.Server:getChannels
    unanalyzedcall on com.dmdirc.Server:getQueries
    unanalyzedcall on com.dmdirc.Server:getTabCompleter
    unanalyzedcall on com.dmdirc.ServerManager:getServerManager
    unanalyzedcall on com.dmdirc.ServerManager:getServers
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
    unanalyzedcall on com.dmdirc.ui.input.TabCompleter:removeEntr y
    unanalyzedcall on com.dmdirc.util.MapList:containsKey
    unanalyzedcall on com.dmdirc.util.MapList:get
    unanalyzedcall on getName
    unanalyzedcall on getType
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove