Code Duplication    Length = 46-48 lines in 2 locations

Alpha/Model/ActiveRecordProviderSQLite.php 2 locations

@@ 1411-1456 (lines=46) @@
1408
        foreach ($properties as $propObj) {
1409
            $propName = $propObj->name;
1410
1411
            if (!in_array($propName, $this->BO->getTransientAttributes()) && $propName != 'OID') {
1412
                $propReflect = new ReflectionClass($this->BO->getPropObject($propName));
1413
                $propClass = $propReflect->getShortName();
1414
1415
                switch (mb_strtoupper($propClass)) {
1416
                    case 'INTEGER':
1417
                        // special properties for RelationLookup OIDs
1418
                        if ($this->BO instanceof RelationLookup && ($propName == 'leftID' || $propName == 'rightID')) {
1419
                            $sqlQuery .= "$propName INT(".$this->BO->getPropObject($propName)->getSize().') NOT NULL,';
1420
                        } else {
1421
                            $sqlQuery .= "$propName INT(".$this->BO->getPropObject($propName)->getSize().'),';
1422
                        }
1423
                    break;
1424
                    case 'DOUBLE':
1425
                        $sqlQuery .= "$propName REAL(".$this->BO->getPropObject($propName)->getSize(true).'),';
1426
                    break;
1427
                    case 'STRING':
1428
                        $sqlQuery .= "$propName TEXT(".$this->BO->getPropObject($propName)->getSize().'),';
1429
                    break;
1430
                    case 'TEXT':
1431
                        $sqlQuery .= "$propName TEXT,";
1432
                    break;
1433
                    case 'BOOLEAN':
1434
                        $sqlQuery .= "$propName INTEGER(1) DEFAULT '0',";
1435
                    break;
1436
                    case 'DATE':
1437
                        $sqlQuery .= "$propName TEXT,";
1438
                    break;
1439
                    case 'TIMESTAMP':
1440
                        $sqlQuery .= "$propName TEXT,";
1441
                    break;
1442
                    case 'ENUM':
1443
                        $sqlQuery .= "$propName TEXT,";
1444
                    break;
1445
                    case 'DENUM':
1446
                        $tmp = new DEnum(get_class($this->BO).'::'.$propName);
1447
                        $sqlQuery .= "$propName INTEGER(11),";
1448
                    break;
1449
                    case 'RELATION':
1450
                        $sqlQuery .= "$propName INTEGER(11),";
1451
                    break;
1452
                    default:
1453
                        $sqlQuery .= '';
1454
                    break;
1455
                }
1456
            }
1457
        }
1458
1459
        if ($this->BO->isTableOverloaded()) {
@@ 1549-1596 (lines=48) @@
1546
1547
        if ($this->isTableOverloaded() && $propName == 'classname') {
1548
            $sqlQuery .= 'classname TEXT(100)';
1549
        } else {
1550
            if (!in_array($propName, $this->BO->getDefaultAttributes()) && !in_array($propName, $this->BO->getTransientAttributes())) {
1551
                $reflection = new ReflectionClass($this->BO->getPropObject($propName));
1552
                $propClass = $reflection->getShortName();
1553
1554
                switch (mb_strtoupper($propClass)) {
1555
                    case 'INTEGER':
1556
                        // special properties for RelationLookup OIDs
1557
                        if ($this->BO instanceof RelationLookup && ($propName == 'leftID' || $propName == 'rightID')) {
1558
                            $sqlQuery .= "$propName INTEGER(".$this->BO->getPropObject($propName)->getSize().') NOT NULL,';
1559
                        } else {
1560
                            $sqlQuery .= "$propName INTEGER(".$this->BO->getPropObject($propName)->getSize().'),';
1561
                        }
1562
                    break;
1563
                    case 'DOUBLE':
1564
                        $sqlQuery .= "$propName REAL(".$this->BO->getPropObject($propName)->getSize(true).'),';
1565
                    break;
1566
                    case 'STRING':
1567
                        $sqlQuery .= "$propName TEXT(".$this->BO->getPropObject($propName)->getSize().'),';
1568
                    break;
1569
                    case 'TEXT':
1570
                        $sqlQuery .= "$propName TEXT,";
1571
                    break;
1572
                    case 'BOOLEAN':
1573
                        $sqlQuery .= "$propName INTEGER(1) DEFAULT '0',";
1574
                    break;
1575
                    case 'DATE':
1576
                        $sqlQuery .= "$propName TEXT,";
1577
                    break;
1578
                    case 'TIMESTAMP':
1579
                        $sqlQuery .= "$propName TEXT,";
1580
                    break;
1581
                    case 'ENUM':
1582
                        $sqlQuery .= "$propName TEXT,";
1583
                    break;
1584
                    case 'DENUM':
1585
                        $tmp = new DEnum(get_class($this->BO).'::'.$propName);
1586
                        $sqlQuery .= "$propName INTEGER(11),";
1587
                    break;
1588
                    case 'RELATION':
1589
                        $sqlQuery .= "$propName INTEGER(11),";
1590
                    break;
1591
                    default:
1592
                        $sqlQuery .= '';
1593
                    break;
1594
                }
1595
            }
1596
        }
1597
1598
        $this->BO->setLastQuery($sqlQuery);
1599