/** * 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); }
/** * 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; }
@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); }
@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); }
@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); }
@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); }
/** * 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); }
t = new OrTerm(t, terms[i]);
t = new OrTerm(t, terms[i]);
protected Message[] getMessagesByIds(Folder folder, List<String> messageIds) throws MessagingException { List<MessageIDTerm> idTerms = messageIds.stream() .map(MessageIDTerm::new) .collect(Collectors.toList()); OrTerm searchTerm = new OrTerm(idTerms.toArray(new MessageIDTerm[idTerms.size()])); return folder.search(searchTerm); }
/** * 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; }
@Override public SearchTerm build() { return new OrTerm(new SubjectTerm(getParameters().get(0)),new SubjectTerm(getParameters().get(1))); } }; }
private void addTerm(Op op, SearchTerm newTerm) { if (term == null) { term = newTerm; } else if (op == Op.and) { term = new AndTerm(term, newTerm); } else if (op == Op.or) { term = new OrTerm(term, newTerm); } else { // need to and the existing with the not term = new AndTerm(term, new NotTerm(newTerm)); } } }
@Override public SearchTerm build() { String query = getParameters().get(0); SearchTerm[] terms = { new RecipientStringTerm(Message.RecipientType.TO, query), new RecipientStringTerm(Message.RecipientType.CC, query), new RecipientStringTerm(Message.RecipientType.BCC, query), new FromStringTerm(query), new SubjectTerm(query), new BodyTerm(query) }; return new OrTerm(terms); } };
t = new OrTerm(t, terms[i]);
t = new OrTerm(t, terms[i]);
t = new OrTerm(t, terms[i]);
t = new OrTerm(t, terms[i]);
t = new OrTerm(t, terms[i]);
t = new OrTerm(t, terms[i]);