diff options
| author | Paul Duffin <paulduffin@google.com> | 2020-05-17 16:00:35 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-05-17 16:00:35 +0000 |
| commit | 5c7020556f692ffd71769e0dbd4ae6f6c57951d7 (patch) | |
| tree | 9f11d9e6f5edcc164690b099e55504ddc2c4dfd3 /java/java.go | |
| parent | d7ac9d632eaabbb89561dd23322e033bb6611960 (diff) | |
| parent | 8bf22015c03ef9b2f4c444bf6389092e91110a80 (diff) | |
Extract common behavior between Module and Import am: 0d3c2e136b am: 8bf22015c0
Change-Id: I1566ab0283c3efacb3c31d3c5f78903797d62a8c
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/java/java.go b/java/java.go index efd186944..10c81a43b 100644 --- a/java/java.go +++ b/java/java.go @@ -354,6 +354,22 @@ func (me *CompilerDeviceProperties) EffectiveOptimizeEnabled() bool { return BoolDefault(me.Optimize.Enabled, me.Optimize.EnabledByDefault) } +// Functionality common to Module and Import +type embeddableInModuleAndImport struct { +} + +// Module/Import's DepIsInSameApex(...) delegates to this method. +// +// This cannot implement DepIsInSameApex(...) directly as that leads to ambiguity with +// the one provided by ApexModuleBase. +func (e *embeddableInModuleAndImport) depIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool { + // dependencies other than the static linkage are all considered crossing APEX boundary + if staticLibTag == ctx.OtherModuleDependencyTag(dep) { + return true + } + return false +} + // Module contains the properties and members used by all java module types type Module struct { android.ModuleBase @@ -361,6 +377,9 @@ type Module struct { android.ApexModuleBase android.SdkBase + // Functionality common to Module and Import. + embeddableInModuleAndImport + properties CompilerProperties protoProperties android.ProtoProperties deviceProperties CompilerDeviceProperties @@ -1765,11 +1784,7 @@ func (j *Module) hasCode(ctx android.ModuleContext) bool { } func (j *Module) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool { - // Dependencies other than the static linkage are all considered crossing APEX boundary - if staticLibTag == ctx.OtherModuleDependencyTag(dep) { - return true - } - return false + return j.depIsInSameApex(ctx, dep) } func (j *Module) Stem() string { @@ -2383,6 +2398,9 @@ type Import struct { prebuilt android.Prebuilt android.SdkBase + // Functionality common to Module and Import. + embeddableInModuleAndImport + properties ImportProperties combinedClasspathFile android.Path @@ -2517,11 +2535,7 @@ func (j *Import) SrcJarArgs() ([]string, android.Paths) { } func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool { - // dependencies other than the static linkage are all considered crossing APEX boundary - if staticLibTag == ctx.OtherModuleDependencyTag(dep) { - return true - } - return false + return j.depIsInSameApex(ctx, dep) } // Add compile time check for interface implementation |
