/** * Defines filter for message id. * * @param messageId The message ID. * @return this */ public EmailFilter messageId(final String messageId) { final SearchTerm msgIdTerm = new MessageIDTerm(messageId); concat(msgIdTerm); return this; }
/** * Defines AND group of filters. * * @param emailFilters array of {@link EmailFilter}s to AND. * @return this */ public EmailFilter and(final EmailFilter... emailFilters) { final SearchTerm[] searchTerms = new SearchTerm[emailFilters.length]; for (int i = 0; i < emailFilters.length; i++) { searchTerms[i] = emailFilters[i].searchTerm; } concat(new AndTerm(searchTerms)); return this; }
/** * Defines filter for SUBJECT field. * * @param subject The SUBJECT. * @return this */ public EmailFilter subject(final String subject) { final SearchTerm subjectTerm = new SubjectTerm(subject); concat(subjectTerm); return this; }
/** * Defines filter for received date. * * @return this */ public EmailFilter receivedDate(final Operator operator, final long milliseconds) { final SearchTerm term = new ReceivedDateTerm(operator.value, new Date(milliseconds)); concat(term); return this; }
/** * Appends single filter as NOT. * * @param emailFilter {@link EmailFilter} to append. * @return this */ public EmailFilter not(final EmailFilter emailFilter) { final SearchTerm searchTerm = new NotTerm(emailFilter.searchTerm); concat(searchTerm); return this; }
/** * Defines filter for BCC field. * * @param bccAddress BCC address. * @return this */ public EmailFilter bcc(final String bccAddress) { final SearchTerm toTerm = new RecipientStringTerm(RecipientType.BCC, bccAddress); concat(toTerm); return this; }
/** * Defines filter for many flags at once. * * @param flags The {@link Flags} to filter on. * @param value The {@link Flag} setting to check for. * @return this */ public EmailFilter flags(final Flags flags, final boolean value) { final SearchTerm flagTerm = new FlagTerm(flags, value); concat(flagTerm); return this; }
/** * Defines filteer for message number. * * @param messageNumber The message number. * @return this */ public EmailFilter messageNumber(final int messageNumber) { final SearchTerm msgIdTerm = new MessageNumberTerm(messageNumber); concat(msgIdTerm); return this; }
/** * Defines filter for FROM field. * * @param fromAddress The FROM address * @return this */ public EmailFilter from(final String fromAddress) { final SearchTerm fromTerm = new FromStringTerm(fromAddress); concat(fromTerm); return this; }
/** * Defines filter for TO field. * * @param toAddress The TO address. * @return this */ public EmailFilter to(final String toAddress) { final SearchTerm toTerm = new RecipientStringTerm(RecipientType.TO, toAddress); concat(toTerm); return this; }
/** * Defines filter for CC field. * * @param ccAddress CC addreses. * @return this */ public EmailFilter cc(final String ccAddress) { final SearchTerm toTerm = new RecipientStringTerm(RecipientType.CC, ccAddress); concat(toTerm); return this; }
/** * Defines filter for sent date. * * @param operator {@link Operator} to use. * @param milliseconds the milliseconds since January 1, 1970, 00:00:00 GMT. * @return this */ public EmailFilter sentDate(final Operator operator, final long milliseconds) { final SearchTerm term = new SentDateTerm(operator.value, new Date(milliseconds)); concat(term); return this; }
/** * Defines filter on a message body. * All parts of the message that are of MIME type "text/*" are searched. * * @param pattern String pattern use in body. * @return this */ public EmailFilter text(final String pattern) { final SearchTerm term = new BodyTerm(pattern); concat(term); return this; }
/** * Defines filter for {@link Header}. * * @param headerName The name of the {@link Header}. * @param pattern String pattern to use for headerName. * @return this */ public EmailFilter header(final String headerName, final String pattern) { final SearchTerm term = new HeaderTerm(headerName, pattern); concat(term); return this; }
/** * Defines filter for message size. * * @param comparison {@link Operator}. * @param size size of message. * @return this */ public EmailFilter size(final Operator comparison, final int size) { final SearchTerm term = new SizeTerm(comparison.value, size); concat(term); return this; }
/** * Defines OR group of filters. * * @param emailFilters array of {@link EmailFilter}s to OR. * @return this */ public EmailFilter or(final EmailFilter... emailFilters) { final SearchTerm[] searchTerms = new SearchTerm[emailFilters.length]; for (int i = 0; i < emailFilters.length; i++) { searchTerms[i] = emailFilters[i].searchTerm; } concat(new OrTerm(searchTerms)); return this; }
/** * Defines filteer for message number. * * @param messageNumber The message number. * @return this */ public EmailFilter messageNumber(final int messageNumber) { final SearchTerm msgIdTerm = new MessageNumberTerm(messageNumber); concat(msgIdTerm); return this; }
/** * Defines filter for TO field. * * @param toAddress The TO address. * @return this */ public EmailFilter to(final String toAddress) { final SearchTerm toTerm = new RecipientStringTerm(RecipientType.TO, toAddress); concat(toTerm); return this; }
/** * Defines filter for CC field. * * @param ccAddress CC addreses. * @return this */ public EmailFilter cc(final String ccAddress) { final SearchTerm toTerm = new RecipientStringTerm(RecipientType.CC, ccAddress); concat(toTerm); return this; }
/** * Defines filter for message size. * * @param comparison {@link Operator}. * @param size size of message. * @return this */ public EmailFilter size(final Operator comparison, final int size) { final SearchTerm term = new SizeTerm(comparison.value, size); concat(term); return this; }