1 package org.columba.mail.filter.plugins; 19 20 import org.columba.core.filter.AbstractFilter; 21 import org.columba.core.filter.FilterCriteria; 22 import org.columba.core.filter.IFilterCriteria; 23 import org.columba.core.folder.api.IFolder; 24 import org.columba.mail.folder.IMailbox; 25 import org.columba.ristretto.message.Flags; 26 27 34 public class FlagsFilter extends AbstractFilter { 35 36 private String pattern; 37 38 private int condition; 39 40 43 public FlagsFilter() { 44 super(); 45 } 46 47 52 public boolean process(IFolder folder, Object uid) 53 throws Exception { 54 boolean result = false; 55 56 String headerField = pattern; 57 58 Flags flags = ((IMailbox)folder).getFlags(uid); 59 60 if (headerField.equalsIgnoreCase("Answered")) { 61 result = flags.get(Flags.ANSWERED); 62 } else if (headerField.equalsIgnoreCase("Deleted")) { 63 result = flags.get(Flags.DELETED); 64 } else if (headerField.equalsIgnoreCase("Flagged")) { 65 result = flags.get(Flags.FLAGGED); 66 } else if (headerField.equalsIgnoreCase("Recent")) { 67 result = flags.get(Flags.RECENT); 68 } else if (headerField.equalsIgnoreCase("Draft")) { 69 result = flags.get(Flags.DRAFT); 70 } else if (headerField.equalsIgnoreCase("Seen")) { 71 result = flags.get(Flags.SEEN); 72 } else if (headerField.equalsIgnoreCase("Spam")) { 73 result = ((Boolean ) ((IMailbox)folder).getAttribute(uid, "columba.spam")) 74 .booleanValue(); 75 } 76 77 if (condition == FilterCriteria.IS) { 78 return result; 79 } else { 80 return !result; 81 } 82 } 83 84 87 public void setUp(IFilterCriteria f) { 88 89 pattern = f.getPatternString(); 91 92 condition = f.getCriteria(); 93 } 94 } | Popular Tags |