1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd.cpd;
5
6 import java.io.File;
7 import java.io.FilenameFilter;
8
9 public class AnyLanguage implements Language {
10
11 public static class AnyFileOrDirectoryFilter implements FilenameFilter {
12 String extension;
13
14 public AnyFileOrDirectoryFilter(String extension) {
15 this.extension = extension;
16 }
17
18 public boolean accept(File dir, String filename) {
19 return filename.endsWith(extension) || (new File(dir.getAbsolutePath() + System.getProperty("file.separator") + filename).isDirectory());
20 }
21 }
22
23 private AnyTokenizer tokenizer;
24 private String extension;
25
26 public AnyLanguage(String extension) {
27 this.extension = extension;
28 tokenizer = new AnyTokenizer();
29 }
30
31 public Tokenizer getTokenizer() {
32 return tokenizer;
33 }
34
35 public FilenameFilter getFileFilter() {
36 return new AnyFileOrDirectoryFilter(this.extension);
37 }
38 }