Move nested type to top level

git-svn-id: https://svn.apache.org/repos/asf/creadur/tentacles/trunk@1462981 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/creadur/tentacles/Archive.java b/src/main/java/org/apache/creadur/tentacles/Archive.java
index d7373dd..4c9ebcd 100644
--- a/src/main/java/org/apache/creadur/tentacles/Archive.java
+++ b/src/main/java/org/apache/creadur/tentacles/Archive.java
@@ -27,7 +27,6 @@
 import java.util.Set;
 
 import org.apache.creadur.tentacles.Main.License;
-import org.apache.creadur.tentacles.Main.Notice;
 
 public class Archive {
 
diff --git a/src/main/java/org/apache/creadur/tentacles/Main.java b/src/main/java/org/apache/creadur/tentacles/Main.java
index 8bf4d3e..8e62499 100644
--- a/src/main/java/org/apache/creadur/tentacles/Main.java
+++ b/src/main/java/org/apache/creadur/tentacles/Main.java
@@ -287,7 +287,7 @@
                     existing = notice;
                 }
 
-                existing.locations.add(file);
+                existing.getLocations().add(file);
                 existing.getArchives().add(archive);
                 archive.getNotices().add(existing);
             }
@@ -448,73 +448,6 @@
         }
     }
 
-    public class Notice {
-        private final String text;
-        private final String key;
-        private final Set<Archive> archives = new HashSet<Archive>();
-        private final List<File> locations = new ArrayList<File>();
-
-        public Notice(final String text) {
-            this.text = text.intern();
-            this.key =
-                    text.replaceAll("[ \\n\\t\\r]+", "").toLowerCase().intern();
-        }
-
-        public String getText() {
-            return this.text;
-        }
-
-        public String getKey() {
-            return this.key;
-        }
-
-        public Set<Archive> getArchives() {
-            return this.archives;
-        }
-
-        public Set<URI> locations(final Archive archive) {
-            final URI contents = archive.contentsURI();
-            final Set<URI> locations = new HashSet<URI>();
-            for (final File file : this.locations) {
-                final URI uri = file.toURI();
-                final URI relativize = contents.relativize(uri);
-                if (!relativize.equals(uri)) {
-                    locations.add(relativize);
-                }
-            }
-
-            return locations;
-        }
-
-        @Override
-        public boolean equals(final Object o) {
-            if (this == o) {
-                return true;
-            }
-            if (o == null || getClass() != o.getClass()) {
-                return false;
-            }
-
-            final Notice notice = (Notice) o;
-
-            if (!this.key.equals(notice.key)) {
-                return false;
-            }
-
-            return true;
-        }
-
-        @Override
-        public int hashCode() {
-            return this.key.hashCode();
-        }
-
-        public boolean implies(final Notice fullLicense) {
-            return fullLicense.key.contains(this.key);
-        }
-
-    }
-
     private File copyToMirror(final File src) throws IOException {
         final URI uri = src.toURI();
 
diff --git a/src/main/java/org/apache/creadur/tentacles/Notice.java b/src/main/java/org/apache/creadur/tentacles/Notice.java
new file mode 100644
index 0000000..492e8cb
--- /dev/null
+++ b/src/main/java/org/apache/creadur/tentacles/Notice.java
@@ -0,0 +1,96 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.creadur.tentacles;
+
+import java.io.File;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class Notice {
+    private final String text;
+    private final String key;
+    private final Set<Archive> archives = new HashSet<Archive>();
+    private final List<File> locations = new ArrayList<File>();
+
+    public Notice(final String text) {
+        this.text = text.intern();
+        this.key = text.replaceAll("[ \\n\\t\\r]+", "").toLowerCase().intern();
+    }
+
+    public String getText() {
+        return this.text;
+    }
+
+    public String getKey() {
+        return this.key;
+    }
+
+    public Set<Archive> getArchives() {
+        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>();
+        for (final File file : this.locations) {
+            final URI uri = file.toURI();
+            final URI relativize = contents.relativize(uri);
+            if (!relativize.equals(uri)) {
+                locations.add(relativize);
+            }
+        }
+
+        return locations;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        final Notice notice = (Notice) o;
+
+        if (!this.key.equals(notice.key)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return this.key.hashCode();
+    }
+
+    public boolean implies(final Notice fullLicense) {
+        return fullLicense.key.contains(this.key);
+    }
+
+}
\ No newline at end of file