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 public AnyFileOrDirectoryFilter(String extension) {
14 this.extension = extension;
15 }
16 public boolean accept(File dir, String filename) {
17 return filename.endsWith(extension) || (new File(dir.getAbsolutePath() + System.getProperty("file.separator") + filename).isDirectory());
18 }
19 }
20
21 private AnyTokenizer tokenizer;
22 private String extension;
23
24 public AnyLanguage(String extension) {
25 this.extension = extension;
26 tokenizer = new AnyTokenizer();
27 }
28
29 public Tokenizer getTokenizer() {
30 return tokenizer;
31 }
32
33 public FilenameFilter getFileFilter() {
34 return new AnyFileOrDirectoryFilter(this.extension);
35 }
36 }