Revert "java_sdk_library: Improve consistency with ..._import"

This reverts commit dce3fe78f0d864e77fbad6b8ea31489a2d6e855d.

Reason for revert: Broke presubmit: b/157231582

Change-Id: I638e0e090f3242ed5a9a3134cbe380e872411247
diff --git a/java/droiddoc.go b/java/droiddoc.go
index a637349..62a6661 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -350,16 +350,11 @@
 	ApiFilePath() android.Path
 }
 
-type ApiStubsSrcProvider interface {
-	StubsSrcJar() android.Path
-}
-
 // Provider of information about API stubs, used by java_sdk_library.
 type ApiStubsProvider interface {
 	ApiFilePath
 	RemovedApiFilePath() android.Path
-
-	ApiStubsSrcProvider
+	StubsSrcJar() android.Path
 }
 
 //
@@ -1920,10 +1915,6 @@
 	}
 }
 
-func (d *PrebuiltStubsSources) StubsSrcJar() android.Path {
-	return d.stubsSrcJar
-}
-
 func (p *PrebuiltStubsSources) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 	p.stubsSrcJar = android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"stubs.srcjar")
 
diff --git a/java/java_test.go b/java/java_test.go
index 1620011..b8abacb 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -575,7 +575,6 @@
 			},
 			test: {
 				jars: ["c.jar"],
-				stub_srcs: ["c.java"],
 			},
 		}
 		`)
diff --git a/java/sdk_library.go b/java/sdk_library.go
index 432598e..cae0ff5 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -433,30 +433,12 @@
 	//Html_doc *bool
 }
 
-// Paths to outputs from java_sdk_library and java_sdk_library_import.
-//
-// Fields that are android.Paths are always set (during GenerateAndroidBuildActions).
-// OptionalPaths are always set by java_sdk_library but may not be set by
-// java_sdk_library_import as not all instances provide that information.
 type scopePaths struct {
-	// The path (represented as Paths for convenience when returning) to the stubs header jar.
-	//
-	// That is the jar that is created by turbine.
-	stubsHeaderPath android.Paths
-
-	// The path (represented as Paths for convenience when returning) to the stubs implementation jar.
-	//
-	// This is not the implementation jar, it still only contains stubs.
-	stubsImplPath android.Paths
-
-	// The API specification file, e.g. system_current.txt.
-	currentApiFilePath android.OptionalPath
-
-	// The specification of API elements removed since the last release.
-	removedApiFilePath android.OptionalPath
-
-	// The stubs source jar.
-	stubsSrcJar android.OptionalPath
+	stubsHeaderPath    android.Paths
+	stubsImplPath      android.Paths
+	currentApiFilePath android.Path
+	removedApiFilePath android.Path
+	stubsSrcJar        android.Path
 }
 
 func (paths *scopePaths) extractStubsLibraryInfoFromDependency(dep android.Module) error {
@@ -478,18 +460,9 @@
 	}
 }
 
-func (paths *scopePaths) treatDepAsApiStubsSrcProvider(dep android.Module, action func(provider ApiStubsSrcProvider)) error {
-	if apiStubsProvider, ok := dep.(ApiStubsSrcProvider); ok {
-		action(apiStubsProvider)
-		return nil
-	} else {
-		return fmt.Errorf("expected module that implements ApiStubsSrcProvider, e.g. droidstubs")
-	}
-}
-
 func (paths *scopePaths) extractApiInfoFromApiStubsProvider(provider ApiStubsProvider) {
-	paths.currentApiFilePath = android.OptionalPathForPath(provider.ApiFilePath())
-	paths.removedApiFilePath = android.OptionalPathForPath(provider.RemovedApiFilePath())
+	paths.currentApiFilePath = provider.ApiFilePath()
+	paths.removedApiFilePath = provider.RemovedApiFilePath()
 }
 
 func (paths *scopePaths) extractApiInfoFromDep(dep android.Module) error {
@@ -498,12 +471,12 @@
 	})
 }
 
-func (paths *scopePaths) extractStubsSourceInfoFromApiStubsProviders(provider ApiStubsSrcProvider) {
-	paths.stubsSrcJar = android.OptionalPathForPath(provider.StubsSrcJar())
+func (paths *scopePaths) extractStubsSourceInfoFromApiStubsProviders(provider ApiStubsProvider) {
+	paths.stubsSrcJar = provider.StubsSrcJar()
 }
 
 func (paths *scopePaths) extractStubsSourceInfoFromDep(dep android.Module) error {
-	return paths.treatDepAsApiStubsSrcProvider(dep, func(provider ApiStubsSrcProvider) {
+	return paths.treatDepAsApiStubsProvider(dep, func(provider ApiStubsProvider) {
 		paths.extractStubsSourceInfoFromApiStubsProviders(provider)
 	})
 }
@@ -1341,10 +1314,10 @@
 	Stub_srcs []string `android:"path"`
 
 	// The current.txt
-	Current_api *string `android:"path"`
+	Current_api string `android:"path"`
 
 	// The removed.txt
-	Removed_api *string `android:"path"`
+	Removed_api string `android:"path"`
 }
 
 type sdkLibraryImportProperties struct {
@@ -1454,9 +1427,7 @@
 
 		module.createJavaImportForStubs(mctx, apiScope, scopeProperties)
 
-		if len(scopeProperties.Stub_srcs) > 0 {
-			module.createPrebuiltStubsSources(mctx, apiScope, scopeProperties)
-		}
+		module.createPrebuiltStubsSources(mctx, apiScope, scopeProperties)
 	}
 
 	javaSdkLibraries := javaSdkLibraries(mctx.Config())
@@ -1508,40 +1479,22 @@
 
 		// Add dependencies to the prebuilt stubs library
 		ctx.AddVariationDependencies(nil, apiScope.stubsTag, module.stubsLibraryModuleName(apiScope))
-
-		if len(scopeProperties.Stub_srcs) > 0 {
-			// Add dependencies to the prebuilt stubs source library
-			ctx.AddVariationDependencies(nil, apiScope.stubsSourceTag, module.stubsSourceModuleName(apiScope))
-		}
 	}
 }
 
 func (module *sdkLibraryImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
-	// Record the paths to the prebuilt stubs library and stubs source.
+	// Record the paths to the prebuilt stubs library.
 	ctx.VisitDirectDeps(func(to android.Module) {
 		tag := ctx.OtherModuleDependencyTag(to)
 
-		// Extract information from any of the scope specific dependencies.
-		if scopeTag, ok := tag.(scopeDependencyTag); ok {
-			apiScope := scopeTag.apiScope
-			scopePaths := module.getScopePathsCreateIfNeeded(apiScope)
-
-			// Extract information from the dependency. The exact information extracted
-			// is determined by the nature of the dependency which is determined by the tag.
-			scopeTag.extractDepInfo(ctx, to, scopePaths)
+		if lib, ok := to.(Dependency); ok {
+			if scopeTag, ok := tag.(scopeDependencyTag); ok {
+				apiScope := scopeTag.apiScope
+				scopePaths := module.getScopePathsCreateIfNeeded(apiScope)
+				scopePaths.stubsHeaderPath = lib.HeaderJars()
+			}
 		}
 	})
-
-	// Populate the scope paths with information from the properties.
-	for apiScope, scopeProperties := range module.scopeProperties {
-		if len(scopeProperties.Jars) == 0 {
-			continue
-		}
-
-		paths := module.getScopePathsCreateIfNeeded(apiScope)
-		paths.currentApiFilePath = android.OptionalPathForModuleSrc(ctx, scopeProperties.Current_api)
-		paths.removedApiFilePath = android.OptionalPathForModuleSrc(ctx, scopeProperties.Removed_api)
-	}
 }
 
 func (module *sdkLibraryImport) sdkJars(ctx android.BaseModuleContext, sdkVersion sdkSpec) android.Paths {
@@ -1732,9 +1685,9 @@
 			properties := scopeProperties{}
 			properties.Jars = jars
 			properties.SdkVersion = sdk.sdkVersionForStubsLibrary(ctx.SdkModuleContext(), apiScope)
-			properties.StubsSrcJar = paths.stubsSrcJar.Path()
-			properties.CurrentApiFile = paths.currentApiFilePath.Path()
-			properties.RemovedApiFile = paths.removedApiFilePath.Path()
+			properties.StubsSrcJar = paths.stubsSrcJar
+			properties.CurrentApiFile = paths.currentApiFilePath
+			properties.RemovedApiFile = paths.removedApiFilePath
 			s.Scopes[apiScope] = properties
 		}
 	}