/**
  * Analyze a lexicon project and migrate the semantic domain keys in the senses
  * @param ProjectModelForUseWithSemanticDomainMigration $project
  * @param string $projectId
  * @param string $testMode
  * @param string $message
  */
 private function analyzeProject($project, $projectId, $testMode, &$message)
 {
     $entryModifiedCount = 0;
     $entryList = LexEntryCommands::listEntries($projectId);
     foreach ($entryList->entries as $entryListItem) {
         $entry = new LexEntryModel($project, $entryListItem['id']);
         $entryModified = false;
         if ($entry->hasSenses()) {
             /** @var LexSense $sense */
             foreach ($entry->senses as $sense) {
                 $this->migrateSemDomKey($sense, $project->projectName, $message, $entryModified);
             }
         }
         if ($entryModified) {
             $entryModifiedCount++;
             if (!$testMode) {
                 $entry->write();
             }
         }
     }
     if (!$testMode) {
         $project->hasMigratedSemanticDomainKeys = true;
         $project->write();
     }
     if ($entryModifiedCount > 0) {
         print "{$entryModifiedCount} entries with semantic domains were migrated\n";
     }
 }
 /**
  * Analyze a lexicon project and create Sense, Example and Picture guids. Remove id from Sense and Example
  * @param LexProjectModelForUseWithSenseGuidMigration $project
  * @param string $projectId
  * @param string $testMode
  */
 private static function analyzeProject($project, $projectId, $testMode)
 {
     $entryModifiedCount = 0;
     $exampleModifiedCount = 0;
     $pictureModifiedCount = 0;
     $entryList = LexEntryCommands::listEntries($projectId);
     foreach ($entryList->entries as $entryListItem) {
         $entry = new LexEntryModel($project, $entryListItem['id']);
         $entryModified = false;
         if ($entry->hasSenses()) {
             /** @var LexSense $sense */
             foreach ($entry->senses as $sense) {
                 self::createSenseGuids($sense, $entryModified, $exampleModifiedCount, $pictureModifiedCount);
             }
             if ($entryModified) {
                 $entryModifiedCount++;
             }
             if (!$testMode) {
                 $entry->write();
             }
         }
     }
     if (!$testMode) {
         $project->hasHadSenseGuidsMigrated = true;
         $project->write();
     }
     print "{$exampleModifiedCount} example and {$pictureModifiedCount} picture guids created.\n";
     print "{$entryModifiedCount} of {$entryList->count} entries had sense guids created.\n";
 }