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 4c8009d8b700d3bab9b1c881f28bc9a352631f75
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Fri Dec 13 07:40:11 2019 +0100

    [Refactoring] Add a StringValidator
    
    This code snipset was duplicated in several places
---
 .../james/imap/decode/ImapRequestLineReader.java      | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
index a5b5bbe..1501634 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
@@ -28,6 +28,7 @@ import java.nio.charset.Charset;
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CoderResult;
 import java.nio.charset.CodingErrorAction;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -814,6 +815,24 @@ public abstract class ImapRequestLineReader {
         boolean isValid(char chr);
     }
 
+    public static class StringValidator implements CharacterValidator {
+        private final byte[] expectedStringAsBytes;
+        private int position = 0;
+
+        public StringValidator(String expectedString) {
+            this.expectedStringAsBytes = 
expectedString.getBytes(StandardCharsets.US_ASCII);
+        }
+
+        @Override
+        public boolean isValid(char chr) {
+            if (position >= expectedStringAsBytes.length) {
+                return false;
+            } else {
+                return ImapRequestLineReader.cap(chr) == 
expectedStringAsBytes[position++];
+            }
+        }
+    }
+
     public static class NoopCharValidator implements CharacterValidator {
         @Override
         public boolean isValid(char chr) {


---------------------------------------------------------------------
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