diff --git a/src/api/objects/ObjectAPI.js b/src/api/objects/ObjectAPI.js index 56fcde50e7..dcf48e0f89 100644 --- a/src/api/objects/ObjectAPI.js +++ b/src/api/objects/ObjectAPI.js @@ -43,6 +43,9 @@ function ObjectAPI(typeRegistry, openmct) { this.providers = {}; this.rootRegistry = new RootRegistry(); this.inMemorySearchProvider = new InMemorySearchProvider(openmct); + this.injectIdentifierService = function () { + this.identifierService = this.openmct.$injector.get("identifierService"); + }; this.rootProvider = new RootObjectProvider(this.rootRegistry); this.cache = {}; @@ -63,17 +66,32 @@ ObjectAPI.prototype.supersecretSetFallbackProvider = function (p) { this.fallbackProvider = p; }; +/** + * @private + */ +ObjectAPI.prototype.getIdentifierService = function () { + // Lazily acquire identifier service + if (!this.identifierService) { + this.injectIdentifierService(); + } + + return this.identifierService; +}; + /** * Retrieve the provider for a given identifier. * @private */ ObjectAPI.prototype.getProvider = function (identifier) { + const keyString = utils.makeKeyString(identifier); + const identifierService = this.openmct.$injector.get("identifierService"); + const namespace = identifierService.parse(keyString).getSpace(); if (identifier.key === 'ROOT') { return this.rootProvider; } - return this.providers[identifier.namespace] || this.fallbackProvider; + return this.providers[namespace] || this.fallbackProvider; }; /**