Code Duplication    Length = 46-48 lines in 2 locations

Alpha/Model/ActiveRecordProviderSQLite.php 2 locations

@@ 1379-1424 (lines=46) @@
1376
        foreach ($properties as $propObj) {
1377
            $propName = $propObj->name;
1378
1379
            if (!in_array($propName, $this->BO->getTransientAttributes()) && $propName != 'OID') {
1380
                $propReflect = new ReflectionClass($this->BO->getPropObject($propName));
1381
                $propClass = $propReflect->getShortName();
1382
1383
                switch (mb_strtoupper($propClass)) {
1384
                    case 'INTEGER':
1385
                        // special properties for RelationLookup OIDs
1386
                        if ($this->BO instanceof RelationLookup && ($propName == 'leftID' || $propName == 'rightID')) {
1387
                            $sqlQuery .= "$propName INT(".$this->BO->getPropObject($propName)->getSize().') NOT NULL,';
1388
                        } else {
1389
                            $sqlQuery .= "$propName INT(".$this->BO->getPropObject($propName)->getSize().'),';
1390
                        }
1391
                    break;
1392
                    case 'DOUBLE':
1393
                        $sqlQuery .= "$propName REAL(".$this->BO->getPropObject($propName)->getSize(true).'),';
1394
                    break;
1395
                    case 'SMALLTEXT':
1396
                        $sqlQuery .= "$propName TEXT(".$this->BO->getPropObject($propName)->getSize().'),';
1397
                    break;
1398
                    case 'TEXT':
1399
                        $sqlQuery .= "$propName TEXT,";
1400
                    break;
1401
                    case 'BOOLEAN':
1402
                        $sqlQuery .= "$propName INTEGER(1) DEFAULT '0',";
1403
                    break;
1404
                    case 'DATE':
1405
                        $sqlQuery .= "$propName TEXT,";
1406
                    break;
1407
                    case 'TIMESTAMP':
1408
                        $sqlQuery .= "$propName TEXT,";
1409
                    break;
1410
                    case 'ENUM':
1411
                        $sqlQuery .= "$propName TEXT,";
1412
                    break;
1413
                    case 'DENUM':
1414
                        $tmp = new DEnum(get_class($this->BO).'::'.$propName);
1415
                        $sqlQuery .= "$propName INTEGER(11),";
1416
                    break;
1417
                    case 'RELATION':
1418
                        $sqlQuery .= "$propName INTEGER(11),";
1419
                    break;
1420
                    default:
1421
                        $sqlQuery .= '';
1422
                    break;
1423
                }
1424
            }
1425
        }
1426
1427
        if ($this->BO->isTableOverloaded()) {
@@ 1517-1564 (lines=48) @@
1514
1515
        if ($this->isTableOverloaded() && $propName == 'classname') {
1516
            $sqlQuery .= 'classname TEXT(100)';
1517
        } else {
1518
            if (!in_array($propName, $this->BO->getDefaultAttributes()) && !in_array($propName, $this->BO->getTransientAttributes())) {
1519
                $reflection = new ReflectionClass($this->BO->getPropObject($propName));
1520
                $propClass = $reflection->getShortName();
1521
1522
                switch (mb_strtoupper($propClass)) {
1523
                    case 'INTEGER':
1524
                        // special properties for RelationLookup OIDs
1525
                        if ($this->BO instanceof RelationLookup && ($propName == 'leftID' || $propName == 'rightID')) {
1526
                            $sqlQuery .= "$propName INTEGER(".$this->BO->getPropObject($propName)->getSize().') NOT NULL,';
1527
                        } else {
1528
                            $sqlQuery .= "$propName INTEGER(".$this->BO->getPropObject($propName)->getSize().'),';
1529
                        }
1530
                    break;
1531
                    case 'DOUBLE':
1532
                        $sqlQuery .= "$propName REAL(".$this->BO->getPropObject($propName)->getSize(true).'),';
1533
                    break;
1534
                    case 'SMALLTEXT':
1535
                        $sqlQuery .= "$propName TEXT(".$this->BO->getPropObject($propName)->getSize().'),';
1536
                    break;
1537
                    case 'TEXT':
1538
                        $sqlQuery .= "$propName TEXT,";
1539
                    break;
1540
                    case 'BOOLEAN':
1541
                        $sqlQuery .= "$propName INTEGER(1) DEFAULT '0',";
1542
                    break;
1543
                    case 'DATE':
1544
                        $sqlQuery .= "$propName TEXT,";
1545
                    break;
1546
                    case 'TIMESTAMP':
1547
                        $sqlQuery .= "$propName TEXT,";
1548
                    break;
1549
                    case 'ENUM':
1550
                        $sqlQuery .= "$propName TEXT,";
1551
                    break;
1552
                    case 'DENUM':
1553
                        $tmp = new DEnum(get_class($this->BO).'::'.$propName);
1554
                        $sqlQuery .= "$propName INTEGER(11),";
1555
                    break;
1556
                    case 'RELATION':
1557
                        $sqlQuery .= "$propName INTEGER(11),";
1558
                    break;
1559
                    default:
1560
                        $sqlQuery .= '';
1561
                    break;
1562
                }
1563
            }
1564
        }
1565
1566
        $this->BO->setLastQuery($sqlQuery);
1567