KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > incava > qualog > QlFilter


1 package org.incava.qualog;
2
3 import java.util.*;
4 import java.util.regex.*;
5 import org.incava.lang.Range;
6
7
8 /**
9  * Represents a filter for selective enabling or disabling of logging
10  * statements.
11  */

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 JavaDoc fname, Range lnum, String JavaDoc clsName, String JavaDoc 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     /**
53      * Returns the level.
54      */

55     public QlLevel getLevel()
56     {
57         return level;
58     }
59
60     /**
61      * Returns whether the given parameters match this filter.
62      */

63     public boolean isMatch(String JavaDoc fileName, int lineNumber, String JavaDoc className, String JavaDoc 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