01: // This file is part of KeY - Integrated Deductive Software Design
02: // Copyright (C) 2001-2007 Universitaet Karlsruhe, Germany
03: // Universitaet Koblenz-Landau, Germany
04: // Chalmers University of Technology, Sweden
05: //
06: // The KeY system is protected by the GNU General Public License.
07: // See LICENSE.TXT for details.
08: package de.uka.ilkd.key.util.keydoc.html;
09:
10: import java.util.regex.*;
11: import java.io.File;
12: import java.io.FilenameFilter;
13:
14: class KDFilenameFilter implements FilenameFilter {
15:
16: Pattern[] patterns;
17: Matcher m;
18:
19: public KDFilenameFilter(String args[]) {
20:
21: try {
22: patterns = new Pattern[args.length];
23: for (int i = 0; i < args.length; i++) {
24: patterns[i] = Pattern.compile(paternizeString(args[i]));
25: }
26: } catch (PatternSyntaxException pSE) {
27: System.out
28: .println("PatternSyntaxException occured while matching your input:");
29: System.out.println(pSE.getDescription());
30: System.out.println("Erroneus Pattern: " + pSE.getPattern()
31: + " At Index (-1 for unknown): " + pSE.getIndex());
32: }
33: }
34:
35: public boolean accept(File dir, String name) {
36: boolean ret = false;
37:
38: for (int i = 0; i < patterns.length; i++) {
39: m = patterns[i].matcher(name);
40: ret = ret || m.matches();
41: }
42:
43: return ret;
44: }
45:
46: private String paternizeString(String s) {
47: String ret = "";
48:
49: for (int i = 0; i < s.length(); i++) {
50:
51: if (s.charAt(i) == '*') {
52: ret += "(.*)";
53: } else if (s.charAt(i) == '.') {
54: ret += "[.]";
55: } else {
56: ret += (s.charAt(i));
57: }
58:
59: }
60:
61: return ret;
62:
63: }
64: }
|