almost there
[org.ibex.mail.git] / src / org / ibex / mail / protocol / IMAP.java
index c8fd904..0db26a2 100644 (file)
@@ -310,13 +310,13 @@ public class IMAP extends MessageProtocol {
                 break;
             }
             if (s.startsWith("UN"))        { not = true; s = s.substring(2); }
-            if (s.equals("ANSWERED"))        q = Query.Flag.ANSWERED;
-            else if (s.equals("DELETED"))    q = Query.Flag.DELETED;
-            else if (s.equals("DRAFT"))      q = Query.Flag.DRAFT;
-            else if (s.equals("FLAGGED"))    q = Query.Flag.FLAGGED;
-            else if (s.equals("RECENT"))     q = Query.Flag.RECENT;
-            else if (s.equals("SEEN"))       q = Query.Flag.SEEN;
-            else if (s.equals("OLD"))      { not = true; q = Query.Flag.RECENT; }
+            if (s.equals("ANSWERED"))        q = Query.flags(Flag.ANSWERED);
+            else if (s.equals("DELETED"))    q = Query.flags(Flag.DELETED);
+            else if (s.equals("DRAFT"))      q = Query.flags(Flag.DRAFT);
+            else if (s.equals("FLAGGED"))    q = Query.flags(Flag.FLAGGED);
+            else if (s.equals("RECENT"))     q = Query.flags(Flag.RECENT);
+            else if (s.equals("SEEN"))       q = Query.flags(Flag.SEEN);
+            else if (s.equals("OLD"))      { not = true; q = Query.flags(Flag.RECENT); }
             else if (s.equals("NEW"))        q = Query.and(Query.Flag.RECENT, Query.not(Query.Flag.SEEN));
             else if (s.equals("KEYWORD"))    q = Query.header("keyword", flag());
             else if (s.equals("HEADER"))     q = Query.header(astring(), astring());
@@ -327,14 +327,14 @@ public class IMAP extends MessageProtocol {
             else if (s.equals("SUBJECT"))    q = Query.header("subject", astring());
             else if (s.equals("LARGER"))     q = Query.size(n(), true);
             else if (s.equals("SMALLER"))    q = Query.size(n(), false);
-            else if (s.equals("BODY"))       q = Query.fullText(astring(), true, false);
+            else if (s.equals("BODY"))       q = Query.body(astring(), true, false);
             else if (s.equals("TEXT"))       q = Query.fullText(astring(), true, true);
-            else if (s.equals("BEFORE"))     q = Query.arrival(date(), true, false);
-            else if (s.equals("SINCE"))      q = Query.arrival(date(), false, true);
-            else if (s.equals("ON"))         q = Query.arrival(date(), true, true);
-            else if (s.equals("SENTBEFORE")) q = Query.sent(date(), true, false);
-            else if (s.equals("SENTSINCE"))  q = Query.sent(date(), false, true);
-            else if (s.equals("SENTON"))     q = Query.sent(date(), true, true);
+            else if (s.equals("BEFORE"))     q = Query.arrival(new Date(0), date());
+            else if (s.equals("SINCE"))      q = Query.arrival(date(), new Date(Long.MAX_VALUE));
+            else if (s.equals("ON"))         q = null; // FIXME
+            else if (s.equals("SENTBEFORE")) q = Query.sent(new Date(0), date());
+            else if (s.equals("SENTSINCE"))  q = Query.sent(date(), new Date(Long.MAX_VALUE));
+            else if (s.equals("SENTON"))     q = null; // FIXME
             else if (s.equals("UID"))        q = Query.uid(set());
             return q;
         }