Move all jar intermediates to subdirs

Make all the jar intermediates called modulename.jar, and put each
in a subdir for the tool that generated it.  This will simplify
using the jars as inputs to genrules and resources.

Test: java_test.go
Change-Id: If00e16bd7df5a4ba24ebc4b68c9ccf2cfda49544
diff --git a/java/builder.go b/java/builder.go
index 9086d51..4aaf841 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -160,7 +160,7 @@
 	srcFiles android.Paths, srcJars classpath,
 	flags javaBuilderFlags) {
 
-	classDir := android.PathForModuleOut(ctx, "classes-kt")
+	classDir := android.PathForModuleOut(ctx, "kotlinc", "classes")
 
 	inputs := append(android.Paths(nil), srcFiles...)
 	inputs = append(inputs, srcJars...)
@@ -184,7 +184,7 @@
 	flags javaBuilderFlags, deps android.Paths) {
 
 	transformJavaToClasses(ctx, outputFile, srcFiles, srcJars, flags, deps,
-		"", "javac", javac)
+		"javac", "javac", javac)
 }
 
 func RunErrorProne(ctx android.ModuleContext, outputFile android.WritablePath,
@@ -196,7 +196,7 @@
 	}
 
 	transformJavaToClasses(ctx, outputFile, srcFiles, srcJars, flags, nil,
-		"-errorprone", "errorprone", errorprone)
+		"errorprone", "errorprone", errorprone)
 }
 
 // transformJavaToClasses takes source files and converts them to a jar containing .class files.
@@ -211,7 +211,7 @@
 func transformJavaToClasses(ctx android.ModuleContext, outputFile android.WritablePath,
 	srcFiles android.Paths, srcJars classpath,
 	flags javaBuilderFlags, deps android.Paths,
-	intermediatesSuffix, desc string, rule blueprint.Rule) {
+	intermediatesDir, desc string, rule blueprint.Rule) {
 
 	deps = append(deps, srcJars...)
 
@@ -237,8 +237,8 @@
 			"bootClasspath": bootClasspath,
 			"sourcepath":    srcJars.JavaSourcepath(),
 			"classpath":     flags.classpath.JavaClasspath(),
-			"outDir":        android.PathForModuleOut(ctx, "classes"+intermediatesSuffix).String(),
-			"annoDir":       android.PathForModuleOut(ctx, "anno"+intermediatesSuffix).String(),
+			"outDir":        android.PathForModuleOut(ctx, intermediatesDir, "classes").String(),
+			"annoDir":       android.PathForModuleOut(ctx, intermediatesDir, "anno").String(),
 			"javaVersion":   flags.javaVersion,
 		},
 	})
@@ -288,7 +288,7 @@
 func TransformDesugar(ctx android.ModuleContext, outputFile android.WritablePath,
 	classesJar android.Path, flags javaBuilderFlags) {
 
-	dumpDir := android.PathForModuleOut(ctx, "desugar_dumped_classes")
+	dumpDir := android.PathForModuleOut(ctx, "desugar", "classes")
 
 	javaFlags := ""
 	if ctx.AConfig().UseOpenJDK9() {