Author: david
Date: 2008-11-28 10:06:26 -0800 (Fri, 28 Nov 2008)
New Revision: 1638

Modified:
   trunk/qubit/config/schema.yml
   trunk/qubit/data/fixtures/sampleData.yml
   trunk/qubit/data/sql/lib.model.schema.sql
   trunk/qubit/lib/model/map/InformationObjectMapBuilder.php
   trunk/qubit/lib/model/om/BaseInformationObject.php
Log:
Add OAI identifier column to q_information_object as per issue #530.

Modified: trunk/qubit/config/schema.yml
===================================================================
--- trunk/qubit/config/schema.yml       2008-11-28 17:48:27 UTC (rev 1637)
+++ trunk/qubit/config/schema.yml       2008-11-28 18:06:26 UTC (rev 1638)
@@ -5,6 +5,7 @@
   information_object:
     id: { type: integer, required: true, primaryKey: true, foreignTable: 
object, foreignReference: id, onDelete: cascade, inheritanceKey: true }
     identifier: varchar(255)
+    oai_identifier: { type: integer, index: unique, required: true, 
autoIncrement: true }
     level_of_description_id: { type: integer, foreignTable: term, 
foreignReference: id }
     collection_type_id: { type: integer, foreignTable: term, foreignReference: 
id }
     repository_id:

Modified: trunk/qubit/data/fixtures/sampleData.yml
===================================================================
--- trunk/qubit/data/fixtures/sampleData.yml    2008-11-28 17:48:27 UTC (rev 
1637)
+++ trunk/qubit/data/fixtures/sampleData.yml    2008-11-28 18:06:26 UTC (rev 
1638)
@@ -1465,6 +1465,7 @@
 QubitInformationObject:
   QubitInformationObject_261:
     class_name: QubitInformationObject
+    oai_identifier: 100001
     lft: '1'
     rgt: '78'
     created_at: '2008-04-24 09:30:12'
@@ -3667,4 +3668,4 @@
     role_id: QubitRole_3
   QubitUserRoleRelation_5:
     user_id: QubitUser_255
-    role_id: QubitRole_4
+    role_id: QubitRole_4
\ No newline at end of file

Modified: trunk/qubit/data/sql/lib.model.schema.sql
===================================================================
--- trunk/qubit/data/sql/lib.model.schema.sql   2008-11-28 17:48:27 UTC (rev 
1637)
+++ trunk/qubit/data/sql/lib.model.schema.sql   2008-11-28 18:06:26 UTC (rev 
1638)
@@ -28,6 +28,7 @@
 (
        `id` INTEGER  NOT NULL,
        `identifier` VARCHAR(255),
+       `oai_identifier` INTEGER  NOT NULL AUTO_INCREMENT,
        `level_of_description_id` INTEGER,
        `collection_type_id` INTEGER,
        `repository_id` INTEGER,
@@ -41,6 +42,7 @@
        `updated_at` DATETIME  NOT NULL,
        `source_culture` VARCHAR(7)  NOT NULL,
        PRIMARY KEY (`id`),
+       UNIQUE KEY `q_information_object_U_1` (`oai_identifier`),
        CONSTRAINT `q_information_object_FK_1`
                FOREIGN KEY (`id`)
                REFERENCES `q_object` (`id`)

Modified: trunk/qubit/lib/model/map/InformationObjectMapBuilder.php
===================================================================
--- trunk/qubit/lib/model/map/InformationObjectMapBuilder.php   2008-11-28 
17:48:27 UTC (rev 1637)
+++ trunk/qubit/lib/model/map/InformationObjectMapBuilder.php   2008-11-28 
18:06:26 UTC (rev 1638)
@@ -31,12 +31,14 @@
                $tMap->setPhpName('InformationObject');
                $tMap->setClassname('QubitInformationObject');
 
-               $tMap->setUseIdGenerator(false);
+               $tMap->setUseIdGenerator(true);
 
                $tMap->addForeignPrimaryKey('ID', 'Id', 'INTEGER' , 'q_object', 
'ID', true, null);
 
                $tMap->addColumn('IDENTIFIER', 'Identifier', 'VARCHAR', false, 
255);
 
+               $tMap->addColumn('OAI_IDENTIFIER', 'OaiIdentifier', 'INTEGER', 
true, null);
+
                $tMap->addForeignKey('LEVEL_OF_DESCRIPTION_ID', 
'LevelOfDescriptionId', 'INTEGER', 'q_term', 'ID', false, null);
 
                $tMap->addForeignKey('COLLECTION_TYPE_ID', 'CollectionTypeId', 
'INTEGER', 'q_term', 'ID', false, null);

Modified: trunk/qubit/lib/model/om/BaseInformationObject.php
===================================================================
--- trunk/qubit/lib/model/om/BaseInformationObject.php  2008-11-28 17:48:27 UTC 
(rev 1637)
+++ trunk/qubit/lib/model/om/BaseInformationObject.php  2008-11-28 18:06:26 UTC 
(rev 1638)
@@ -8,6 +8,7 @@
 
   const ID = 'q_information_object.ID';
   const IDENTIFIER = 'q_information_object.IDENTIFIER';
+  const OAI_IDENTIFIER = 'q_information_object.OAI_IDENTIFIER';
   const LEVEL_OF_DESCRIPTION_ID = 
'q_information_object.LEVEL_OF_DESCRIPTION_ID';
   const COLLECTION_TYPE_ID = 'q_information_object.COLLECTION_TYPE_ID';
   const REPOSITORY_ID = 'q_information_object.REPOSITORY_ID';
@@ -29,6 +30,7 @@
 
     $criteria->addSelectColumn(QubitInformationObject::ID);
     $criteria->addSelectColumn(QubitInformationObject::IDENTIFIER);
+    $criteria->addSelectColumn(QubitInformationObject::OAI_IDENTIFIER);
     
$criteria->addSelectColumn(QubitInformationObject::LEVEL_OF_DESCRIPTION_ID);
     $criteria->addSelectColumn(QubitInformationObject::COLLECTION_TYPE_ID);
     $criteria->addSelectColumn(QubitInformationObject::REPOSITORY_ID);
@@ -108,6 +110,20 @@
     return $this;
   }
 
+  protected $oaiIdentifier = null;
+
+  public function getOaiIdentifier()
+  {
+    return $this->oaiIdentifier;
+  }
+
+  public function setOaiIdentifier($oaiIdentifier)
+  {
+    $this->oaiIdentifier = $oaiIdentifier;
+
+    return $this;
+  }
+
   protected $levelOfDescriptionId = null;
 
   public function getLevelOfDescriptionId()
@@ -304,6 +320,7 @@
 
     $this->columnValues['id'] = $this->id;
     $this->columnValues['identifier'] = $this->identifier;
+    $this->columnValues['oaiIdentifier'] = $this->oaiIdentifier;
     $this->columnValues['levelOfDescriptionId'] = $this->levelOfDescriptionId;
     $this->columnValues['collectionTypeId'] = $this->collectionTypeId;
     $this->columnValues['repositoryId'] = $this->repositoryId;
@@ -326,6 +343,7 @@
 
     $this->id = (int) $row[$columnOffset++];
     $this->identifier = (string) $row[$columnOffset++];
+    $this->oaiIdentifier = (int) $row[$columnOffset++];
     $this->levelOfDescriptionId = (int) $row[$columnOffset++];
     $this->collectionTypeId = (int) $row[$columnOffset++];
     $this->repositoryId = (int) $row[$columnOffset++];
@@ -399,6 +417,11 @@
       $criteria->add(QubitInformationObject::IDENTIFIER, $this->identifier);
     }
 
+    if ($this->isColumnModified('oaiIdentifier'))
+    {
+      $criteria->add(QubitInformationObject::OAI_IDENTIFIER, 
$this->oaiIdentifier);
+    }
+
     if ($this->isColumnModified('levelOfDescriptionId'))
     {
       $criteria->add(QubitInformationObject::LEVEL_OF_DESCRIPTION_ID, 
$this->levelOfDescriptionId);
@@ -467,7 +490,7 @@
       $connection = 
QubitTransactionFilter::getConnection(QubitInformationObject::DATABASE_NAME);
     }
 
-    BasePeer::doInsert($criteria, $connection);
+    $id = BasePeer::doInsert($criteria, $connection);
     $affectedRows += 1;
 
     return $affectedRows;
@@ -496,6 +519,11 @@
       $criteria->add(QubitInformationObject::IDENTIFIER, $this->identifier);
     }
 
+    if ($this->isColumnModified('oaiIdentifier'))
+    {
+      $criteria->add(QubitInformationObject::OAI_IDENTIFIER, 
$this->oaiIdentifier);
+    }
+
     if ($this->isColumnModified('levelOfDescriptionId'))
     {
       $criteria->add(QubitInformationObject::LEVEL_OF_DESCRIPTION_ID, 
$this->levelOfDescriptionId);


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to