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;
    }
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;
    }
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 ; }
Evaluate JoinTable annotations and fill missing bits as needed.

@param ORM\JoinTable $joinTableAnnotation
@param \ReflectionProperty $property
@param string $className
@param array $mapping
@return array
Evaluate JoinTable annotations and fill missing bits as needed .