コード例 #1
0
 private function doProcessTheAboutElement(array $values)
 {
     foreach ($values as $key => $value) {
         switch ($key) {
             case '@id':
                 $this->filteredRecord->set('url', $value);
                 break;
             case '@type':
                 $this->filteredRecord->set('type', is_string($value) ? array($value) : $value);
                 break;
             case 'datePublished':
                 $this->filteredRecord->set('pubdate', $value);
                 break;
             case 'description':
                 $this->collectAbstract($value);
                 break;
             case 'bookEdition':
                 $this->filteredRecord->set('edition', $value);
                 break;
             case 'name':
                 $this->filteredRecord->set('title', is_array($value) ? $value['@value'] : $value);
                 break;
             case 'genre':
                 $this->collectGenre($value);
                 break;
         }
     }
 }
コード例 #2
0
 private function findElementsForPubMedCentral(DOMDocument $domDocument)
 {
     foreach ($domDocument->getElementsByTagName('pub-date') as $item) {
         foreach ($item->getElementsByTagName('year') as $i) {
             $this->filteredRecord->set('year', $i->nodeValue);
         }
     }
     foreach ($domDocument->getElementsByTagName('abstract') as $item) {
         $this->filteredRecord->set('abstract', trim($item->nodeValue));
     }
     foreach ($domDocument->getElementsByTagName('article') as $item) {
         $this->filteredRecord->set('type', $item->getAttribute('article-type'));
     }
 }
コード例 #3
0
ファイル: FilteredRecordTest.php プロジェクト: onoi/remi
 public function testRedactedFields()
 {
     $instance = new FilteredRecord();
     $instance->setRedactedFields(array('bar'));
     $instance->set('bar', 42);
     $this->assertFalse($instance->has('bar'));
     $instance->append('bar', 'foobar');
     $this->assertFalse($instance->has('bar'));
     $this->assertEmpty($instance->getRecordFields());
 }
コード例 #4
0
 private function collectAuthors($name, array $values)
 {
     $authors = array();
     foreach ($values as $key => $value) {
         // Literal set by dataset
         $familyName = isset($value['literal']) ? $value['literal'] : $value['family'];
         // Part of the auto generated key
         if ($key == 0) {
             $this->filteredRecord->set('reference', strtolower($familyName));
         }
         $authors[] = (isset($value['given']) ? $value['given'] . ' ' : '') . $familyName;
     }
     $this->filteredRecord->set($name, $authors);
 }
コード例 #5
0
ファイル: OLBooksAPIJsonProcessor.php プロジェクト: onoi/remi
 private function doProcessElements($record)
 {
     foreach ($record as $key => $value) {
         switch ($key) {
             case 'title':
                 $this->filteredRecord->set('title', $value);
                 break;
             case 'subtitle':
                 $this->filteredRecord->set('subtitle', $value);
                 break;
             case 'url':
                 $this->filteredRecord->set('url', $value);
                 break;
             case 'publishers':
                 $this->filteredRecord->set('publisher', end($value));
                 break;
             case 'publish_date':
                 $this->filteredRecord->set('pubdate', $value);
                 break;
             case 'number_of_pages':
                 $this->filteredRecord->set('pages', $value);
                 break;
             case 'classifications':
                 $this->collectClassifications($value);
                 break;
             case 'identifiers':
                 $this->collectIdentifiers($value);
                 break;
             case 'subject_places':
             case 'subjects':
                 $this->collectSubjects($value);
                 break;
             case 'authors':
                 $this->collectAuthors($value);
                 break;
             case 'cover':
                 $this->filteredRecord->set('cover', end($value));
                 break;
         }
     }
 }
コード例 #6
0
 /**
  * @since 0.1
  *
  * @param FilteredRecord $filteredRecord
  *
  * @return ResponseParser
  */
 public function newNcbiPubMedCentralFilteredHttpResponseParser(FilteredRecord $filteredRecord)
 {
     $filteredRecord->set('ncbi-dbtype', 'pmc');
     return new NcbiPubMedFilteredHttpResponseParser($this->httpRequest, $filteredRecord);
 }