    public Parser getParser(final MyInfo myInfo, final IrcAddress address) {
        final ServerInfo info = new ServerInfo(address.getServer(), address.getPort(6667),
                address.getPassword());
        info.setSSL(address.isSSL());
        if ("irc".equals(address.getProtocol())) {
            return new IRCParser(myInfo, info);
        } else if ("irc-test".equals(address.getProtocol())) {
            try {
                return (Parser) Class.forName("com.dmdirc.harness.parser.TestParser")
                        .getConstructor(MyInfo.class, ServerInfo.class)
                        .newInstance(myInfo, info);
            } catch (Exception ex) {
                Logger.userError(ErrorLevel.UNKNOWN, "Unable to create parser", ex);
            }
        }
        return null;
    }

    public Parser getParser(final MyInfo myInfo, final IrcAddress address) {
        final ServerInfo info = new ServerInfo(address.getServer(), address.getPort(6667),
                address.getPassword());
        info.setSSL(address.isSSL());
        if ("irc-test".equals(address.getProtocol())) {
            try {
                return (Parser) Class.forName("com.dmdirc.harness.parser.TestParser")
                        .getConstructor(MyInfo.class, ServerInfo.class)
                        .newInstance(myInfo, info);
            } catch (Exception ex) {
                Logger.userError(ErrorLevel.UNKNOWN, "Unable to create parser", ex);
            }
        }
        return new IRCParser(myInfo, info);
    }
