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