private String matchCommandWithImplementation()

in protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/ManageSieveProcessor.java [87:130]


    private String matchCommandWithImplementation(Session session, String arguments, String command) throws SessionTerminatedException {
        if (session.getState() == Session.State.AUTHENTICATION_IN_PROGRESS) {
            return argumentParser.authenticate(session, arguments);
        }
        if (command.equalsIgnoreCase(AUTHENTICATE)) {
            if (StringUtils.countMatches(arguments, "\"") == 4) {
                argumentParser.chooseMechanism(session, arguments);
                int bracket1 = arguments.indexOf('\"');
                int bracket2 = arguments.indexOf('\"', bracket1 + 1);
                int bracket3 = arguments.indexOf('\"', bracket2 + 1);
                int bracket4 = arguments.indexOf('\"', bracket3 + 1);

                return argumentParser.authenticate(session, arguments.substring(bracket3 + 1, bracket4));
            }
            return argumentParser.chooseMechanism(session, arguments);
        } else if (command.equalsIgnoreCase(CAPABILITY)) {
            return argumentParser.capability(session, arguments);
        } else if (command.equalsIgnoreCase(CHECKSCRIPT)) {
            return argumentParser.checkScript(session, arguments);
        } else if (command.equalsIgnoreCase(DELETESCRIPT)) {
            return argumentParser.deleteScript(session, arguments);
        } else if (command.equalsIgnoreCase(GETSCRIPT)) {
            return argumentParser.getScript(session, arguments);
        } else if (command.equalsIgnoreCase(HAVESPACE)) {
            return argumentParser.haveSpace(session, arguments);
        } else if (command.equalsIgnoreCase(LISTSCRIPTS)) {
            return argumentParser.listScripts(session, arguments);
        } else if (command.equalsIgnoreCase(LOGOUT)) {
            argumentParser.logout();
        } else if (command.equalsIgnoreCase(NOOP)) {
            return argumentParser.noop(arguments);
        } else if (command.equalsIgnoreCase(PUTSCRIPT)) {
            return argumentParser.putScript(session, arguments);
        } else if (command.equalsIgnoreCase(RENAMESCRIPT)) {
            return argumentParser.renameScript(session, arguments);
        } else if (command.equalsIgnoreCase(SETACTIVE)) {
            return argumentParser.setActive(session, arguments);
        } else if (command.equalsIgnoreCase(STARTTLS)) {
            return argumentParser.startTLS(session);
        } else if (command.equalsIgnoreCase(UNAUTHENTICATE)) {
            return argumentParser.unauthenticate(session, arguments);
        }
        return "NO unknown " + command + " command";
    }