in src/main/java/org/apache/creadur/tentacles/Main.java [202:230]
private void classifyLicenses(final Archive archive) throws IOException {
final Set<License> undeclared =
new HashSet<>(archive.getLicenses());
final File contents = archive.contentsDirectory();
final List<File> files = this.fileSystem.licensesDeclaredIn(contents);
for (final File file : files) {
undeclared.remove(this.licenses.from(file));
}
archive.getOtherLicenses().addAll(undeclared);
final Set<License> declared =
new HashSet<>(archive.getLicenses());
declared.removeAll(undeclared);
archive.getDeclaredLicenses().addAll(declared);
for (final License license : undeclared) {
for (final License declare : declared) {
if (license.implies(declare)) {
archive.getOtherLicenses().remove(license);
}
}
}
}