diff options
Diffstat (limited to 'android/singleton.go')
-rw-r--r-- | android/singleton.go | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/android/singleton.go b/android/singleton.go index 7c6cf4fd6..8936cac65 100644 --- a/android/singleton.go +++ b/android/singleton.go @@ -20,6 +20,8 @@ import ( // SingletonContext type SingletonContext interface { + blueprintSingletonContext() blueprint.SingletonContext + Config() Config DeviceConfig() DeviceConfig @@ -38,10 +40,12 @@ type SingletonContext interface { // return value can always be type-asserted to the type of the provider. The return value should // always be considered read-only. It panics if called before the appropriate mutator or // GenerateBuildActions pass for the provider on the module. - ModuleProvider(module blueprint.Module, provider blueprint.ProviderKey) interface{} + ModuleProvider(module blueprint.Module, provider blueprint.AnyProviderKey) any // ModuleHasProvider returns true if the provider for the given module has been set. - ModuleHasProvider(module blueprint.Module, provider blueprint.ProviderKey) bool + ModuleHasProvider(module blueprint.Module, provider blueprint.AnyProviderKey) bool + + moduleProvider(module blueprint.Module, provider blueprint.AnyProviderKey) (any, bool) ModuleErrorf(module blueprint.Module, format string, args ...interface{}) Errorf(format string, args ...interface{}) @@ -135,6 +139,10 @@ type singletonContextAdaptor struct { ruleParams map[blueprint.Rule]blueprint.RuleParams } +func (s *singletonContextAdaptor) blueprintSingletonContext() blueprint.SingletonContext { + return s.SingletonContext +} + func (s *singletonContextAdaptor) Config() Config { return s.SingletonContext.Config().(Config) } @@ -282,3 +290,18 @@ func (s *singletonContextAdaptor) ModuleVariantsFromName(referer Module, name st } return result } + +func (s *singletonContextAdaptor) ModuleProvider(module blueprint.Module, provider blueprint.AnyProviderKey) any { + value, _ := s.SingletonContext.ModuleProvider(module, provider) + return value +} + +// ModuleHasProvider returns true if the provider for the given module has been set. +func (s *singletonContextAdaptor) ModuleHasProvider(module blueprint.Module, provider blueprint.AnyProviderKey) bool { + _, ok := s.SingletonContext.ModuleProvider(module, provider) + return ok +} + +func (s *singletonContextAdaptor) moduleProvider(module blueprint.Module, provider blueprint.AnyProviderKey) (any, bool) { + return s.SingletonContext.ModuleProvider(module, provider) +} |