private SearchTerm createFieldSearchTerm(String f) { switch (f.toLowerCase()) { case "from": return new FromStringTerm(matchingText); case "cc": return new RecipientStringTerm(Message.RecipientType.CC, matchingText); case "to": return new RecipientStringTerm(Message.RecipientType.TO, matchingText); case "body": return new BodyTerm(matchingText); case "subject": return new SubjectTerm(matchingText); default: return null; } }
@Test public void multipleFieldsShouldReturnOrTerm() { final Set fields = new HashSet(); fields.add("to"); fields.add("from"); fields.add("cc"); Rule rule = Rule.create() .sourceFolder("INBOX") .matchingText("testText") .fields(fields); SearchTerm term = rule.getSearchTerm(); Assert.assertTrue(term instanceof OrTerm); SearchTerm[] terms = ((OrTerm) term).getTerms(); for (SearchTerm t : terms) { Assert.assertTrue(t instanceof FromStringTerm || (t instanceof RecipientStringTerm && ((RecipientStringTerm) t).getRecipientType() == Message.RecipientType.CC) || (t instanceof RecipientStringTerm && ((RecipientStringTerm) t).getRecipientType() == Message.RecipientType.TO)); } }
private static SearchTermBuilder createTextSearchTermBuilder() { return new SearchTermBuilder() { @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); } }; }
public SearchTermBuilder recipient(Op op, Message.RecipientType type, String pattern) { SearchTerm st = new RecipientStringTerm(type, pattern); addTerm(op, st); return this; }
/** * Set filter on receipient. * @param receipient messages will be filtered on receipient * @param notTerm negate condition */ public void setReceipientTerm(String receipient) { if (!Const.isEmpty(receipient)) { addSearchTerm(new RecipientStringTerm(Message.RecipientType.TO,receipient)); } }
/** * Set filter on receipient. * * @param receipient * messages will be filtered on receipient * @param notTerm * negate condition */ public void setReceipientTerm( String receipient ) { if ( !Utils.isEmpty( receipient ) ) { addSearchTerm( new RecipientStringTerm( Message.RecipientType.TO, receipient ) ); } }