1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.rat.policy;
20
21 import java.util.Collection;
22 import java.util.Collections;
23 import java.util.SortedSet;
24
25 import org.apache.rat.api.Document;
26 import org.apache.rat.api.MetaData;
27 import org.apache.rat.document.IDocumentAnalyser;
28 import org.apache.rat.license.ILicenseFamily;
29 import org.apache.rat.license.LicenseFamilySetFactory;
30
31
32
33
34 public class DefaultPolicy implements IDocumentAnalyser {
35 private final SortedSet<ILicenseFamily> approvedLicenseFamilies;
36
37
38
39
40
41 public DefaultPolicy(final Collection<ILicenseFamily> approvedLicenseFamilies) {
42 this.approvedLicenseFamilies = LicenseFamilySetFactory.emptyLicenseFamilySet();
43 this.approvedLicenseFamilies.addAll(approvedLicenseFamilies);
44 }
45
46
47
48
49
50 public void add(ILicenseFamily approvedLicense) {
51 this.approvedLicenseFamilies.add(approvedLicense);
52 }
53
54 @Override
55 public void analyse(final Document document) {
56 if (document != null) {
57 boolean approval;
58 if (document.getMetaData().value(MetaData.RAT_URL_HEADER_CATEGORY) != null) {
59 ILicenseFamily licenseFamily = ILicenseFamily.builder()
60 .setLicenseFamilyCategory(
61 document.getMetaData().value(MetaData.RAT_URL_HEADER_CATEGORY))
62 .setLicenseFamilyName(document.getMetaData().value(MetaData.RAT_URL_LICENSE_FAMILY_NAME))
63 .build();
64 approval = approvedLicenseFamilies.contains(licenseFamily);
65 reportLicenseApprovalClaim(document, approval);
66 }
67 }
68 }
69
70
71
72
73
74
75 public void reportLicenseApprovalClaim(final Document document, final boolean isAcceptable) {
76 document.getMetaData().set(
77 isAcceptable ? MetaData.RAT_APPROVED_LICENSE_DATUM_TRUE : MetaData.RAT_APPROVED_LICENSE_DATUM_FALSE);
78 }
79
80
81
82
83
84 public SortedSet<ILicenseFamily> getApprovedLicenseNames() {
85 return Collections.unmodifiableSortedSet(approvedLicenseFamilies);
86 }
87 }