001 package org.shiftone.jrat.core.criteria; 002 003 import org.shiftone.jrat.util.log.Logger; 004 005 006 /** 007 * Used by ant task. 008 * (p1 or p2 or p3 or p4) and not(n1 or n2 or n3). 009 * 010 * @author jeff@shiftone.org (Jeff Drost) 011 */ 012 public class IncludeExcludeMethodCriteria implements MethodCriteria { 013 014 private static final Logger LOG = Logger.getLogger(IncludeExcludeMethodCriteria.class); 015 private final AndMethodCriteria root; 016 private final OrMethodCriteria positive; 017 private final OrMethodCriteria negative; 018 019 public IncludeExcludeMethodCriteria() { 020 021 root = new AndMethodCriteria(); 022 positive = new OrMethodCriteria(); 023 negative = new OrMethodCriteria(); 024 025 root.addCriteria(positive); 026 root.addCriteria(new NotMethodCriteria(negative)); 027 } 028 029 030 public void addPositive(MethodCriteria criteria) { 031 positive.addCriteria(criteria); 032 } 033 034 035 public void addNegative(MethodCriteria criteria) { 036 negative.addCriteria(criteria); 037 } 038 039 040 public boolean isMatch(String className, long modifier) { 041 return root.isMatch(className, modifier); 042 } 043 044 045 public boolean isMatch(String className, String methodName, String signature, long modifier) { 046 return root.isMatch(className, methodName, signature, modifier); 047 } 048 }