This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit ba43a3eeef2e48f38edc7738dd01a4afc34a2ba1
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Fri Dec 13 07:44:04 2019 +0100

    [Refactoring] (slightly) Improve Select command parser readability
---
 .../parser/AbstractSelectionCommandParser.java     | 26 +++++-----------------
 1 file changed, 5 insertions(+), 21 deletions(-)

diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AbstractSelectionCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AbstractSelectionCommandParser.java
index c381ce2..812cdfc 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AbstractSelectionCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AbstractSelectionCommandParser.java
@@ -29,14 +29,14 @@ import 
org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.DecodingException;
 import org.apache.james.imap.decode.ImapRequestLineReader;
-import org.apache.james.imap.decode.ImapRequestLineReader.CharacterValidator;
+import org.apache.james.imap.decode.ImapRequestLineReader.StringValidator;
 import org.apache.james.imap.decode.base.AbstractImapCommandParser;
 import org.apache.james.imap.message.request.AbstractMailboxSelectionRequest;
 import org.apache.james.mailbox.MessageUid;
 
 public abstract class AbstractSelectionCommandParser extends 
AbstractImapCommandParser {
-    private static final byte[] CONDSTORE = 
ImapConstants.SUPPORTS_CONDSTORE.asString().getBytes();
-    private static final byte[] QRESYNC = 
ImapConstants.SUPPORTS_QRESYNC.asString().getBytes();
+    private static final String CONDSTORE = 
ImapConstants.SUPPORTS_CONDSTORE.asString();
+    private static final String QRESYNC = 
ImapConstants.SUPPORTS_QRESYNC.asString();
 
     public AbstractSelectionCommandParser(ImapCommand command, 
StatusResponseFactory statusResponseFactory) {
         super(command, statusResponseFactory);
@@ -67,28 +67,12 @@ public abstract class AbstractSelectionCommandParser 
extends AbstractImapCommand
             switch (n) {
             case 'C':
                 // It starts with C so it should be CONDSTORE
-                int pos = 0;
-                while (pos < CONDSTORE.length) {
-                    if (CONDSTORE[pos++] != 
ImapRequestLineReader.cap(request.consume())) {
-                        throw new 
DecodingException(HumanReadableText.ILLEGAL_ARGUMENTS, "Unknown option");
-                    }
-                }
+                request.consumeWord(new StringValidator(CONDSTORE));
                 condstore = true;
                 break;
             case 'Q':
                 // It starts with Q so it should be QRESYNC
-                request.consumeWord(new CharacterValidator() {
-                    int pos = 0;
-
-                    @Override
-                    public boolean isValid(char chr) {
-                        if (pos >= QRESYNC.length) {
-                            return false;
-                        } else {
-                            return ImapRequestLineReader.cap(chr) == 
QRESYNC[pos++];
-                        }
-                    }
-                });
+                request.consumeWord(new StringValidator(QRESYNC));
                 
                 // Consume the SP
                 request.consumeChar(' ');


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to