Code Duplication    Length = 12-13 lines in 3 locations

lib/Doctrine/ORM/Persisters/Entity/JoinedSubclassPersister.php 3 locations

@@ 406-417 (lines=12) @@
403
        $baseTableAlias     = $this->getSQLTableAlias($this->class->name);
404
405
        // INNER JOIN parent tables
406
        foreach ($this->class->parentClasses as $parentClassName) {
407
            $conditions     = [];
408
            $tableAlias     = $this->getSQLTableAlias($parentClassName);
409
            $parentClass    = $this->em->getClassMetadata($parentClassName);
410
            $joinSql       .= ' INNER JOIN ' . $this->quoteStrategy->getTableName($parentClass, $this->platform) . ' ' . $tableAlias . ' ON ';
411
412
            foreach ($identifierColumns as $idColumn) {
413
                $conditions[] = $baseTableAlias . '.' . $idColumn . ' = ' . $tableAlias . '.' . $idColumn;
414
            }
415
416
            $joinSql .= implode(' AND ', $conditions);
417
        }
418
419
        return parent::getLockTablesSql($lockMode) . $joinSql;
420
    }
@@ 583-595 (lines=13) @@
580
        $identifierColumn = $this->class->getIdentifierColumnNames();
581
582
        // INNER JOIN parent tables
583
        foreach ($this->class->parentClasses as $parentClassName) {
584
            $conditions   = [];
585
            $parentClass  = $this->em->getClassMetadata($parentClassName);
586
            $tableAlias   = $this->getSQLTableAlias($parentClassName);
587
            $joinSql     .= ' INNER JOIN ' . $this->quoteStrategy->getTableName($parentClass, $this->platform) . ' ' . $tableAlias . ' ON ';
588
589
590
            foreach ($identifierColumn as $idColumn) {
591
                $conditions[] = $baseTableAlias . '.' . $idColumn . ' = ' . $tableAlias . '.' . $idColumn;
592
            }
593
594
            $joinSql .= implode(' AND ', $conditions);
595
        }
596
597
        // OUTER JOIN sub tables
598
        foreach ($this->class->subClasses as $subClassName) {
@@ 598-609 (lines=12) @@
595
        }
596
597
        // OUTER JOIN sub tables
598
        foreach ($this->class->subClasses as $subClassName) {
599
            $conditions  = [];
600
            $subClass    = $this->em->getClassMetadata($subClassName);
601
            $tableAlias  = $this->getSQLTableAlias($subClassName);
602
            $joinSql    .= ' LEFT JOIN ' . $this->quoteStrategy->getTableName($subClass, $this->platform) . ' ' . $tableAlias . ' ON ';
603
604
            foreach ($identifierColumn as $idColumn) {
605
                $conditions[] = $baseTableAlias . '.' . $idColumn . ' = ' . $tableAlias . '.' . $idColumn;
606
            }
607
608
            $joinSql .= implode(' AND ', $conditions);
609
        }
610
611
        return $joinSql;
612
    }