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 }