1 package org.incava.qualog; 2 3 import java.util.*; 4 import java.util.regex.*; 5 import org.incava.lang.Range; 6 7 8 12 public class QlFilter 13 { 14 public static final Pattern NO_PATTERN = null; 15 16 public static final Range NO_RANGE = null; 17 18 private QlLevel level; 19 20 private Pattern fileNamePat; 21 22 private Range lineNumberRng; 23 24 private Pattern classNamePat; 25 26 private Pattern methodNamePat; 27 28 public QlFilter(QlLevel level) 29 { 30 this.level = level; 31 } 32 33 public QlFilter(QlLevel level, Pattern fname, Range lnum, Pattern clsName, Pattern methName) 34 { 35 this.level = level; 36 37 fileNamePat = fname; 38 lineNumberRng = lnum; 39 classNamePat = clsName; 40 methodNamePat = methName; 41 } 42 43 public QlFilter(QlLevel level, String fname, Range lnum, String clsName, String methName) 44 { 45 this(level, 46 fname == null ? (Pattern)null : Pattern.compile(fname), 47 lnum, 48 clsName == null ? (Pattern)null : Pattern.compile(clsName), 49 methName == null ? (Pattern)null : Pattern.compile(methName)); 50 } 51 52 55 public QlLevel getLevel() 56 { 57 return level; 58 } 59 60 63 public boolean isMatch(String fileName, int lineNumber, String className, String methodName) 64 { 65 return ((fileNamePat == null || fileNamePat.matcher(fileName).matches()) && 66 (lineNumberRng == null || lineNumberRng.includes(lineNumber)) && 67 (classNamePat == null || classNamePat.matcher(className).matches()) && 68 (methodNamePat == null || methodNamePat.matcher(methodName).matches())); 69 } 70 71 } 72 | Popular Tags |