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());
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;
}