001 package org.shiftone.jrat.core.criteria; 002 003 004 import org.shiftone.jrat.util.log.Logger; 005 import org.shiftone.jrat.util.regex.GlobMatcher; 006 import org.shiftone.jrat.util.regex.Matcher; 007 008 009 /** 010 * Used by ant task. 011 * 012 * @author jeff@shiftone.org (Jeff Drost) 013 */ 014 public class MatcherMethodCriteria implements MethodCriteria { 015 016 private static final Logger LOG = Logger.getLogger(MatcherMethodCriteria.class); 017 018 private Matcher classNameMatcher = Matcher.ALL; 019 private Matcher methodNameMatcher = Matcher.ALL; 020 private Matcher signatureMatcher = Matcher.ALL; 021 022 public void setClassName(String classNameMatcher) { 023 this.classNameMatcher = GlobMatcher.create(classNameMatcher); 024 } 025 026 027 public void setMethodName(String methodNameMatcher) { 028 this.methodNameMatcher = GlobMatcher.create(methodNameMatcher); 029 } 030 031 032 public void setSignature(String signatureMatcher) { 033 this.signatureMatcher = GlobMatcher.create(signatureMatcher); 034 } 035 036 037 public boolean isMatch(String className, long modifier) { 038 return classNameMatcher.isMatch(className); 039 } 040 041 042 public boolean isMatch(String className, String methodName, String signature, long modifier) { 043 return classNameMatcher.isMatch(className) 044 && methodNameMatcher.isMatch(methodName) 045 && signatureMatcher.isMatch(signature); 046 } 047 048 public String toString() { 049 StringBuffer sb = new StringBuffer(); 050 sb.append("<MatcherMethodCriteria>"); 051 sb.append("<Class>"); 052 sb.append(classNameMatcher); 053 sb.append("</Class>"); 054 sb.append("<Method>"); 055 sb.append(methodNameMatcher); 056 sb.append("</Method>"); 057 sb.append("<Signature>"); 058 sb.append(signatureMatcher); 059 sb.append("</Signature>"); 060 sb.append("</MatcherMethodCriteria>"); 061 return sb.toString(); 062 } 063 }