1: <?php
2:
3: namespace Scopus\Response;
4:
5: class CitationCount
6: {
7: const STATUS_FOUND = 'found';
8: const STATUS_NOT_FOUND = 'not_found';
9:
10: /**
11: * @var array
12: */
13: protected $data;
14:
15: /**
16: * @var CitationCountLinks
17: */
18: protected $links;
19:
20: public function __construct(array $data)
21: {
22: $this->data = $data;
23: }
24:
25: /**
26: * The raw status Scopus reported for this document, e.g. "found".
27: *
28: * @return string|null
29: */
30: public function getStatus()
31: {
32: return isset($this->data['@status']) ? $this->data['@status'] : null;
33: }
34:
35: public function isFound(): bool
36: {
37: return isset($this->data['@status']) && $this->data['@status'] === 'found';
38: }
39:
40: public function getIdentifier()
41: {
42: return isset($this->data['dc:identifier']) ? $this->data['dc:identifier'] : null;
43: }
44:
45: public function getUrl()
46: {
47: return isset($this->data['prism:url']) ? $this->data['prism:url'] : null;
48: }
49:
50: public function getDoi()
51: {
52: return isset($this->data['prism:doi']) ? $this->data['prism:doi'] : null;
53: }
54:
55: public function getPii()
56: {
57: return isset($this->data['pii']) ? $this->data['pii'] : null;
58: }
59:
60: public function getPumbedId()
61: {
62: return isset($this->data['pubmed_id']) ? $this->data['pubmed_id'] : null;
63: }
64:
65: public function getEID()
66: {
67: return isset($this->data['eid']) ? $this->data['eid'] : null;
68: }
69:
70: public function getArticleNumber()
71: {
72: return isset($this->data['article-number']) ? $this->data['article-number'] : null;
73: }
74:
75: public function getCitationCount()
76: {
77: return isset($this->data['citation-count']) ? $this->data['citation-count'] : null;
78: }
79:
80: public function getLinks()
81: {
82: if (!isset($this->data['link'])) {
83: return null;
84: }
85:
86: return $this->links ?? $this->links = new CitationCountLinks($this->data['link']);
87: }
88: }
89: