public function addTraitsMetadata($meta, array &$config)
 {
     // add versioned fields for entities that have the Nameable trait
     if (ClassAnalyzer::hasTrait($meta->name, 'Librinfo\\DoctrineBundle\\Entity\\Traits\\Nameable')) {
         $config['versioned'][] = 'name';
     }
     // add versioned fields for entities that have the Descriptible trait
     if (ClassAnalyzer::hasTrait($meta->name, 'Librinfo\\DoctrineBundle\\Entity\\Traits\\Descriptible')) {
         $config['versioned'][] = 'description';
     }
     // add versioned fields for entities that have the Emailable trait
     if (ClassAnalyzer::hasTrait($meta->name, 'Librinfo\\DoctrineBundle\\Entity\\Traits\\Emailable')) {
         $config['versioned'][] = 'email';
         $config['versioned'][] = 'emailNpai';
         $config['versioned'][] = 'emailNoNewsletter';
     }
     // add versioned fields for entities that have the Addressable trait
     if (ClassAnalyzer::hasTrait($meta->name, 'Librinfo\\DoctrineBundle\\Entity\\Traits\\Addressable')) {
         $config['versioned'][] = 'address';
         $config['versioned'][] = 'zip';
         $config['versioned'][] = 'city';
         $config['versioned'][] = 'country';
         $config['versioned'][] = 'npai';
         $config['versioned'][] = 'vcardUid';
         $config['versioned'][] = 'confirmed';
     }
 }
 /**
  * Returns all parents of a class (parent, parent of parent, parent of parent's parent and so on)
  *
  * @param ReflectionClass|string   $class   A ReflectionClass object or a class name (FQCN)
  * @return array
  */
 public function getAncestors($class)
 {
     return $this->classAnalyzer->getAncestors($class);
 }