package org.ibex.mail;
import java.util.*;
import org.ibex.mail.target.*;
+import org.ibex.util.*;
/**
* [immutable] This class encapsulates a query against a mailbox.
case OR: for(int i=0; i<q.length; i++) if (q[i].match(it)) return true; return false;
case AND: for(int i=0; i<q.length; i++) if (!q[i].match(it)) return false; return true;
case UID: if (set != null) {
- for(int i=0; i<set.length; i+=2) if (set[i] <= it.uid() && set[i+1] >= it.uid()) return true;
+ for(int i=0; i<set.length; i+=2)
+ if (set[i] <= it.uid() && set[i+1] >= it.uid()) return true;
return false; }
else return it.uid() >= min && it.uid() <= max;
case NUM: if (set != null) {
else return it.num() >= min && it.num() <= max;
case SENT: return (latest==null||it.cur().date.before(latest)) &&
(earliest==null||it.cur().date.after(earliest));
- case ARRIVAL: return (latest == null || it.cur().arrival.before(latest)) &&
- (earliest == null || it.cur().arrival.after(earliest));
- case SIZE: return it.cur().rfc822size() >= min && it.cur().rfc822size() <= max;
- case HEADER: return it.cur().headers.get(key) != null && ((String)it.cur().headers.get(key)).indexOf(text) != -1;
- case BODY: return it.cur().body.indexOf(text) != -1;
- case FULL: return it.cur().body.indexOf(text) != -1 || it.cur().allHeaders.indexOf(text) != -1;
+ case ARRIVAL: return (latest == null || it.cur().envelope.arrival.before(latest)) &&
+ (earliest == null || it.cur().envelope.arrival.after(earliest));
+ case SIZE: return it.cur().size() >= min && it.cur().size() <= max;
+ case HEADER: return it.cur().headers.get(key) != null &&
+ ((String)it.cur().headers.get(key)).toLowerCase().indexOf(text.toLowerCase()) != -1;
+ case BODY: return it.cur().body.toLowerCase().indexOf(text.toLowerCase()) != -1;
+ case FULL: return it.cur().body.toLowerCase().indexOf(text.toLowerCase()) != -1 ||
+ it.cur().headers.raw.indexOf(text) != -1;
case DELETED: return it.deleted();
case SEEN: return it.seen();
case FLAGGED: return it.flagged();