Neos\Flow\Persistence\Doctrine\Mapping\Driver\FlowAnnotationDriver::evaluateJoinTableAnnotation PHP Method

evaluateJoinTableAnnotation() protected method

Evaluate JoinTable annotations and fill missing bits as needed.
protected evaluateJoinTableAnnotation ( Doctrine\ORM\Mapping\JoinTable $joinTableAnnotation, ReflectionProperty $property, string $className, array $mapping ) : array
$joinTableAnnotation Doctrine\ORM\Mapping\JoinTable
$property ReflectionProperty
$className string
$mapping array
return array
    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;
    }