Improve fluency of interface
git-svn-id: https://svn.apache.org/repos/asf/creadur/tentacles/trunk@1463102 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/creadur/tentacles/License.java b/src/main/java/org/apache/creadur/tentacles/License.java
index 491c3f0..3f511c2 100644
--- a/src/main/java/org/apache/creadur/tentacles/License.java
+++ b/src/main/java/org/apache/creadur/tentacles/License.java
@@ -29,7 +29,7 @@
private final String text;
private final String key;
private final Set<Archive> archives = new HashSet<Archive>();
- final List<File> locations = new ArrayList<File>();
+ private final List<File> locations = new ArrayList<File>();
public License(final String key, final String text) {
this.text = text;
@@ -48,6 +48,10 @@
return this.archives;
}
+ public List<File> getLocations() {
+ return this.locations;
+ }
+
public Set<URI> locations(final Archive archive) {
final URI contents = archive.contentsURI();
final Set<URI> locations = new HashSet<URI>();
diff --git a/src/main/java/org/apache/creadur/tentacles/LicenseType.java b/src/main/java/org/apache/creadur/tentacles/LicenseType.java
index 8b57f91..711a220 100644
--- a/src/main/java/org/apache/creadur/tentacles/LicenseType.java
+++ b/src/main/java/org/apache/creadur/tentacles/LicenseType.java
@@ -26,14 +26,14 @@
ASL_2_0("asl-2.0"), CPL_1_0("cpl-1.0"), CDDL_1_0("cddl-1.0");
- public static Licenses loadLicensesFrom(
- final TentaclesResources tentaclesResources) throws IOException {
+ public static Licenses loadLicensesFrom(final Platform platform)
+ throws IOException {
final Map<String, String> licenses =
new ConcurrentHashMap<String, String>();
for (final LicenseType type : LicenseType.values()) {
- type.putTextInto(licenses, tentaclesResources);
+ type.putTextInto(licenses, platform.getTentaclesResources());
}
- return new Licenses(licenses);
+ return new Licenses(licenses, platform);
}
private final String resourceName;
diff --git a/src/main/java/org/apache/creadur/tentacles/Licenses.java b/src/main/java/org/apache/creadur/tentacles/Licenses.java
index 2a8278a..261cade 100644
--- a/src/main/java/org/apache/creadur/tentacles/Licenses.java
+++ b/src/main/java/org/apache/creadur/tentacles/Licenses.java
@@ -18,19 +18,27 @@
*/
package org.apache.creadur.tentacles;
+import java.io.File;
+import java.io.IOException;
import java.util.Collections;
import java.util.Map;
public class Licenses {
+ private final IOSystem ioSystem;
private final Map<String, String> licenses;
- public Licenses(final Map<String, String> licenses) {
+ public Licenses(final Map<String, String> licenses, final Platform platform) {
super();
+ this.ioSystem = platform.getIoSystem();
this.licenses = Collections.unmodifiableMap(licenses);
}
- public License license(final String text) {
+ public License from(final File document) throws IOException {
+ return license(this.ioSystem.slurp(document));
+ }
+
+ private License license(final String text) {
final String key = toKey(text);
return new License(key, normalize(text));
}
diff --git a/src/main/java/org/apache/creadur/tentacles/Main.java b/src/main/java/org/apache/creadur/tentacles/Main.java
index 8ae78fd..9dc5b69 100644
--- a/src/main/java/org/apache/creadur/tentacles/Main.java
+++ b/src/main/java/org/apache/creadur/tentacles/Main.java
@@ -95,7 +95,7 @@
this.tentaclesResources.copyTo("legal/style.css",
new File(this.layout.getOutputDirectory(), "style.css"));
- this.licenses = loadLicensesFrom(this.tentaclesResources);
+ this.licenses = loadLicensesFrom(platform);
}
public static void main(final String[] args) throws Exception {
@@ -154,8 +154,7 @@
final List<File> files =
this.fileSystem.licensesFrom(archive.contentsDirectory());
for (final File file : files) {
- final License license =
- this.licenses.license(this.ioSystem.slurp(file));
+ final License license = this.licenses.from(file);
License existing = licenses.get(license);
if (existing == null) {
@@ -163,7 +162,7 @@
existing = license;
}
- existing.locations.add(file);
+ existing.getLocations().add(file);
existing.getArchives().add(archive);
archive.getLicenses().add(existing);
}
@@ -206,10 +205,7 @@
for (final File file : files) {
- final License license =
- this.licenses.license(this.ioSystem.slurp(file));
-
- undeclared.remove(license);
+ undeclared.remove(this.licenses.from(file));
}