discoveries as $discovery) { if ($discovery->hasDefinition($id)) { return TRUE; } } return FALSE; } /** * {@inheritdoc} */ public function getDefinition($id) { /** @var \Drupal\libraries\ExternalLibrary\Definition\WritableDefinitionDiscoveryInterface[] $discoveries_to_write */ $discoveries_to_write = []; foreach ($this->discoveries as $discovery) { if ($discovery->hasDefinition($id)) { $definition = $discovery->getDefinition($id); break; } elseif ($discovery instanceof WritableDefinitionDiscoveryInterface) { $discoveries_to_write[] = $discovery; } } if (!isset($definition)) { throw new LibraryDefinitionNotFoundException($id); } foreach ($discoveries_to_write as $discovery_to_write) { $discovery_to_write->writeDefinition($id, $definition); } return $definition; } /** * Adds a definition discovery to the list to check. * * @param \Drupal\libraries\ExternalLibrary\Definition\DefinitionDiscoveryInterface $discovery * The definition discovery to add. * * @return $this */ public function addDiscovery(DefinitionDiscoveryInterface $discovery) { $this->discoveries[] = $discovery; return $this; } }