/** * {@inheritdoc} */ protected function prepareAnnotationDefinition(AnnotationInterface $annotation, $class, BaseStaticReflectionParser $parser = NULL) { if (!$annotation instanceof MultipleProviderAnnotationInterface) { throw new \LogicException('AnnotatedClassDiscoveryAutomatedProviders annotations must implement \\Drupal\\migrate\\Annotation\\MultipleProviderAnnotationInterface'); } $annotation->setClass($class); $providers = $annotation->getProviders(); // Loop through all the parent classes and add their providers (which we // infer by parsing their namespaces) to the $providers array. do { $providers[] = $this->getProviderFromNamespace($parser->getNamespaceName()); } while ($parser = StaticReflectionParser::getParentParser($parser, $this->finder)); $providers = array_unique(array_filter($providers, function ($provider) { return $provider && $provider !== 'component'; })); $annotation->setProviders($providers); }
/** * Prepares the annotation definition. * * @param \Drupal\Component\Annotation\AnnotationInterface $annotation * The annotation derived from the plugin. * @param string $class * The class used for the plugin. */ protected function prepareAnnotationDefinition($annotation, $class) { $annotation->setClass($class); }