Extract DepIsInSameApex and RequiredSdks interfaces
The DepIsInSameApex() and RequiredSdks() methods were defined in a few places to avoid having to depend on the whole ApexModule/SdkAware interfaces directly. However, that has a couple of issues: 1) It duplicates functionality making it difficult to change, changes to the definitions outside the main interfaces do not cause compile time failures, instead they result in a runtime change in behavior which can be difficult to debug. 2) IDE navigation (specifically in Intellij) does not detect that the duplicate definitions can resolve to the definitions in the main interface. This change extracts the methods into their own interfaces and reuses those interfaces instead of duplicating the methods to fix both of these issues. Bug: 152878661 Test: m nothing Change-Id: I0cfdf342a14eb0bfb82b1bd17e0633d81c7facfb
This commit is contained in:
@@ -32,6 +32,14 @@ type ApexInfo struct {
|
||||
MinSdkVersion int
|
||||
}
|
||||
|
||||
// Extracted from ApexModule to make it easier to define custom subsets of the
|
||||
// ApexModule interface and improve code navigation within the IDE.
|
||||
type DepIsInSameApex interface {
|
||||
// DepIsInSameApex tests if the other module 'dep' is installed to the same
|
||||
// APEX as this module
|
||||
DepIsInSameApex(ctx BaseModuleContext, dep Module) bool
|
||||
}
|
||||
|
||||
// ApexModule is the interface that a module type is expected to implement if
|
||||
// the module has to be built differently depending on whether the module
|
||||
// is destined for an apex or not (installed to one of the regular partitions).
|
||||
@@ -49,6 +57,8 @@ type ApexInfo struct {
|
||||
// respectively.
|
||||
type ApexModule interface {
|
||||
Module
|
||||
DepIsInSameApex
|
||||
|
||||
apexModuleBase() *ApexModuleBase
|
||||
|
||||
// Marks that this module should be built for the specified APEXes.
|
||||
@@ -88,10 +98,6 @@ type ApexModule interface {
|
||||
// Tests if this module is available for the specified APEX or ":platform"
|
||||
AvailableFor(what string) bool
|
||||
|
||||
// DepIsInSameApex tests if the other module 'dep' is installed to the same
|
||||
// APEX as this module
|
||||
DepIsInSameApex(ctx BaseModuleContext, dep Module) bool
|
||||
|
||||
// Returns the highest version which is <= maxSdkVersion.
|
||||
// For example, with maxSdkVersion is 10 and versionList is [9,11]
|
||||
// it returns 9 as string
|
||||
|
Reference in New Issue
Block a user