protected Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
protected Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
/** * 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 public void validateSearchTermsWhenShouldMarkAsReadWithExistingFlags() throws Exception { ImapMailReceiver receiver = new ImapMailReceiver(); receiver.setShouldMarkMessagesAsRead(true); receiver.setBeanFactory(mock(BeanFactory.class)); receiver.afterPropertiesSet(); Field folderField = AbstractMailReceiver.class.getDeclaredField("folder"); folderField.setAccessible(true); Folder folder = mock(Folder.class); when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER)); folderField.set(receiver, folder); Method compileSearchTerms = ReflectionUtils.findMethod(receiver.getClass(), "compileSearchTerms", Flags.class); compileSearchTerms.setAccessible(true); Flags flags = new Flags(); flags.add(Flag.ANSWERED); SearchTerm searchTerms = (SearchTerm) compileSearchTerms.invoke(receiver, flags); assertTrue(searchTerms instanceof AndTerm); AndTerm andTerm = (AndTerm) searchTerms; SearchTerm[] terms = andTerm.getTerms(); assertEquals(2, terms.length); NotTerm notTerm = (NotTerm) terms[0]; assertTrue(((FlagTerm) notTerm.getTerm()).getFlags().contains(Flag.ANSWERED)); notTerm = (NotTerm) terms[1]; Flags siFlags = new Flags(); siFlags.add(AbstractMailReceiver.DEFAULT_SI_USER_FLAG); assertTrue(((FlagTerm) notTerm.getTerm()).getFlags().contains(siFlags)); }
/** * 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; }
/** * append IMAP search term information from an AndTerm item. * * @param term The source AndTerm * @param charset target charset for the search information (can be null). * @param out The target command buffer. */ protected void appendAnd(AndTerm term, String charset) throws MessagingException { // ANDs are pretty easy. Just append all of the terms directly to the // command as is. SearchTerm[] terms = term.getTerms(); for (int i = 0; i < terms.length; i++) { appendSearchTerm(terms[i], charset); } }
private static Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
protected Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
protected Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
private static Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
protected Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
protected Argument and(AndTerm term, String charset) throws SearchException, IOException { // Combine the sequences for both terms SearchTerm[] terms = term.getTerms(); // Generate the search sequence for the first term Argument result = generateSequence(terms[0], charset); // Append other terms for (int i = 1; i < terms.length; i++) result.append(generateSequence(terms[i], charset)); return result; }
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; }
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; }
/** * 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; }
/** * 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; }
return checkSearchEncoding(((AndTerm)term).getTerms());