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 06ced6fdcb20ae277bda0602fbbeeb19b33e13e7
Author: TungTV <vtt...@linagora.com>
AuthorDate: Mon Sep 30 13:53:51 2024 +0700

    JAMES-4046 LuceneMessageSearchIndex - update java 21 syntax for more pretty 
code
---
 .../lucene/search/LuceneMessageSearchIndex.java    | 349 +++++++++------------
 1 file changed, 142 insertions(+), 207 deletions(-)

diff --git 
a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
 
b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index 265006c8f8..0945ec4bbe 100644
--- 
a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ 
b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -148,10 +148,10 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
 
     static {
         Calendar cal = Calendar.getInstance();
-        cal.set(9999, 11, 31);
+        cal.set(9999, Calendar.DECEMBER, 31);
         MAX_DATE = cal.getTime();
 
-        cal.set(0000, 0, 1);
+        cal.set(0, Calendar.JANUARY, 1);
         MIN_DATE = cal.getTime();
     }
 
@@ -538,10 +538,7 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
     }
 
     private Optional<MessageId> toMessageId(Optional<String> messageIdField) {
-        if (messageIdField.isPresent()) {
-            return 
Optional.of(messageIdFactory.fromString(messageIdField.get()));
-        }
-        return Optional.empty();
+        return messageIdField.map(messageIdFactory::fromString);
     }
 
     private Query buildQueryFromMailboxes(Collection<MailboxId> mailboxIds) {
@@ -621,8 +618,7 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
                     doc.add(new TextField(HEADERS_FIELD, fullValue, Store.NO));
                     doc.add(new TextField(PREFIX_HEADER_FIELD + headerName, 
headerValue, Store.NO));
 
-                    if (f instanceof DateTimeField) {
-                        DateTimeField dateTimeField = (DateTimeField) f;
+                    if (f instanceof DateTimeField dateTimeField) {
                         sentDate = dateTimeField.getDate();
                     }
                     String field = null;
@@ -644,8 +640,7 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
                         AddressList aList = 
LenientAddressParser.DEFAULT.parseAddressList(MimeUtil.unfold(f.getBody()));
                         for (int i = 0; i < aList.size(); i++) {
                             Address address = aList.get(i);
-                            if (address instanceof 
org.apache.james.mime4j.dom.address.Mailbox) {
-                                org.apache.james.mime4j.dom.address.Mailbox 
mailbox = (org.apache.james.mime4j.dom.address.Mailbox) address;
+                            if (address instanceof 
org.apache.james.mime4j.dom.address.Mailbox mailbox) {
                                 String value = 
AddressFormatter.DEFAULT.encode(mailbox).toUpperCase(Locale.US);
                                 doc.add(new TextField(field, value, Store.NO));
                                 if (i == 0) {
@@ -690,7 +685,6 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
                             }
                         }
 
-
                         doc.add(new TextField(field, headerValue, Store.NO));
 
                     } else if (headerName.equalsIgnoreCase("Subject")) {
@@ -727,7 +721,7 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
             }
 
             @Override
-            public void body(BodyDescriptor desc, InputStream in) throws 
MimeException, IOException {
+            public void body(BodyDescriptor desc, InputStream in) throws 
IOException {
                 String mediaType = desc.getMediaType();
                 if (MEDIA_TYPE_TEXT.equalsIgnoreCase(mediaType) || 
MEDIA_TYPE_MESSAGE.equalsIgnoreCase(mediaType)) {
                     String cset = desc.getCharset();
@@ -771,22 +765,14 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
     }
 
     private String toSentDateField(DateResolution res) {
-        switch (res) {
-            case Year:
-                return SENT_DATE_FIELD_YEAR_RESOLUTION;
-            case Month:
-                return SENT_DATE_FIELD_MONTH_RESOLUTION;
-            case Day:
-                return SENT_DATE_FIELD_DAY_RESOLUTION;
-            case Hour:
-                return SENT_DATE_FIELD_HOUR_RESOLUTION;
-            case Minute:
-                return SENT_DATE_FIELD_MINUTE_RESOLUTION;
-            case Second:
-                return SENT_DATE_FIELD_SECOND_RESOLUTION;
-            default:
-                return SENT_DATE_FIELD_MILLISECOND_RESOLUTION;
-        }
+        return switch (res) {
+            case Year -> SENT_DATE_FIELD_YEAR_RESOLUTION;
+            case Month -> SENT_DATE_FIELD_MONTH_RESOLUTION;
+            case Day -> SENT_DATE_FIELD_DAY_RESOLUTION;
+            case Hour -> SENT_DATE_FIELD_HOUR_RESOLUTION;
+            case Minute -> SENT_DATE_FIELD_MINUTE_RESOLUTION;
+            case Second -> SENT_DATE_FIELD_SECOND_RESOLUTION;
+        };
     }
 
     private static Calendar getGMT() {
@@ -794,41 +780,25 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
     }
 
     private String toInteralDateField(DateResolution res) {
-        switch (res) {
-            case Year:
-                return INTERNAL_DATE_FIELD_YEAR_RESOLUTION;
-            case Month:
-                return INTERNAL_DATE_FIELD_MONTH_RESOLUTION;
-            case Day:
-                return INTERNAL_DATE_FIELD_DAY_RESOLUTION;
-            case Hour:
-                return INTERNAL_DATE_FIELD_HOUR_RESOLUTION;
-            case Minute:
-                return INTERNAL_DATE_FIELD_MINUTE_RESOLUTION;
-            case Second:
-                return INTERNAL_DATE_FIELD_SECOND_RESOLUTION;
-            default:
-                return INTERNAL_DATE_FIELD_MILLISECOND_RESOLUTION;
-        }
+        return switch (res) {
+            case Year -> INTERNAL_DATE_FIELD_YEAR_RESOLUTION;
+            case Month -> INTERNAL_DATE_FIELD_MONTH_RESOLUTION;
+            case Day -> INTERNAL_DATE_FIELD_DAY_RESOLUTION;
+            case Hour -> INTERNAL_DATE_FIELD_HOUR_RESOLUTION;
+            case Minute -> INTERNAL_DATE_FIELD_MINUTE_RESOLUTION;
+            case Second -> INTERNAL_DATE_FIELD_SECOND_RESOLUTION;
+        };
     }
 
     private String toSaveDateField(DateResolution res) {
-        switch (res) {
-            case Year:
-                return SAVE_DATE_FIELD_YEAR_RESOLUTION;
-            case Month:
-                return SAVE_DATE_FIELD_MONTH_RESOLUTION;
-            case Day:
-                return SAVE_DATE_FIELD_DAY_RESOLUTION;
-            case Hour:
-                return SAVE_DATE_FIELD_HOUR_RESOLUTION;
-            case Minute:
-                return SAVE_DATE_FIELD_MINUTE_RESOLUTION;
-            case Second:
-                return SAVE_DATE_FIELD_SECOND_RESOLUTION;
-            default:
-                throw new RuntimeException(String.format("Not support search 
for the %s date resolution", res));
-        }
+        return switch (res) {
+            case Year -> SAVE_DATE_FIELD_YEAR_RESOLUTION;
+            case Month -> SAVE_DATE_FIELD_MONTH_RESOLUTION;
+            case Day -> SAVE_DATE_FIELD_DAY_RESOLUTION;
+            case Hour -> SAVE_DATE_FIELD_HOUR_RESOLUTION;
+            case Minute -> SAVE_DATE_FIELD_MINUTE_RESOLUTION;
+            case Second -> SAVE_DATE_FIELD_SECOND_RESOLUTION;
+        };
     }
 
     /**
@@ -856,16 +826,11 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
      */
     private Query createSizeQuery(SearchQuery.SizeCriterion crit) throws 
UnsupportedSearchException {
         NumericOperator op = crit.getOperator();
-        switch (op.getType()) {
-            case EQUALS:
-                return LongPoint.newExactQuery(SIZE_FIELD, op.getValue());
-            case GREATER_THAN:
-                return LongPoint.newRangeQuery(SIZE_FIELD, op.getValue() + 1, 
Long.MAX_VALUE);
-            case LESS_THAN:
-                return LongPoint.newRangeQuery(SIZE_FIELD, Long.MIN_VALUE, 
op.getValue() - 1);
-            default:
-                throw new UnsupportedSearchException();
-        }
+        return switch (op.getType()) {
+            case EQUALS -> LongPoint.newExactQuery(SIZE_FIELD, op.getValue());
+            case GREATER_THAN -> LongPoint.newRangeQuery(SIZE_FIELD, 
op.getValue() + 1, Long.MAX_VALUE);
+            case LESS_THAN -> LongPoint.newRangeQuery(SIZE_FIELD, 
Long.MIN_VALUE, op.getValue() - 1);
+        };
     }
 
     /**
@@ -886,65 +851,57 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
         HeaderOperator op = crit.getOperator();
         String name = crit.getHeaderName().toUpperCase(Locale.US);
         String fieldName = PREFIX_HEADER_FIELD + name;
-        if (op instanceof SearchQuery.ContainsOperator) {
-            ContainsOperator cop = (ContainsOperator) op;
-            return createTermQuery(fieldName, 
cop.getValue().toUpperCase(Locale.US));
-        } else if (op instanceof SearchQuery.ExistsOperator) {
-            return new PrefixQuery(new Term(fieldName, ""));
-        } else if (op instanceof SearchQuery.DateOperator) {
-                DateOperator dop = (DateOperator) op;
+        switch (op) {
+            case ContainsOperator cop -> {
+                return createTermQuery(fieldName, 
cop.getValue().toUpperCase(Locale.US));
+            }
+            case SearchQuery.ExistsOperator existsOperator -> {
+                return new PrefixQuery(new Term(fieldName, ""));
+            }
+            case DateOperator dop -> {
                 String field = toSentDateField(dop.getDateResultion());
                 return createQuery(field, dop);
-        } else if (op instanceof SearchQuery.AddressOperator) {
-            String field = name.toLowerCase(Locale.US);
-            return createTermQuery(field, ((SearchQuery.AddressOperator) 
op).getAddress().toUpperCase(Locale.US));
-        } else {
-            // Operator not supported
-            throw new UnsupportedSearchException();
+            }
+            case SearchQuery.AddressOperator addressOperator -> {
+                String field = name.toLowerCase(Locale.US);
+                return createTermQuery(field, 
addressOperator.getAddress().toUpperCase(Locale.US));
+            }
+            case null, default ->
+                // Operator not supported
+                throw new UnsupportedSearchException();
         }
     }
 
 
-    private Query createQuery(String field, DateOperator dop) throws 
UnsupportedSearchException {
+    private Query createQuery(String field, DateOperator dop) {
         Date date = dop.getDate();
         DateResolution res = dop.getDateResultion();
         DateTools.Resolution dRes = toResolution(res);
         String value = DateTools.dateToString(date, dRes);
-        switch (dop.getType()) {
-        case ON:
-            return new TermQuery(new Term(field, value));
-        case BEFORE:
-            return TermRangeQuery.newStringRange(field, 
DateTools.dateToString(MIN_DATE, dRes), value, true, false);
-        case AFTER:
-            return TermRangeQuery.newStringRange(field, value, 
DateTools.dateToString(MAX_DATE, dRes), false, true);
-        default:
-            throw new UnsupportedSearchException();
-        }
+        return switch (dop.getType()) {
+            case ON -> new TermQuery(new Term(field, value));
+            case BEFORE ->
+                TermRangeQuery.newStringRange(field, 
DateTools.dateToString(MIN_DATE, dRes), value, true, false);
+            case AFTER ->
+                TermRangeQuery.newStringRange(field, value, 
DateTools.dateToString(MAX_DATE, dRes), false, true);
+        };
     }
 
     private DateTools.Resolution toResolution(DateResolution res) {
-        switch (res) {
-        case Year:
-            return DateTools.Resolution.YEAR;
-        case Month:
-            return DateTools.Resolution.MONTH;
-        case Day:
-            return DateTools.Resolution.DAY;
-        case Hour:
-            return DateTools.Resolution.HOUR;
-        case Minute:
-            return DateTools.Resolution.MINUTE;
-        case Second:
-            return DateTools.Resolution.SECOND;
-        default:
-            return DateTools.Resolution.MILLISECOND;
-        }
+        return switch (res) {
+            case Year -> DateTools.Resolution.YEAR;
+            case Month -> DateTools.Resolution.MONTH;
+            case Day -> DateTools.Resolution.DAY;
+            case Hour -> DateTools.Resolution.HOUR;
+            case Minute -> DateTools.Resolution.MINUTE;
+            case Second -> DateTools.Resolution.SECOND;
+        };
     }
 
     /**
      * Return a {@link Query} which is build based on the given {@link 
SearchQuery.UidCriterion}
      */
-    private Query createUidQuery(SearchQuery.UidCriterion crit) throws 
UnsupportedSearchException {
+    private Query createUidQuery(SearchQuery.UidCriterion crit) {
         UidRange[] ranges = crit.getOperator().getRange();
         if (ranges.length == 1) {
             UidRange range = ranges[0];
@@ -962,21 +919,16 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
     /**
      * Return a {@link Query} which is build based on the given {@link 
SearchQuery.UidCriterion}
      */
-    private Query createModSeqQuery(SearchQuery.ModSeqCriterion crit) throws 
UnsupportedSearchException {
+    private Query createModSeqQuery(SearchQuery.ModSeqCriterion crit) {
         NumericOperator op = crit.getOperator();
-        switch (op.getType()) {
-            case EQUALS:
-                return LongPoint.newRangeQuery(MODSEQ_FIELD, op.getValue(), 
op.getValue());
-            case GREATER_THAN:
-                return LongPoint.newRangeQuery(MODSEQ_FIELD, op.getValue(), 
Long.MAX_VALUE);
-            case LESS_THAN:
-                return LongPoint.newRangeQuery(MODSEQ_FIELD, Long.MIN_VALUE, 
op.getValue());
-            default:
-                throw new UnsupportedSearchException();
-        }
+        return switch (op.getType()) {
+            case EQUALS -> LongPoint.newRangeQuery(MODSEQ_FIELD, 
op.getValue(), op.getValue());
+            case GREATER_THAN -> LongPoint.newRangeQuery(MODSEQ_FIELD, 
op.getValue(), Long.MAX_VALUE);
+            case LESS_THAN -> LongPoint.newRangeQuery(MODSEQ_FIELD, 
Long.MIN_VALUE, op.getValue());
+        };
     }
 
-    private Query createAttachmentQuery(boolean isSet) throws MailboxException 
{
+    private Query createAttachmentQuery(boolean isSet) {
         return new TermQuery(new Term(HAS_ATTACHMENT_FIELD, 
Boolean.toString(isSet)));
     }
 
@@ -1057,50 +1009,57 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
     }
 
     private SortField createSortField(SearchQuery.Sort s, boolean reverse) {
-        switch (s.getSortClause()) {
-            case Arrival:
+        return switch (s.getSortClause()) {
+            case Arrival -> {
                 if (reverse) {
-                    return ARRIVAL_MAILBOX_SORT_REVERSE;
+                    yield ARRIVAL_MAILBOX_SORT_REVERSE;
                 }
-                return ARRIVAL_MAILBOX_SORT;
-            case SentDate:
+                yield ARRIVAL_MAILBOX_SORT;
+            }
+            case SentDate -> {
                 if (reverse) {
-                    return SENT_DATE_SORT_REVERSE;
+                    yield SENT_DATE_SORT_REVERSE;
                 }
-                return SENT_DATE_SORT;
-            case MailboxCc:
+                yield SENT_DATE_SORT;
+            }
+            case MailboxCc -> {
                 if (reverse) {
-                    return FIRST_CC_MAILBOX_SORT_REVERSE;
+                    yield FIRST_CC_MAILBOX_SORT_REVERSE;
                 }
-                return FIRST_CC_MAILBOX_SORT;
-            case MailboxFrom:
+                yield FIRST_CC_MAILBOX_SORT;
+            }
+            case MailboxFrom -> {
                 if (reverse) {
-                    return FIRST_FROM_MAILBOX_SORT_REVERSE;
+                    yield FIRST_FROM_MAILBOX_SORT_REVERSE;
                 }
-                return FIRST_FROM_MAILBOX_SORT;
-            case Size:
+                yield FIRST_FROM_MAILBOX_SORT;
+            }
+            case Size -> {
                 if (reverse) {
-                    return SIZE_SORT_REVERSE;
+                    yield SIZE_SORT_REVERSE;
                 }
-                return SIZE_SORT;
-            case BaseSubject:
+                yield SIZE_SORT;
+            }
+            case BaseSubject -> {
                 if (reverse) {
-                    return BASE_SUBJECT_SORT_REVERSE;
+                    yield BASE_SUBJECT_SORT_REVERSE;
                 }
-                return BASE_SUBJECT_SORT;
-            case MailboxTo:
+                yield BASE_SUBJECT_SORT;
+            }
+            case MailboxTo -> {
                 if (reverse) {
-                    return FIRST_TO_MAILBOX_SORT_REVERSE;
+                    yield FIRST_TO_MAILBOX_SORT_REVERSE;
                 }
-                return FIRST_TO_MAILBOX_SORT;
-            case Uid:
+                yield FIRST_TO_MAILBOX_SORT;
+            }
+            case Uid -> {
                 if (reverse) {
-                    return UID_SORT_REVERSE;
+                    yield UID_SORT_REVERSE;
                 }
-                return UID_SORT;
-            default:
-                return null;
-        }
+                yield UID_SORT;
+            }
+            default -> null;
+        };
     }
 
     /**
@@ -1190,51 +1149,37 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
      * Return a {@link Query} which is builded based on the given {@link 
Criterion}
      */
     private Query createQuery(Criterion criterion, Query inMailboxes, 
Collection<MessageUid> recentUids) throws MailboxException {
-        if (criterion instanceof SearchQuery.InternalDateCriterion) {
-            SearchQuery.InternalDateCriterion crit = 
(SearchQuery.InternalDateCriterion) criterion;
+        if (criterion instanceof SearchQuery.InternalDateCriterion crit) {
             return createInternalDateQuery(crit);
-        } else if (criterion instanceof SearchQuery.SaveDateCriterion) {
-            SearchQuery.SaveDateCriterion crit = 
(SearchQuery.SaveDateCriterion) criterion;
+        } else if (criterion instanceof SearchQuery.SaveDateCriterion crit) {
             return createSaveDateQuery(crit);
-        } else if (criterion instanceof SearchQuery.SizeCriterion) {
-            SearchQuery.SizeCriterion crit = (SearchQuery.SizeCriterion) 
criterion;
+        } else if (criterion instanceof SearchQuery.SizeCriterion crit) {
             return createSizeQuery(crit);
-        }  else if (criterion instanceof SearchQuery.MessageIdCriterion) {
-            SearchQuery.MessageIdCriterion crit = 
(SearchQuery.MessageIdCriterion) criterion;
+        }  else if (criterion instanceof SearchQuery.MessageIdCriterion crit) {
             return createTermQuery(MESSAGE_ID_FIELD, 
crit.getMessageId().serialize());
-        } else if (criterion instanceof SearchQuery.HeaderCriterion) {
-            HeaderCriterion crit = (HeaderCriterion) criterion;
+        } else if (criterion instanceof HeaderCriterion crit) {
             return createHeaderQuery(crit);
-        } else if (criterion instanceof SearchQuery.UidCriterion) {
-            SearchQuery.UidCriterion crit = (SearchQuery.UidCriterion) 
criterion;
+        } else if (criterion instanceof UidCriterion crit) {
             return createUidQuery(crit);
-        } else if (criterion instanceof SearchQuery.FlagCriterion) {
-            FlagCriterion crit = (FlagCriterion) criterion;
+        } else if (criterion instanceof FlagCriterion crit) {
             return createFlagQuery(toString(crit.getFlag()), 
crit.getOperator().isSet(), inMailboxes, recentUids);
-        } else if (criterion instanceof SearchQuery.AttachmentCriterion) {
-            AttachmentCriterion crit = (AttachmentCriterion) criterion;
+        } else if (criterion instanceof AttachmentCriterion crit) {
             return createAttachmentQuery(crit.getOperator().isSet());
-        } else if (criterion instanceof SearchQuery.CustomFlagCriterion) {
-            CustomFlagCriterion crit = (CustomFlagCriterion) criterion;
+        } else if (criterion instanceof CustomFlagCriterion crit) {
             return createFlagQuery(crit.getFlag(), crit.getOperator().isSet(), 
inMailboxes, recentUids);
-        } else if (criterion instanceof SearchQuery.TextCriterion) {
-            SearchQuery.TextCriterion crit = (SearchQuery.TextCriterion) 
criterion;
+        } else if (criterion instanceof SearchQuery.TextCriterion crit) {
             return createTextQuery(crit);
         } else if (criterion instanceof SearchQuery.AllCriterion) {
             return createAllQuery((AllCriterion) criterion);
-        } else if (criterion instanceof SearchQuery.ConjunctionCriterion) {
-            SearchQuery.ConjunctionCriterion crit = 
(SearchQuery.ConjunctionCriterion) criterion;
+        } else if (criterion instanceof SearchQuery.ConjunctionCriterion crit) 
{
             return createConjunctionQuery(crit, inMailboxes, recentUids);
         } else if (criterion instanceof SearchQuery.ModSeqCriterion) {
             return createModSeqQuery((SearchQuery.ModSeqCriterion) criterion);
-        } else if (criterion instanceof SearchQuery.MimeMessageIDCriterion) {
-            SearchQuery.MimeMessageIDCriterion mimeMessageIDCriterion = 
(SearchQuery.MimeMessageIDCriterion) criterion;
+        } else if (criterion instanceof SearchQuery.MimeMessageIDCriterion 
mimeMessageIDCriterion) {
             return 
createHeaderQuery(mimeMessageIDCriterion.asHeaderCriterion());
-        } else if (criterion instanceof SearchQuery.SubjectCriterion) {
-            SearchQuery.SubjectCriterion subjectCriterion = 
(SearchQuery.SubjectCriterion) criterion;
+        } else if (criterion instanceof SearchQuery.SubjectCriterion 
subjectCriterion) {
             return createHeaderQuery(subjectCriterion.asHeaderCriterion());
-        } else if (criterion instanceof SearchQuery.ThreadIdCriterion) {
-            SearchQuery.ThreadIdCriterion threadIdCriterion = 
(SearchQuery.ThreadIdCriterion) criterion;
+        } else if (criterion instanceof SearchQuery.ThreadIdCriterion 
threadIdCriterion) {
             return createTermQuery(THREAD_ID_FIELD, 
threadIdCriterion.getThreadId().serialize());
         }
         throw new UnsupportedSearchException();
@@ -1319,18 +1264,15 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
     }
 
     private Query createQuery(MessageRange range) {
-        switch (range.getType()) {
-        case ONE:
-            return LongPoint.newRangeQuery(UID_FIELD,
-                    range.getUidFrom().asLong(),
-                    range.getUidTo().asLong());
-        case FROM:
-            return LongPoint.newRangeQuery(UID_FIELD,
-                    range.getUidFrom().asLong(),
-                    MessageUid.MAX_VALUE.asLong());
-        default:
-            return LongPoint.newRangeQuery(UID_FIELD, 
MessageUid.MIN_VALUE.asLong(), MessageUid.MAX_VALUE.asLong());
-        }
+        return switch (range.getType()) {
+            case ONE -> LongPoint.newRangeQuery(UID_FIELD,
+                range.getUidFrom().asLong(),
+                range.getUidTo().asLong());
+            case FROM -> LongPoint.newRangeQuery(UID_FIELD,
+                range.getUidFrom().asLong(),
+                MessageUid.MAX_VALUE.asLong());
+            default -> LongPoint.newRangeQuery(UID_FIELD, 
MessageUid.MIN_VALUE.asLong(), MessageUid.MAX_VALUE.asLong());
+        };
     }
 
     @Override
@@ -1397,21 +1339,14 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
      * Convert the given {@link Flag} to a String
      */
     private Optional<Flag> fromString(String flag) {
-        switch (flag) {
-            case "\\ANSWERED":
-                return Optional.of(Flag.ANSWERED);
-            case "\\DELETED":
-                return Optional.of(Flag.DELETED);
-            case "\\DRAFT":
-                return Optional.of(Flag.DRAFT);
-            case "\\FLAGGED":
-                return Optional.of(Flag.FLAGGED);
-            case "\\RECENT":
-                return Optional.of(Flag.RECENT);
-            case "\\FLAG":
-                return Optional.of(Flag.SEEN);
-            default:
-                return Optional.empty();
-        }
+        return switch (flag) {
+            case "\\ANSWERED" -> Optional.of(Flag.ANSWERED);
+            case "\\DELETED" -> Optional.of(Flag.DELETED);
+            case "\\DRAFT" -> Optional.of(Flag.DRAFT);
+            case "\\FLAGGED" -> Optional.of(Flag.FLAGGED);
+            case "\\RECENT" -> Optional.of(Flag.RECENT);
+            case "\\FLAG" -> Optional.of(Flag.SEEN);
+            default -> Optional.empty();
+        };
     }
 }
\ No newline at end of file


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

Reply via email to