public static function updateFromOAIRecord(OAIRecord $record, $data_provider_id, PropelPDO $con = null)
 {
     $updated = 0;
     $oai_harvested_data = self::retrieveByIdentifier($record->getIdentifier(), $con);
     if (null === $oai_harvested_data) {
         // The record is new
         $oai_harvested_data = new oaiHarvestedData();
         $oai_harvested_data->setOaiDataProviderId($data_provider_id);
     } else {
         if ($oai_harvested_data->getUpdatedAt('U') > $record->getDatestamp()) {
             // The record hasn't been updated
             return 0;
         }
     }
     $oai_harvested_data->fromArray(array('identifier' => $record->getIdentifier(), 'datestamp' => $record->getDatestamp(), 'set_spec' => $record->getSetSpec(), 'title' => $record->getTitle(), 'creator' => $record->getCreator(), 'subject' => $record->getSubject(), 'description' => $record->getDescription(), 'date' => $record->getDate(), 'publisher' => $record->getPublisher(), 'type' => $record->getType(), 'dc_identifier' => $record->getDcIdentifier(), 'relation' => $record->getRelation()), BasePeer::TYPE_FIELDNAME);
     $updated += $oai_harvested_data->save($con);
     return $updated;
 }