1 package jp.sourceforge.stigmata.utils;
8 * A rule for checking wellknown class or not.
10 * @author Haruaki TAMADA
13 public final class WellknownClassJudgeRule{
14 public enum MatchType{
15 PREFIX, SUFFIX, EXACT, NOT_MATCH,
17 public enum MatchPartType{
18 FULLY_NAME, PACKAGE_NAME, CLASS_NAME,
21 private MatchType matchType;
22 private MatchPartType partType;
23 private boolean excludeFlag;
25 private String pattern;
27 public WellknownClassJudgeRule(String pattern, MatchType matchType, MatchPartType partType){
28 this(pattern, matchType, partType, false);
31 public WellknownClassJudgeRule(String pattern, MatchType matchType, MatchPartType partType, boolean excludeFlag){
32 this.pattern = pattern;
33 this.matchType = matchType;
34 this.partType = partType;
35 this.excludeFlag = excludeFlag;
38 public void setExclude(boolean excludeFlag){
39 this.excludeFlag = excludeFlag;
42 public boolean isExclude(){
46 public String getPattern(){
50 public MatchType getMatchType(){
54 public MatchPartType getMatchPartType(){
58 public int hashCode(){
59 int m = getMatchType().hashCode();
60 int p = getMatchPartType().hashCode();
61 int s = getPattern().hashCode();
66 public boolean equals(Object o){
67 if(o instanceof WellknownClassJudgeRule){
68 WellknownClassJudgeRule wcjr = (WellknownClassJudgeRule)o;
69 return getPattern().equals(wcjr.getPattern())
70 && getMatchPartType() == wcjr.getMatchPartType()
71 && getMatchType() == wcjr.getMatchType();
76 public String toString(){
78 switch(getMatchType()){
80 string = String.format("<prefix>%s</prefix>", getPattern());
83 string = String.format("<suffix>%s</suffix>", getPattern());
86 string = String.format("<match>%s</match>", getPattern());
89 string = String.format("<not-match>%s</not-match>", getPattern());
92 switch(getMatchPartType()){
94 string = String.format("<class-name>%s</class-name>", string);
97 string = String.format("<fully-name>%s</fully-name>", string);
100 string = String.format("<package-name>%s</package-name>", string);
104 string = "<exclude>" + string + "</exclude>";