in src/main/java/org/apache/creadur/tentacles/Main.java [232:274]
private void reportDeclaredNotices(final List<Archive> archives)
throws IOException {
for (final Archive archive : archives) {
final Set<Notice> undeclared =
new HashSet<>(archive.getNotices());
final File contents = archive.contentsDirectory();
final List<File> files =
this.fileSystem.noticesDeclaredIn(contents);
for (final File file : files) {
final Notice notice = new Notice(this.ioSystem.slurp(file));
undeclared.remove(notice);
}
archive.getOtherNotices().addAll(undeclared);
final Set<Notice> declared =
new HashSet<>(archive.getNotices());
declared.removeAll(undeclared);
archive.getDeclaredNotices().addAll(declared);
for (final Notice notice : undeclared) {
for (final Notice declare : declared) {
if (notice.implies(declare)) {
archive.getOtherLicenses().remove(notice);
}
}
}
this.templates
.template("legal/archive-notices.vm")
.add("archive", archive)
.add("reports", this.reports)
.write(new File(this.layout.getOutputDirectory(),
this.reports.notices(archive)));
}
}