001 package org.shiftone.jrat.core.config; 002 003 import org.shiftone.jrat.core.criteria.IncludeExcludeMethodCriteria; 004 import org.shiftone.jrat.core.criteria.MatcherMethodCriteria; 005 import org.shiftone.jrat.core.criteria.MethodCriteria; 006 import org.shiftone.jrat.util.log.Logger; 007 008 import java.util.ArrayList; 009 import java.util.List; 010 011 012 /** 013 * @author jeff@shiftone.org (Jeff Drost) 014 */ 015 public class Profile implements MethodCriteria { 016 017 private static final Logger LOG = Logger.getLogger(Profile.class); 018 private IncludeExcludeMethodCriteria methodCriteria = new IncludeExcludeMethodCriteria(); 019 private String name; 020 private List factories = new ArrayList(); 021 022 public MatcherMethodCriteria createInclude() { 023 MatcherMethodCriteria newCriteria = new MatcherMethodCriteria(); 024 methodCriteria.addPositive(newCriteria); 025 return newCriteria; 026 } 027 028 029 public MatcherMethodCriteria createExclude() { 030 MatcherMethodCriteria newCriteria = new MatcherMethodCriteria(); 031 methodCriteria.addNegative(newCriteria); 032 return newCriteria; 033 } 034 035 public Handler createFactory() { 036 Handler handler = new Handler(); 037 factories.add(handler); 038 return handler; 039 } 040 041 public boolean isMatch(String className, long modifier) { 042 return methodCriteria.isMatch(className, modifier); 043 } 044 045 public boolean isMatch(String className, String methodName, String signature, long modifier) { 046 return methodCriteria.isMatch(className, methodName, signature, modifier); 047 } 048 049 050 public String getName() { 051 return name; 052 } 053 054 public void setName(String name) { 055 this.name = name; 056 } 057 058 public List getFactories() { 059 return factories; 060 } 061 }