1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.rat.document.guesser;
20
21 import java.util.Arrays;
22 import java.util.Locale;
23
24 import org.apache.rat.api.Document;
25
26
27
28
29 public final class NoteGuesser {
30
31 private static final String DOT = ".";
32
33
34
35
36 private static final String[] NOTE_FILE_NAMES = {
37 "NOTICE", "LICENSE",
38 "LICENSE.TXT", "NOTICE.TXT",
39 "INSTALL", "INSTALL.TXT",
40 "README", "README.TXT",
41 "NEWS", "NEWS.TXT",
42 "AUTHOR", "AUTHOR.TXT",
43 "AUTHORS", "AUTHORS.txt",
44 "CHANGELOG", "CHANGELOG.TXT",
45 "DISCLAIMER", "DISCLAIMER.TXT",
46 "KEYS", "KEYS.TXT",
47 "RELEASE-NOTES", "RELEASE-NOTES.TXT",
48 "RELEASE_NOTES", "RELEASE_NOTES.TXT",
49 "UPGRADE", "UPGRADE.TXT",
50 "STATUS", "STATUS.TXT",
51 "THIRD_PARTY_NOTICES", "THIRD_PARTY_NOTICES.TXT",
52 "COPYRIGHT", "COPYRIGHT.TXT",
53 "BUILDING", "BUILDING.TXT",
54 "BUILD", "BUILT.TXT",
55 "DEPENDENCIES"
56 };
57
58
59
60
61 private static final String[] NOTE_FILE_EXTENSIONS = {
62 "LICENSE", "LICENSE.TXT",
63 "NOTICE", "NOTICE.TXT",
64 };
65
66 private NoteGuesser() {
67
68 }
69
70
71
72
73
74
75
76 public static boolean isNote(final Document document) {
77 if (document == null) {
78 return false;
79 }
80
81 String normalisedName = document.getName().getShortName().toUpperCase(Locale.US);
82 if (Arrays.asList(NoteGuesser.NOTE_FILE_NAMES).contains(normalisedName)) {
83 return true;
84 }
85
86 for (String extension : NoteGuesser.NOTE_FILE_EXTENSIONS) {
87 if (normalisedName.endsWith(DOT + extension)) {
88 return true;
89 }
90 }
91
92 return false;
93 }
94
95 }