1 package org.columba.mail.filter.plugins; 17 18 import org.columba.core.filter.AbstractFilter; 19 import org.columba.core.filter.FilterCriteria; 20 import org.columba.core.filter.IFilterCriteria; 21 import org.columba.core.folder.api.IFolder; 22 import org.columba.mail.folder.IMailbox; 23 24 29 public class AccountFilter extends AbstractFilter { 30 int criteriaCondition; 31 32 int criteriaAccountUid; 33 34 38 public AccountFilter() { 39 super(); 40 } 41 42 43 public boolean process(IFolder folder, Object uid) throws Exception { 44 boolean result = false; 45 46 Integer messageAccountUid = (Integer ) ((IMailbox) folder).getAttribute( 47 uid, "columba.accountuid"); 48 49 if ((messageAccountUid != null) && (criteriaAccountUid != -1)) { 50 int id = messageAccountUid.intValue(); 51 52 if ((criteriaCondition == FilterCriteria.IS) 53 && (criteriaAccountUid == id)) { 54 result = true; 55 } else if ((criteriaCondition == FilterCriteria.IS_NOT) 56 && (criteriaAccountUid != id)) { 57 result = true; 58 } 59 } 60 61 return result; 62 } 63 64 67 public void setUp(IFilterCriteria f) { 68 criteriaCondition = f.getCriteria(); 69 String uidString = f.getPatternString(); 70 criteriaAccountUid = -1; 71 try { 72 criteriaAccountUid = Integer.parseInt(uidString); 73 } catch (NumberFormatException e) { 74 criteriaAccountUid = -1; 75 } 76 77 } 78 } | Popular Tags |