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));
 
         }