1: <?php
2:
3: namespace Scopus\Response;
4:
5: class AbstractCoredata
6: {
7:
8: protected $data;
9:
10: public function __construct(array $data)
11: {
12: $this->data = $data;
13: }
14:
15: public function getUrl()
16: {
17: return $this->data['prism:url'];
18: }
19:
20: public function getIdentifier()
21: {
22: return isset($this->data['dc:identifier']) ? $this->data['dc:identifier'] : null;
23: }
24:
25: public function getScopusId()
26: {
27: $identifier = $this->getIdentifier();
28: if (substr($identifier, 0, 10) === 'SCOPUS_ID:') {
29: return explode(':', $identifier, 2)[1];
30: }
31: }
32:
33: public function getDoi()
34: {
35: return isset($this->data['prism:doi']) ? $this->data['prism:doi'] : null;
36: }
37:
38: public function getTitle()
39: {
40: return isset($this->data['dc:title']) ? $this->data['dc:title'] : null;
41: }
42:
43: public function getDescription()
44: {
45: return $this->data['dc:description'];
46: }
47:
48: public function getPageRange()
49: {
50: return isset($this->data['prism:pageRange']) ? $this->data['prism:pageRange'] : null;
51: }
52:
53: public function getStartPage()
54: {
55: $pageRange = $this->getPageRange();
56: if ($pageRange) {
57: return explode('-', $pageRange)[0];
58: }
59: }
60:
61: public function getEndPage()
62: {
63: $pageRange = $this->getPageRange();
64: if ($pageRange) {
65: $startEndPage = explode('-', $pageRange);
66: if (count($startEndPage) > 1) {
67: return $startEndPage[1];
68: }
69: }
70: }
71:
72: public function getCoverDate()
73: {
74: return $this->data['prism:coverDate'];
75: }
76:
77: public function getPublicationName()
78: {
79: return isset($this->data['prism:publicationName']) ? $this->data['prism:publicationName'] : null;
80: }
81:
82: public function getIssn()
83: {
84: return $this->data['prism:issn'];
85: }
86:
87: public function getEIssn()
88: {
89: return $this->data['prism:eIssn'];
90: }
91:
92: public function getVolume()
93: {
94: return $this->data['prism:volume'];
95: }
96:
97: public function getCitedbyCount()
98: {
99: return $this->data['citedby-count'];
100: }
101:
102: public function getAggregationType()
103: {
104: return $this->data['prism:aggregationType'];
105: }
106: }