GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Code

< 40 %
40-60 %
> 60 %
1
<?php
2
3
namespace Funstaff\RefLibRis;
4
5
/**
6
 * RisDefinition
7
 *
8
 * @author Bertrand Zuchuat <[email protected]>
9
 * @see http://referencemanager.com/sites/rm/files/m/direct_export_ris.pdf
10
 */
11
class RisDefinition implements RisDefinitionInterface
12
{
13
    /**
14
     * @var array
15
     */
16
    protected static $fields = [
17
        'TY' => 'Type',
18
        'A1' => 'Author Primary',
19
        'A2' => 'Secondary Author',
20
        'A3' => 'Tertiary Author',
21
        'A4' => 'Subsidiary Author',
22
        'AB' => 'Abstract',
23
        'AD' => 'Author Address',
24
        'AN' => 'Accession Number',
25
        'AU' => 'Author',
26
        'AV' => 'Availability',
27
        'BT' => 'field can contain alphanumeric characters',
28
        'C1' => 'Custom 1',
29
        'C2' => 'Custom 2',
30
        'C3' => 'Custom 3',
31
        'C4' => 'Custom 4',
32
        'C5' => 'Custom 5',
33
        'C6' => 'Custom 6',
34
        'C7' => 'Custom 7',
35
        'C8' => 'Custom 8',
36
        'CA' => 'Caption',
37
        'CN' => 'Call Number',
38
        'CP' => 'length limit to this field',
39
        'CT' => 'Unpublished Work references',
40
        'CY' => 'Place Published',
41
        'DA' => 'Date',
42
        'DB' => 'Name of Database',
43
        'DO' => 'DOI',
44
        'DP' => 'Database Provider',
45
        'ED' => 'preceded by this tag',
46
        'EP' => 'Ending page number',
47
        'ET' => 'Edition',
48
        'ID' => 'Reference ID',
49
        'IS' => 'Issue',
50
        'J1' => 'Periodical name: user abbreviation 1',
51
        'J2' => 'Periodical name: user abbreviation 2',
52
        'JA' => 'periodical in which the article was published',
53
        'JF' => 'Periodical name: full format',
54
        'JO' => 'Periodical name: standard abbreviation',
55
        'KW' => 'Keywords',
56
        'L1' => 'Link to PDF',
57
        'L2' => 'Link to Full-text',
58
        'L3' => 'Related Records',
59
        'L4' => 'Images',
60
        'LA' => 'Language',
61
        'LB' => 'Label',
62
        'M1' => 'Miscellaneous 1',
63
        'M2' => 'Miscellaneous 2',
64
        'M3' => 'Miscellaneous 3',
65
        'N1' => 'Notes',
66
        'N2' => 'Abstract',
67
        'NV' => 'Number of Volumes',
68
        'OP' => 'Original Publication',
69
        'PB' => 'Publisher',
70
        'PY' => 'Year (Format: YYYY/MM/DD/other info)',
71
        'RP' => 'Reprint status',
72
        'SP' => 'Start page number',
73
        'SN' => 'ISSN/ISBN',
74
        'T1' => 'Title Primary',
75
        'T2' => 'Title Secondary',
76
        'T3' => 'Title Series',
77
        'TI' => 'This field only for Whole Book',
78
        'U1' => 'User definable 1',
79
        'U2' => 'User definable 2',
80
        'U3' => 'User definable 3',
81
        'U4' => 'User definable 4',
82
        'U5' => 'User definable 5',
83
        'UR' => 'Web/URL',
84
        'VL' => 'Volume number',
85
        'Y1' => 'Date Primary',
86
        'Y2' => 'Date Secondary',
87
    ];
88
89
    /**
90
     * @var array
91
     */
92
    protected static $types = [
93
        'GEN'       => 'Generic',
94
        'ABST'      => 'Abstract',
95
        'AGGR'      => 'Aggregated Database',
96
        'ANCIENT'   => 'Ancient Text',
97
        'ART'       => 'Artwork',
98
        'ADVS'      => 'Audiovisual Material',
99
        'BILL'      => 'Bill',
100
        'BLOG'      => 'Blog',
101
        'BOOK'      => 'Book',
102
        'CHAP'      => 'Book Section',
103
        'CASE'      => 'Case',
104
        'CTLG'      => 'Catalog',
105
        'CHART'     => 'Chart',
106
        'CLSWK'     => 'Classical Work',
107
        'COMP'      => 'Computer Program',
108
        'CPAPER'    => 'Conference Paper',
109
        'CONF'      => 'Conference Proceeding',
110
        'DATA'      => 'Dataset',
111
        'DICT'      => 'Dictionary',
112
        'EDBOOK'    => 'Edited Book',
113
        'EBOOK'     => 'Electronic Book',
114
        'ECHAP'     => 'Electronic Book Section',
115
        'EJOUR'     => 'Electronic Article',
116
        'ENCYC'     => 'Encyclopedia',
117
        'EQUA'      => 'Equation',
118
        'FIGURE'    => 'Figure',
119
        'MPCT'      => 'Film or Broadcast',
120
        'JFULL'     => 'Full Journal',
121
        'GOVDOC'    => 'Government Document',
122
        'GRNT'      => 'Grant',
123
        'HEAR'      => 'Hearing',
124
        'INPR'      => 'In Press Article',
125
        'ICOMM'     => 'Internet Communication',
126
        'JOUR'      => 'Journal Article',
127
        'LEGAL'     => 'Legal Rule',
128
        'MGZN'      => 'Magazine Article',
129
        'MANSCPT'   => 'Manuscript',
130
        'MAP'       => 'Map',
131
        'MUSIC'     => 'Music',
132
        'NEWS'      => 'Newspaper Article',
133
        'DBASE'     => 'Online Database',
134
        'MULTI'     => 'Online Multimedia',
135
        'PAMP'      => 'Pamphlet',
136
        'PAT'       => 'Patent',
137
        'PCOMM'     => 'Personal Communication',
138
        'RPRT'      => 'Report',
139
        'SER'       => 'Serial',
140
        'SLIDE'     => 'Slide',
141
        'SOUND'     => 'Sound Recording',
142
        'STAND'     => 'Standard',
143
        'STAT'      => 'Statute',
144
        'THES'      => 'Thesis',
145
        'UNBILL'    => 'Unenacted Bill',
146
        'UNPD'      => 'Unpublished Work',
147
        'VIDEO'     => 'Video Recording',
148
        'ELEC'      => 'Web Page',
149
    ];
150
151
    /**
152
     * @param string $tag
153
     * @return bool
154
     */
155
    public function hasField(string $tag): bool
156
    {
157
        return array_key_exists($tag, self::$fields);
158
    }
159
160
    /**
161
     * @return array
162
     */
163
    public function getFields(): array
164
    {
165
        return array_keys(self::$fields);
166
    }
167
168
    /**
169
     * @param string $tag
170
     * @return mixed
171
     */
172
    public function getFieldDefinition(string $tag)
173
    {
174
        if (!array_key_exists($tag, self::$fields)) {
175
            throw new \InvalidArgumentException('Field Tag not found.');
176
        }
177
178
        return self::$fields[$tag];
179
    }
180
181
    /**
182
     * @param string $tag
183
     * @return bool
184
     */
185
    public function hasType(string $tag): bool
186
    {
187
        return array_key_exists($tag, self::$types);
188
    }
189
190
    /**
191
     * @return array
192
     */
193
    public function getTypes(): array
194
    {
195
        return array_keys(self::$types);
196
    }
197
198
    /**
199
     * @param string $tag
200
     * @return mixed
201
     */
202
    public function getTypeDefinition(string $tag)
203
    {
204
        if (!array_key_exists($tag, self::$types)) {
205
            throw new \InvalidArgumentException('Type Tag not found.');
206
        }
207
208
        return self::$types[$tag];
209
    }
210
}
211