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';
     }
 }
 public function hasTrait($object, $traitFQDN)
 {
     return $this->classAnalyzer->hasTrait($object, $traitFQDN);
 }