Changes *api_filename properties droiddoc.go

Test: check build.ninja, and compare file content.
Bug: b/70351683
Change-Id: I385100f5c5c5354bec04a6435b735e92834a3512
Merged-In: I385100f5c5c5354bec04a6435b735e92834a3512
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 9a86ab5..2ed52c9 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -135,6 +135,24 @@
 	// a list of files under current module source dir which contains known tags in Java sources.
 	// filegroup or genrule can be included within this property.
 	Knowntags []string
+
+	// the tag name used to distinguish if the API files belong to public/system/test.
+	Api_tag_name *string
+
+	// the generated public API filename by Doclava.
+	Api_filename *string
+
+	// the generated private API filename by Doclava.
+	Private_api_filename *string
+
+	// the generated private Dex API filename by Doclava.
+	Private_dex_api_filename *string
+
+	// the generated removed API filename by Doclava.
+	Removed_api_filename *string
+
+	// the generated exact API filename by Doclava.
+	Exact_api_filename *string
 }
 
 type Javadoc struct {
@@ -160,7 +178,12 @@
 type Droiddoc struct {
 	Javadoc
 
-	properties DroiddocProperties
+	properties        DroiddocProperties
+	apiFile           android.WritablePath
+	privateApiFile    android.WritablePath
+	privateDexApiFile android.WritablePath
+	removedApiFile    android.WritablePath
+	exactApiFile      android.WritablePath
 }
 
 func InitDroiddocModule(module android.DefaultableModule, hod android.HostOrDeviceSupported) {
@@ -504,6 +527,37 @@
 		args = args + " -resourcesoutdir " + String(d.properties.Resourcesoutdir)
 	}
 
+	var implicitOutputs android.WritablePaths
+	if String(d.properties.Api_filename) != "" {
+		d.apiFile = android.PathForModuleOut(ctx, String(d.properties.Api_filename))
+		args = args + " -api " + d.apiFile.String()
+		implicitOutputs = append(implicitOutputs, d.apiFile)
+	}
+
+	if String(d.properties.Private_api_filename) != "" {
+		d.privateApiFile = android.PathForModuleOut(ctx, String(d.properties.Private_api_filename))
+		args = args + " -privateApi " + d.privateApiFile.String()
+		implicitOutputs = append(implicitOutputs, d.privateApiFile)
+	}
+
+	if String(d.properties.Private_dex_api_filename) != "" {
+		d.privateDexApiFile = android.PathForModuleOut(ctx, String(d.properties.Private_dex_api_filename))
+		args = args + " -privateDexApi " + d.privateDexApiFile.String()
+		implicitOutputs = append(implicitOutputs, d.privateDexApiFile)
+	}
+
+	if String(d.properties.Removed_api_filename) != "" {
+		d.removedApiFile = android.PathForModuleOut(ctx, String(d.properties.Removed_api_filename))
+		args = args + " -removedApi " + d.removedApiFile.String()
+		implicitOutputs = append(implicitOutputs, d.removedApiFile)
+	}
+
+	if String(d.properties.Exact_api_filename) != "" {
+		d.exactApiFile = android.PathForModuleOut(ctx, String(d.properties.Exact_api_filename))
+		args = args + " -exactApi " + d.exactApiFile.String()
+		implicitOutputs = append(implicitOutputs, d.exactApiFile)
+	}
+
 	implicits = append(implicits, d.Javadoc.srcJars...)
 
 	opts := "-source 1.8 -J-Xmx1600m -J-XX:-OmitStackTraceInFastThrow -XDignore.symbol.file " +
@@ -513,7 +567,6 @@
 		"-hdf page.now " + `"$$(date -d @$$(cat ` + ctx.Config().Getenv("BUILD_DATETIME_FILE") + `) "+%d %b %Y %k:%M")"` + " " +
 		args + " -stubs " + android.PathForModuleOut(ctx, "docs", "stubsDir").String()
 
-	var implicitOutputs android.WritablePaths
 	implicitOutputs = append(implicitOutputs, d.Javadoc.docZip)
 	for _, o := range d.properties.Out {
 		implicitOutputs = append(implicitOutputs, android.PathForModuleGen(ctx, o))