1 package org.columba.mail.filter.plugins; 17 18 import java.io.InputStream ; 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.core.io.StreamUtils; 25 import org.columba.mail.folder.IMailbox; 26 27 32 public class BodyFilter extends AbstractFilter { 33 private String pattern; 34 35 private int condition; 36 37 42 public boolean process(IFolder folder, Object uid) 43 throws Exception { 44 46 InputStream messageSourceStream = ((IMailbox)folder).getMessageSourceStream(uid); 47 StringBuffer body = StreamUtils.readCharacterStream(messageSourceStream); 48 String bodyText = pattern; 49 50 boolean result = false; 51 52 switch (condition) { 53 case FilterCriteria.CONTAINS: 54 55 if (body.indexOf(bodyText) != -1) { 56 result = true; 57 } 58 59 break; 60 61 case FilterCriteria.CONTAINS_NOT: 62 63 if (body.indexOf(bodyText) == -1) { 64 result = true; 65 } 66 67 break; 68 } 69 70 return result; 71 } 72 73 76 public void setUp(IFilterCriteria f) { 77 78 pattern = f.getPatternString(); 80 81 condition = f.getCriteria(); 82 } 83 } | Popular Tags |