001/*
002 * Licensed under the Apache License, Version 2.0 (the "License");
003 * you may not use this file except in compliance with the License.
004 * You may obtain a copy of the License at
005 *
006 *     http://www.apache.org/licenses/LICENSE-2.0
007 *
008 * Unless required by applicable law or agreed to in writing, software
009 * distributed under the License is distributed on an "AS IS" BASIS,
010 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011 * See the License for the specific language governing permissions and
012 * limitations under the License.
013 */
014package org.gbif.api.model.literature.search;
015
016import org.gbif.api.model.literature.LiteratureRelevance;
017import org.gbif.api.model.literature.LiteratureTopic;
018import org.gbif.api.model.literature.LiteratureType;
019import org.gbif.api.vocabulary.Country;
020import org.gbif.api.vocabulary.GbifRegion;
021import org.gbif.api.vocabulary.Language;
022
023import java.util.ArrayList;
024import java.util.Date;
025import java.util.HashMap;
026import java.util.HashSet;
027import java.util.List;
028import java.util.Map;
029import java.util.Set;
030import java.util.UUID;
031
032import com.fasterxml.jackson.annotation.JsonProperty;
033
034import io.swagger.v3.oas.annotations.media.Schema;
035
036@SuppressWarnings("unused")
037public class LiteratureSearchResult {
038
039  private String abstract_;
040
041  @Schema(description = "The date the literature item was found by GBIF's staff or automated processes.")
042  private String discovered;
043
044  @Schema(description = "The authors of the publication.")
045  private List<Map<String, Object>> authors = new ArrayList<>();
046
047  @Schema(description = "Countries or areas of focus of the study.")
048  private Set<Country> countriesOfCoverage = new HashSet<>();
049
050  @Schema(description = "Countries or areas of institution with which authors are affiliated.")
051  private Set<Country> countriesOfResearcher = new HashSet<>();
052
053  @Schema(description = "The date the publication was added to the GBIF literature database.")
054  private Date added;
055
056  @Schema(description = "The publication date of the publication.  See also `year`, `month` and `day`.")
057  private Date published;
058
059  @Schema(description = "The day of publication. See also `published`.", minimum = "1", maximum = "31")
060  private Integer day;
061
062  @Schema(description = "Keys of GBIF downloads referenced by the publication.")
063  private List<String> gbifDownloadKey = new ArrayList<>();
064
065  @Schema(description = "Keys of GBIF occurrences directly mentioned by the paper.")
066  private List<Long> gbifOccurrenceKey = new ArrayList<>();
067
068  @Schema(description = "Keys of taxa from the GBIF Backbone Taxonomy that are the focus of the paper.")
069  private List<Integer> gbifTaxonKey = new ArrayList<>();
070
071  @Schema(description = "Keys of higher taxa from the GBIF Backbone Taxonomy that are the focus of the paper.")
072  private List<Integer> gbifHigherTaxonKey = new ArrayList<>();
073
074  @Schema(description = "A list of GBIF network keys relevant to the publication.")
075  private List<UUID> gbifNetworkKey = new ArrayList<>();
076
077  @Schema(description = "A list of GBIF project identifiers relevant to the publication.")
078  private List<String> gbifProjectIdentifier = new ArrayList<>();
079
080  @Schema(description = "A list of GBIF programmes relevant to the publication.")
081  private List<String> gbifProgramme = new ArrayList<>();
082
083  @Schema(description = "The manner in which GBIF is cited in a paper.")
084  private String citationType;
085
086  @Schema(description = "GBIF regions (political divisions) related to the publication.")
087  private Set<GbifRegion> gbifRegion = new HashSet<>();
088
089  @Schema(description = "GBIF identifier for this literature item.")
090  private UUID id;
091
092  @Schema(description = "Identifiers (such as DOIs) for the literature item.")
093  private Map<String, Object> identifiers = new HashMap<>();
094
095  @Schema(description = "Keywords assigned to the literature item.")
096  private List<String> keywords = new ArrayList<>();
097
098  @Schema(description = "The language of the publication.")
099  private Language language;
100
101  @Schema(description = "Type of literature, e.g. journal article.")
102  private LiteratureType literatureType;
103
104  @Schema(description = "The month of publication. See also `published`.", minimum = "1", maximum = "12")
105  private Integer month;
106
107  @Schema(description = "Unstructured notes.")
108  private String notes;
109
110  @Schema(description = "Whether the publication is open access.")
111  private boolean openAccess;
112
113  @Schema(description = "Whether the publication has been peer reviewed.")
114  private boolean peerReview;
115
116  @Schema(description = "The publisher of the paper.")
117  private String publisher;
118
119  @Schema(description = "Relevance to GBIF community, see [literature relevance](https://www.gbif.org/faq?question=literature-relevance).")
120  private Set<LiteratureRelevance> relevance = new HashSet<>();
121
122  @Schema(description = "Journal of publication.")
123  private String source;
124
125  @Schema(description = "Various tags applied to the literature.")
126  private List<String> tags = new ArrayList<>();
127
128  @Schema(description = "The title of the publication.")
129  private String title;
130
131  @Schema(description = "Topics of the publication.")
132  private Set<LiteratureTopic> topics = new HashSet<>();
133
134  @Schema(description = "The date this literature entry was last modified.")
135  private Date modified;
136
137  @Schema(description = "Websites associated with the publication.")
138  private List<String> websites = new ArrayList<>();
139
140  @Schema(description = "The year of publication.  See also `published`.")
141  private Integer year;
142
143  @Schema(name = "abstract", description = "The abstract from the publication.")
144  @JsonProperty("abstract")
145  public String getAbstract() {
146    return abstract_;
147  }
148
149  public void setAbstract(String abstract_) {
150    this.abstract_ = abstract_;
151  }
152
153  public String getDiscovered() {
154    return discovered;
155  }
156
157  public void setDiscovered(String discovered) {
158    this.discovered = discovered;
159  }
160
161  public List<Map<String, Object>> getAuthors() {
162    return authors;
163  }
164
165  public void setAuthors(List<Map<String, Object>> authors) {
166    this.authors = authors;
167  }
168
169  public Set<Country> getCountriesOfCoverage() {
170    return countriesOfCoverage;
171  }
172
173  public void setCountriesOfCoverage(Set<Country> countriesOfCoverage) {
174    this.countriesOfCoverage = countriesOfCoverage;
175  }
176
177  public Set<Country> getCountriesOfResearcher() {
178    return countriesOfResearcher;
179  }
180
181  public void setCountriesOfResearcher(Set<Country> countriesOfResearcher) {
182    this.countriesOfResearcher = countriesOfResearcher;
183  }
184
185  public Date getAdded() {
186    return added;
187  }
188
189  public void setAdded(Date added) {
190    this.added = added;
191  }
192
193  public Date getPublished() {
194    return published;
195  }
196
197  public void setPublished(Date published) {
198    this.published = published;
199  }
200
201  public Integer getDay() {
202    return day;
203  }
204
205  public void setDay(Integer day) {
206    this.day = day;
207  }
208
209  public List<String> getGbifDownloadKey() {
210    return gbifDownloadKey;
211  }
212
213  public void setGbifDownloadKey(List<String> gbifDownloadKey) {
214    this.gbifDownloadKey = gbifDownloadKey;
215  }
216
217  public List<Long> getGbifOccurrenceKey() {
218    return gbifOccurrenceKey;
219  }
220
221  public void setGbifOccurrenceKey(List<Long> gbifOccurrenceKey) {
222    this.gbifOccurrenceKey = gbifOccurrenceKey;
223  }
224
225  public List<Integer> getGbifTaxonKey() {
226    return gbifTaxonKey;
227  }
228
229  public void setGbifTaxonKey(List<Integer> gbifTaxonKey) {
230    this.gbifTaxonKey = gbifTaxonKey;
231  }
232
233  public List<Integer> getGbifHigherTaxonKey() {
234    return gbifHigherTaxonKey;
235  }
236
237  public void setGbifHigherTaxonKey(List<Integer> gbifHigherTaxonKey) {
238    this.gbifHigherTaxonKey = gbifHigherTaxonKey;
239  }
240
241  public String getCitationType() {
242    return citationType;
243  }
244
245  public void setCitationType(String citationType) {
246    this.citationType = citationType;
247  }
248
249  public Set<GbifRegion> getGbifRegion() {
250    return gbifRegion;
251  }
252
253  public void setGbifRegion(Set<GbifRegion> gbifRegion) {
254    this.gbifRegion = gbifRegion;
255  }
256
257  public UUID getId() {
258    return id;
259  }
260
261  public void setId(UUID id) {
262    this.id = id;
263  }
264
265  public Map<String, Object> getIdentifiers() {
266    return identifiers;
267  }
268
269  public void setIdentifiers(Map<String, Object> identifiers) {
270    this.identifiers = identifiers;
271  }
272
273  public List<String> getKeywords() {
274    return keywords;
275  }
276
277  public void setKeywords(List<String> keywords) {
278    this.keywords = keywords;
279  }
280
281  public Language getLanguage() {
282    return language;
283  }
284
285  public void setLanguage(Language language) {
286    this.language = language;
287  }
288
289  public LiteratureType getLiteratureType() {
290    return literatureType;
291  }
292
293  public void setLiteratureType(LiteratureType literatureType) {
294    this.literatureType = literatureType;
295  }
296
297  public Integer getMonth() {
298    return month;
299  }
300
301  public void setMonth(Integer month) {
302    this.month = month;
303  }
304
305  public String getNotes() {
306    return notes;
307  }
308
309  public void setNotes(String notes) {
310    this.notes = notes;
311  }
312
313  public boolean isOpenAccess() {
314    return openAccess;
315  }
316
317  public void setOpenAccess(boolean openAccess) {
318    this.openAccess = openAccess;
319  }
320
321  public boolean isPeerReview() {
322    return peerReview;
323  }
324
325  public void setPeerReview(boolean peerReview) {
326    this.peerReview = peerReview;
327  }
328
329  public String getPublisher() {
330    return publisher;
331  }
332
333  public void setPublisher(String publisher) {
334    this.publisher = publisher;
335  }
336
337  public Set<LiteratureRelevance> getRelevance() {
338    return relevance;
339  }
340
341  public void setRelevance(Set<LiteratureRelevance> relevance) {
342    this.relevance = relevance;
343  }
344
345  public String getSource() {
346    return source;
347  }
348
349  public void setSource(String source) {
350    this.source = source;
351  }
352
353  public List<String> getTags() {
354    return tags;
355  }
356
357  public void setTags(List<String> tags) {
358    this.tags = tags;
359  }
360
361  public String getTitle() {
362    return title;
363  }
364
365  public void setTitle(String title) {
366    this.title = title;
367  }
368
369  public Set<LiteratureTopic> getTopics() {
370    return topics;
371  }
372
373  public void setTopics(Set<LiteratureTopic> topics) {
374    this.topics = topics;
375  }
376
377  public Date getModified() {
378    return modified;
379  }
380
381  public void setModified(Date modified) {
382    this.modified = modified;
383  }
384
385  public List<String> getWebsites() {
386    return websites;
387  }
388
389  public void setWebsites(List<String> websites) {
390    this.websites = websites;
391  }
392
393  public Integer getYear() {
394    return year;
395  }
396
397  public void setYear(Integer year) {
398    this.year = year;
399  }
400
401  public List<UUID> getGbifNetworkKey() {
402    return gbifNetworkKey;
403  }
404
405  public void setGbifNetworkKey(List<UUID> gbifNetworkKey) {
406    this.gbifNetworkKey = gbifNetworkKey;
407  }
408
409  public List<String> getGbifProjectIdentifier() {
410    return gbifProjectIdentifier;
411  }
412
413  public void setGbifProjectIdentifier(List<String> gbifProjectIdentifier) {
414    this.gbifProjectIdentifier = gbifProjectIdentifier;
415  }
416
417  public List<String> getGbifProgramme() {
418    return gbifProgramme;
419  }
420
421  public void setGbifProgramme(List<String> gbifProgramme) {
422    this.gbifProgramme = gbifProgramme;
423  }
424}