Move common class file utilities from com.facebook.buck.dalvik to com.facebook.buck.java.classes.

Summary: Straight refactoring.

Test Plan: Sandcastle builds.
diff --git a/src/com/facebook/buck/android/BUCK b/src/com/facebook/buck/android/BUCK
index 9e8ded4..8f45d28 100644
--- a/src/com/facebook/buck/android/BUCK
+++ b/src/com/facebook/buck/android/BUCK
@@ -127,6 +127,7 @@
     '//lib:sdklib',
     '//src/com/facebook/buck/dalvik:dalvik',
     '//src/com/facebook/buck/event:event',
+    '//src/com/facebook/buck/java/classes:classes',
     '//src/com/facebook/buck/model:model',
     '//src/com/facebook/buck/shell:steps',
     '//src/com/facebook/buck/step:step',
diff --git a/src/com/facebook/buck/android/SmartDexingStep.java b/src/com/facebook/buck/android/SmartDexingStep.java
index 153e5b7..119e5fa 100644
--- a/src/com/facebook/buck/android/SmartDexingStep.java
+++ b/src/com/facebook/buck/android/SmartDexingStep.java
@@ -15,22 +15,22 @@
  */
 package com.facebook.buck.android;
 
-import com.facebook.buck.dalvik.ClasspathTraversal;
-import com.facebook.buck.dalvik.ClasspathTraverser;
-import com.facebook.buck.dalvik.DefaultClasspathTraverser;
-import com.facebook.buck.dalvik.FileLike;
+import com.facebook.buck.java.classes.ClasspathTraversal;
+import com.facebook.buck.java.classes.ClasspathTraverser;
+import com.facebook.buck.java.classes.DefaultClasspathTraverser;
+import com.facebook.buck.java.classes.FileLike;
 import com.facebook.buck.step.CompositeStep;
 import com.facebook.buck.step.DefaultStepRunner;
 import com.facebook.buck.step.ExecutionContext;
 import com.facebook.buck.step.Step;
 import com.facebook.buck.step.StepFailedException;
-import com.facebook.buck.zip.RepackZipEntriesStep;
 import com.facebook.buck.step.fs.RmStep;
 import com.facebook.buck.step.fs.WriteFileStep;
 import com.facebook.buck.step.fs.XzStep;
-import com.facebook.buck.zip.ZipStep;
 import com.facebook.buck.util.Paths;
 import com.facebook.buck.util.ProjectFilesystem;
+import com.facebook.buck.zip.RepackZipEntriesStep;
+import com.facebook.buck.zip.ZipStep;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Charsets;
 import com.google.common.base.Joiner;
diff --git a/src/com/facebook/buck/dalvik/BUCK b/src/com/facebook/buck/dalvik/BUCK
index 429af5e..1bccbdf 100644
--- a/src/com/facebook/buck/dalvik/BUCK
+++ b/src/com/facebook/buck/dalvik/BUCK
@@ -24,20 +24,14 @@
 java_library(
   name = 'dalvik',
   srcs = [
-    'AbstractFileLike.java',
     'CanaryFactory.java',
-    'ClasspathTraversal.java',
-    'ClasspathTraverser.java',
     'DalvikAwareOutputStreamHelper.java',
     'DalvikAwareZipSplitterFactory.java',
     'DalvikAwareZipSplitter.java',
     'DalvikStatsCache.java',
-    'DefaultClasspathTraverser.java',
     'DefaultZipOutputStreamHelper.java',
     'DefaultZipSplitterFactory.java',
     'DefaultZipSplitter.java',
-    'FileLikeInputSupplier.java',
-    'FileLike.java',
     'SecondaryDexHelper.java',
     'ZipOutputStreamHelper.java',
     'ZipSplitterFactory.java',
@@ -47,6 +41,7 @@
     ':dalvik_stats_tool',
     '//lib:guava',
     '//lib:jsr305',
+    '//src/com/facebook/buck/java/classes:classes',
     '//src/com/facebook/buck/util:exceptions',
     '//src/com/facebook/buck/util:io',
     '//src/com/facebook/buck/util:util',
diff --git a/src/com/facebook/buck/dalvik/CanaryFactory.java b/src/com/facebook/buck/dalvik/CanaryFactory.java
index c736b88..a9896df 100644
--- a/src/com/facebook/buck/dalvik/CanaryFactory.java
+++ b/src/com/facebook/buck/dalvik/CanaryFactory.java
@@ -16,6 +16,8 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.AbstractFileLike;
+import com.facebook.buck.java.classes.FileLike;
 import com.google.common.base.Preconditions;
 
 import java.io.ByteArrayInputStream;
diff --git a/src/com/facebook/buck/dalvik/DalvikAwareOutputStreamHelper.java b/src/com/facebook/buck/dalvik/DalvikAwareOutputStreamHelper.java
index 458efd3..b732898 100644
--- a/src/com/facebook/buck/dalvik/DalvikAwareOutputStreamHelper.java
+++ b/src/com/facebook/buck/dalvik/DalvikAwareOutputStreamHelper.java
@@ -16,6 +16,7 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.FileLike;
 import com.google.common.base.Charsets;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Sets;
diff --git a/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java b/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java
index cb4d279..1ca824c 100644
--- a/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java
+++ b/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java
@@ -16,6 +16,10 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.ClasspathTraversal;
+import com.facebook.buck.java.classes.ClasspathTraverser;
+import com.facebook.buck.java.classes.DefaultClasspathTraverser;
+import com.facebook.buck.java.classes.FileLike;
 import com.facebook.buck.util.HumanReadableException;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
diff --git a/src/com/facebook/buck/dalvik/DalvikStatsCache.java b/src/com/facebook/buck/dalvik/DalvikStatsCache.java
index 1cb8ed4..91813dc 100644
--- a/src/com/facebook/buck/dalvik/DalvikStatsCache.java
+++ b/src/com/facebook/buck/dalvik/DalvikStatsCache.java
@@ -16,6 +16,7 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.FileLike;
 import com.google.common.collect.MapMaker;
 
 import java.io.IOException;
diff --git a/src/com/facebook/buck/dalvik/DefaultZipOutputStreamHelper.java b/src/com/facebook/buck/dalvik/DefaultZipOutputStreamHelper.java
index 4efda30..89e03b4 100644
--- a/src/com/facebook/buck/dalvik/DefaultZipOutputStreamHelper.java
+++ b/src/com/facebook/buck/dalvik/DefaultZipOutputStreamHelper.java
@@ -16,6 +16,7 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.FileLike;
 import com.google.common.base.Charsets;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Sets;
diff --git a/src/com/facebook/buck/dalvik/DefaultZipSplitter.java b/src/com/facebook/buck/dalvik/DefaultZipSplitter.java
index 9939601..cf99efa 100644
--- a/src/com/facebook/buck/dalvik/DefaultZipSplitter.java
+++ b/src/com/facebook/buck/dalvik/DefaultZipSplitter.java
@@ -16,16 +16,20 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.ClasspathTraversal;
+import com.facebook.buck.java.classes.ClasspathTraverser;
+import com.facebook.buck.java.classes.DefaultClasspathTraverser;
+import com.facebook.buck.java.classes.FileLike;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
+import com.google.common.collect.ImmutableSet;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Set;
 
-import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-
 public class DefaultZipSplitter implements ZipSplitter {
 
   private final Set<File> inFiles;
diff --git a/src/com/facebook/buck/dalvik/SecondaryDexHelper.java b/src/com/facebook/buck/dalvik/SecondaryDexHelper.java
index 8503a59..1d2cc1c 100644
--- a/src/com/facebook/buck/dalvik/SecondaryDexHelper.java
+++ b/src/com/facebook/buck/dalvik/SecondaryDexHelper.java
@@ -16,6 +16,7 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.FileLike;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 
diff --git a/src/com/facebook/buck/dalvik/ZipOutputStreamHelper.java b/src/com/facebook/buck/dalvik/ZipOutputStreamHelper.java
index fa04193..a9124cb 100644
--- a/src/com/facebook/buck/dalvik/ZipOutputStreamHelper.java
+++ b/src/com/facebook/buck/dalvik/ZipOutputStreamHelper.java
@@ -16,6 +16,8 @@
 
 package com.facebook.buck.dalvik;
 
+import com.facebook.buck.java.classes.FileLike;
+
 import java.io.IOException;
 
 /**
diff --git a/src/com/facebook/buck/dalvik/AbstractFileLike.java b/src/com/facebook/buck/java/classes/AbstractFileLike.java
similarity index 90%
rename from src/com/facebook/buck/dalvik/AbstractFileLike.java
rename to src/com/facebook/buck/java/classes/AbstractFileLike.java
index 5d79084..095a695 100644
--- a/src/com/facebook/buck/dalvik/AbstractFileLike.java
+++ b/src/com/facebook/buck/java/classes/AbstractFileLike.java
@@ -14,7 +14,7 @@
  * under the License.
  */
 
-package com.facebook.buck.dalvik;
+package com.facebook.buck.java.classes;
 
 import com.google.common.hash.HashCode;
 import com.google.common.hash.Hashing;
@@ -22,7 +22,7 @@
 
 import java.io.IOException;
 
-abstract class AbstractFileLike implements FileLike {
+abstract public class AbstractFileLike implements FileLike {
   @Override
   public HashCode fastHash() throws IOException {
     // Default non-fast implementation.
diff --git a/src/com/facebook/buck/java/classes/BUCK b/src/com/facebook/buck/java/classes/BUCK
new file mode 100644
index 0000000..1338a5f
--- /dev/null
+++ b/src/com/facebook/buck/java/classes/BUCK
@@ -0,0 +1,19 @@
+java_library(
+  name = 'classes',
+  srcs = [
+    'AbstractFileLike.java',
+    'ClasspathTraversal.java',
+    'ClasspathTraverser.java',
+    'DefaultClasspathTraverser.java',
+    'FileLikeInputSupplier.java',
+    'FileLike.java',
+  ],
+  deps = [
+    '//lib:guava',
+    '//src/com/facebook/buck/util:io',
+    '//src/com/facebook/buck/util:util',
+  ],
+  visibility = [
+    'PUBLIC',
+  ],
+)
diff --git a/src/com/facebook/buck/dalvik/ClasspathTraversal.java b/src/com/facebook/buck/java/classes/ClasspathTraversal.java
similarity index 98%
rename from src/com/facebook/buck/dalvik/ClasspathTraversal.java
rename to src/com/facebook/buck/java/classes/ClasspathTraversal.java
index d16ffda..364a51c 100644
--- a/src/com/facebook/buck/dalvik/ClasspathTraversal.java
+++ b/src/com/facebook/buck/java/classes/ClasspathTraversal.java
@@ -14,7 +14,7 @@
  * under the License.
  */
 
-package com.facebook.buck.dalvik;
+package com.facebook.buck.java.classes;
 
 import com.facebook.buck.util.DirectoryTraversal;
 import com.facebook.buck.util.ZipFileTraversal;
diff --git a/src/com/facebook/buck/dalvik/ClasspathTraverser.java b/src/com/facebook/buck/java/classes/ClasspathTraverser.java
similarity index 94%
rename from src/com/facebook/buck/dalvik/ClasspathTraverser.java
rename to src/com/facebook/buck/java/classes/ClasspathTraverser.java
index a6ce343..4be65f0 100644
--- a/src/com/facebook/buck/dalvik/ClasspathTraverser.java
+++ b/src/com/facebook/buck/java/classes/ClasspathTraverser.java
@@ -14,7 +14,7 @@
  * under the License.
  */
 
-package com.facebook.buck.dalvik;
+package com.facebook.buck.java.classes;
 
 import java.io.IOException;
 
diff --git a/src/com/facebook/buck/dalvik/DefaultClasspathTraverser.java b/src/com/facebook/buck/java/classes/DefaultClasspathTraverser.java
similarity index 95%
rename from src/com/facebook/buck/dalvik/DefaultClasspathTraverser.java
rename to src/com/facebook/buck/java/classes/DefaultClasspathTraverser.java
index cb0fdea..c865085 100644
--- a/src/com/facebook/buck/dalvik/DefaultClasspathTraverser.java
+++ b/src/com/facebook/buck/java/classes/DefaultClasspathTraverser.java
@@ -14,7 +14,7 @@
  * under the License.
  */
 
-package com.facebook.buck.dalvik;
+package com.facebook.buck.java.classes;
 
 import java.io.IOException;
 
diff --git a/src/com/facebook/buck/dalvik/FileLike.java b/src/com/facebook/buck/java/classes/FileLike.java
similarity index 97%
rename from src/com/facebook/buck/dalvik/FileLike.java
rename to src/com/facebook/buck/java/classes/FileLike.java
index 5c3098f..a55df1d 100644
--- a/src/com/facebook/buck/dalvik/FileLike.java
+++ b/src/com/facebook/buck/java/classes/FileLike.java
@@ -14,7 +14,7 @@
  * under the License.
  */
 
-package com.facebook.buck.dalvik;
+package com.facebook.buck.java.classes;
 
 import com.google.common.hash.HashCode;
 
diff --git a/src/com/facebook/buck/dalvik/FileLikeInputSupplier.java b/src/com/facebook/buck/java/classes/FileLikeInputSupplier.java
similarity index 96%
rename from src/com/facebook/buck/dalvik/FileLikeInputSupplier.java
rename to src/com/facebook/buck/java/classes/FileLikeInputSupplier.java
index 1441d96..5143549 100644
--- a/src/com/facebook/buck/dalvik/FileLikeInputSupplier.java
+++ b/src/com/facebook/buck/java/classes/FileLikeInputSupplier.java
@@ -14,7 +14,7 @@
  * under the License.
  */
 
-package com.facebook.buck.dalvik;
+package com.facebook.buck.java.classes;
 
 import com.google.common.base.Preconditions;
 import com.google.common.io.InputSupplier;
diff --git a/test/com/facebook/buck/java/classes/BUCK b/test/com/facebook/buck/java/classes/BUCK
new file mode 100644
index 0000000..e631c2d
--- /dev/null
+++ b/test/com/facebook/buck/java/classes/BUCK
@@ -0,0 +1,12 @@
+java_test(
+  name = 'classes',
+  srcs = glob(['*.java']),
+  source_under_test = [
+    '//src/com/facebook/buck/java/classes:classes',
+  ],
+  deps = [
+    '//lib:guava',
+    '//lib:junit',
+    '//src/com/facebook/buck/java/classes:classes',
+  ],
+)
diff --git a/test/com/facebook/buck/dalvik/ClasspathTraversalTest.java b/test/com/facebook/buck/java/classes/ClasspathTraversalTest.java
similarity index 98%
rename from test/com/facebook/buck/dalvik/ClasspathTraversalTest.java
rename to test/com/facebook/buck/java/classes/ClasspathTraversalTest.java
index 8c96019..3e3a992 100644
--- a/test/com/facebook/buck/dalvik/ClasspathTraversalTest.java
+++ b/test/com/facebook/buck/java/classes/ClasspathTraversalTest.java
@@ -14,7 +14,7 @@
  * under the License.
  */
 
-package com.facebook.buck.dalvik;
+package com.facebook.buck.java.classes;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;