public function loadMetadataForClass($className, ClassMetadata $metadata)
{
$mapping = config(sprintf('doctrine.mappings.%s', $className));
$builder = new ClassMetadataBuilder($metadata);
if (!empty($mapping['abstract'])) {
$builder->setMappedSuperClass();
}
if (!empty($mapping['table'])) {
$builder->setTable($mapping['table']);
}
if (!empty($mapping['indexes'])) {
foreach ($mapping['indexes'] as $name => $columns) {
$builder->addIndex($columns, $name);
}
}
if (!empty($mapping['repository'])) {
$builder->setCustomRepositoryClass($mapping['repository']);
}
if (!empty($mapping['fields'])) {
foreach ($mapping['fields'] as $fieldName => $fieldConfig) {
$this->mapField($builder, $fieldName, $fieldConfig);
}
}
}