public function processDefinition(&
$definition,
$plugin_id) { parent::
processDefinition($definition,
$plugin_id);
// If the migration has no tags, we don't need to enforce the source_module
// annotation property.
if (empty($definition['migration_tags'
])) { return;
} // Check if the migration has any of the tags that trigger source_module
// enforcement.
$applied_tags =
array_intersect($this->
getEnforcedSourceModuleTags(),
$definition['migration_tags'
]);
if ($applied_tags) { // Throw an exception if the source plugin definition does not define a
// source_module.
$source_id =
$definition['source'
]['plugin'
];
$source_definition =
$this->sourceManager->
getDefinition($source_id);
if (empty($source_definition['source_module'
])) { throw new BadPluginDefinitionException($source_id, 'source_module'
);
} } }}