protected function evaluateJoinTableAnnotation(ORM\JoinTable $joinTableAnnotation, \ReflectionProperty $property, $className, array $mapping)
{
$joinTable = ['name' => $joinTableAnnotation->name, 'schema' => $joinTableAnnotation->schema];
if ($joinTable['name'] === null) {
$joinTable['name'] = $this->inferJoinTableNameFromClassAndPropertyName($className, $property->getName());
}
foreach ($joinTableAnnotation->joinColumns as $joinColumn) {
$joinTable['joinColumns'][] = $this->joinColumnToArray($joinColumn);
}
if (array_key_exists('joinColumns', $joinTable)) {
$joinTable['joinColumns'] = $this->buildJoinColumnsIfNeeded($joinTable['joinColumns'], $mapping, $property, self::MAPPING_MM_REGULAR);
} else {
$joinColumns = [['name' => null, 'referencedColumnName' => null]];
$joinTable['joinColumns'] = $this->buildJoinColumnsIfNeeded($joinColumns, $mapping, $property, self::MAPPING_MM_REGULAR);
}
foreach ($joinTableAnnotation->inverseJoinColumns as $joinColumn) {
$joinTable['inverseJoinColumns'][] = $this->joinColumnToArray($joinColumn);
}
if (array_key_exists('inverseJoinColumns', $joinTable)) {
$joinTable['inverseJoinColumns'] = $this->buildJoinColumnsIfNeeded($joinTable['inverseJoinColumns'], $mapping, $property);
} else {
$joinColumns = [['name' => null, 'referencedColumnName' => null]];
$joinTable['inverseJoinColumns'] = $this->buildJoinColumnsIfNeeded($joinColumns, $mapping, $property);
}
return $joinTable;
}