/** * 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"; }