1 21 package org.jsmtpd.core.common.filter; 22 23 import org.apache.commons.logging.Log; 24 import org.apache.commons.logging.LogFactory; 25 import org.jsmtpd.core.mail.Email; 26 27 35 public class FilterTreeNode { 36 37 private FilterTreeNode parent = null; 38 private FilterTreeNode trueNode = null; 39 private FilterTreeNode falseNode = null; 40 41 private IFilter filter; 42 private Log log = LogFactory.getLog(FilterTreeNode.class); 43 44 public void doFilter(Email in) throws FilterTreeFailureException, FilterTreeSuccesException, Throwable { 45 if (filter.doFilter(in)) { 46 log.debug("Filter true with " + filter.getPluginName()); 47 if (trueNode == null) { 49 log.debug("FILTER END OK by " + filter.getPluginName()); 50 throw new FilterTreeSuccesException(); 51 } 52 trueNode.doFilter(in); 53 } else { 54 log.debug("Filter false with " + filter.getPluginName()); 55 if (falseNode == null) { 56 log.debug("FILTER END FAIL by " + filter.getPluginName()); 57 throw new FilterTreeFailureException(); 58 } 59 falseNode.doFilter(in); 60 } 61 } 62 63 public FilterTreeNode getFalseNode() { 64 return falseNode; 65 } 66 67 public void setFalseNode(FilterTreeNode falseNode) { 68 this.falseNode = falseNode; 69 } 70 71 public FilterTreeNode getParent() { 72 return parent; 73 } 74 75 public void setParent(FilterTreeNode parent) { 76 this.parent = parent; 77 } 78 79 public FilterTreeNode getTrueNode() { 80 return trueNode; 81 } 82 83 public void setTrueNode(FilterTreeNode trueNode) { 84 this.trueNode = trueNode; 85 } 86 87 public IFilter getFilter() { 88 return filter; 89 } 90 91 public void setFilter(IFilter filter) { 92 this.filter = filter; 93 } 94 } | Popular Tags |