/**
  * {@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);
 }