1 package net.sourceforge.pmd;
2
3 import java.io.File;
4
5 /***
6 * Filtering of wanted source files.
7 *
8 * @author Pieter_Van_Raemdonck - Application Engineers NV/SA - www.ae.be
9 */
10 public class SourceFileSelector {
11
12 private boolean selectJavaFiles = true;
13
14
15 private boolean selectJspFiles = false;
16
17 /***
18 * Check if a file with given fileName should be checked by PMD.
19 *
20 * @param fileName String
21 * @return True if the file must be checked; false otherwise
22 */
23 public boolean isWantedFile(String fileName) {
24 int lastDotIndex = fileName.lastIndexOf(".");
25 if (lastDotIndex < 0) {
26 return false;
27 }
28
29 String extensionUppercase = fileName.substring(1 + lastDotIndex)
30 .toUpperCase();
31
32 if (selectJavaFiles
33 && extensionUppercase
34 .equals(SourceFileConstants.JAVA_EXTENSION_UPPERCASE)) {
35 return true;
36 }
37
38 if (selectJspFiles
39 && (extensionUppercase
40 .equals(SourceFileConstants.JSP_EXTENSION_UPPERCASE) || extensionUppercase
41 .equals(SourceFileConstants.JSPX_EXTENSION_UPPERCASE))) {
42 return true;
43 }
44
45 return false;
46 }
47
48 /***
49 * Check if a given file should be checked by PMD.
50 *
51 * @param file The File
52 * @return True if the file must be checked; false otherwise
53 */
54 public boolean isWantedFile(File file) {
55 return isWantedFile(file.getAbsolutePath());
56 }
57
58 /***
59 * @return Returns the selectJavaFiles.
60 */
61 public boolean isSelectJavaFiles() {
62 return selectJavaFiles;
63 }
64
65 /***
66 * @param selectJavaFiles The selectJavaFiles to set.
67 */
68 public void setSelectJavaFiles(boolean selectJavaFiles) {
69 this.selectJavaFiles = selectJavaFiles;
70 }
71
72 /***
73 * @return Returns the selectJspFiles.
74 */
75 public boolean isSelectJspFiles() {
76 return selectJspFiles;
77 }
78
79 /***
80 * @param selectJspFiles The selectJspFiles to set.
81 */
82 public void setSelectJspFiles(boolean selectJspFiles) {
83 this.selectJspFiles = selectJspFiles;
84 }
85 }