/** * Sets {@link OrTerm} searchTerm. * * @param searchTerm {@link SearchTerm} to set as OR. */ protected void or(final SearchTerm searchTerm) { if (this.searchTerm == null) { this.searchTerm = searchTerm; return; } this.searchTerm = new OrTerm(this.searchTerm, searchTerm); }
/** * Check if the "text" terms in the given SearchTerm contain * non US-ASCII characters. * * @param term the search term * @return true if only ASCII */ public static boolean isAscii(SearchTerm term) { if (term instanceof AndTerm) return isAscii(((AndTerm)term).getTerms()); else if (term instanceof OrTerm) return isAscii(((OrTerm)term).getTerms()); else if (term instanceof NotTerm) return isAscii(((NotTerm)term).getTerm()); else if (term instanceof StringTerm) return isAscii(((StringTerm)term).getPattern()); else if (term instanceof AddressTerm) return isAscii(((AddressTerm)term).getAddress().toString()); // Any other term returns true. return true; }
/** * Check if the "text" terms in the given SearchTerm contain * non US-ASCII characters. * * @param term the search term * @return true if only ASCII */ public static boolean isAscii(SearchTerm term) { if (term instanceof AndTerm) return isAscii(((AndTerm)term).getTerms()); else if (term instanceof OrTerm) return isAscii(((OrTerm)term).getTerms()); else if (term instanceof NotTerm) return isAscii(((NotTerm)term).getTerm()); else if (term instanceof StringTerm) return isAscii(((StringTerm)term).getPattern()); else if (term instanceof AddressTerm) return isAscii(((AddressTerm)term).getAddress().toString()); // Any other term returns true. return true; }
/** * 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; }
static boolean isAscii(SearchTerm term) { if (term instanceof AndTerm || term instanceof OrTerm) { SearchTerm[] terms; if (term instanceof AndTerm) terms = ((AndTerm)term).getTerms(); else terms = ((OrTerm)term).getTerms(); for (int i = 0; i < terms.length; i++) if (!isAscii(terms[i])) // outta here ! return false; } else if (term instanceof NotTerm) return isAscii(((NotTerm)term).getTerm()); else if (term instanceof StringTerm) return isAscii(((StringTerm)term).getPattern()); else if (term instanceof AddressTerm) return isAscii(((AddressTerm)term).getAddress().toString()); // Any other term returns true. return true; }
@Test void testOr2Alt() { final EmailFilter emailFilter = filter().or() .from(FROM) .to(TO); final SearchTerm expected = new OrTerm( new FromStringTerm(FROM), new RecipientStringTerm(Message.RecipientType.TO, TO) ); assertEquals(expected, emailFilter.searchTerm); }
public static boolean isAscii(SearchTerm term) { if (term instanceof AndTerm || term instanceof OrTerm) { SearchTerm[] terms; if (term instanceof AndTerm) terms = ((AndTerm)term).getTerms(); else terms = ((OrTerm)term).getTerms(); for (int i = 0; i < terms.length; i++) if (!isAscii(terms[i])) // outta here ! return false; } else if (term instanceof NotTerm) return isAscii(((NotTerm)term).getTerm()); else if (term instanceof StringTerm) return isAscii(((StringTerm)term).getPattern()); else if (term instanceof AddressTerm) return isAscii(((AddressTerm)term).getAddress().toString()); // Any other term returns true. return true; }
@Test void testAndOrNot() { final EmailFilter emailFilter = filter() .from(FROM) .to(TO) .or() .not() .subject(SUBJECT) .from(FROM_2); final SearchTerm expected = new OrTerm( new OrTerm( new AndTerm( new FromStringTerm(FROM), new RecipientStringTerm(Message.RecipientType.TO, TO) ), new NotTerm( new SubjectTerm(SUBJECT) ) ), new FromStringTerm(FROM_2) ); assertEquals(expected, emailFilter.searchTerm); }
/** * Check if the "text" terms in the given SearchTerm contain * non US-ASCII characters. * * @param term the search term * @return true if only ASCII */ public static boolean isAscii(SearchTerm term) { if (term instanceof AndTerm) return isAscii(((AndTerm)term).getTerms()); else if (term instanceof OrTerm) return isAscii(((OrTerm)term).getTerms()); else if (term instanceof NotTerm) return isAscii(((NotTerm)term).getTerm()); else if (term instanceof StringTerm) return isAscii(((StringTerm)term).getPattern()); else if (term instanceof AddressTerm) return isAscii(((AddressTerm)term).getAddress().toString()); // Any other term returns true. return true; }
@Test void testOr2() { final EmailFilter emailFilter = filter().or( filter().from(FROM), filter().to(TO) ); final SearchTerm expected = new OrTerm( new FromStringTerm(FROM), new RecipientStringTerm(Message.RecipientType.TO, TO) ); assertEquals(expected, emailFilter.searchTerm); }
/** * Check if the "text" terms in the given SearchTerm contain * non US-ASCII characters. * * @param term the search term * @return true if only ASCII */ public static boolean isAscii(SearchTerm term) { if (term instanceof AndTerm) return isAscii(((AndTerm)term).getTerms()); else if (term instanceof OrTerm) return isAscii(((OrTerm)term).getTerms()); else if (term instanceof NotTerm) return isAscii(((NotTerm)term).getTerm()); else if (term instanceof StringTerm) return isAscii(((StringTerm)term).getPattern()); else if (term instanceof AddressTerm) return isAscii(((AddressTerm)term).getAddress().toString()); // Any other term returns true. return true; }
@Test void testAndOrNotAlt() { final EmailFilter emailFilter = filter() .or( filter().and( filter().from(FROM), filter().to(TO) ), filter().not(filter().subject(SUBJECT)), filter().from(FROM_2) ); final SearchTerm expected = new OrTerm( new SearchTerm[]{ new AndTerm( new FromStringTerm(FROM), new RecipientStringTerm(Message.RecipientType.TO, TO) ), new NotTerm( new SubjectTerm(SUBJECT) ), new FromStringTerm(FROM_2) } ); assertEquals(expected, emailFilter.searchTerm); }
/** * Check if the "text" terms in the given SearchTerm contain * non US-ASCII characters. * * @param term the search term * @return true if only ASCII */ public static boolean isAscii(SearchTerm term) { if (term instanceof AndTerm) return isAscii(((AndTerm)term).getTerms()); else if (term instanceof OrTerm) return isAscii(((OrTerm)term).getTerms()); else if (term instanceof NotTerm) return isAscii(((NotTerm)term).getTerm()); else if (term instanceof StringTerm) return isAscii(((StringTerm)term).getPattern()); else if (term instanceof AddressTerm) return isAscii(((AddressTerm)term).getAddress().toString()); // Any other term returns true. return true; }