package org.nextprot.api.core.domain.publication; import org.jsondoc.core.annotation.ApiObjectField; import org.nextprot.api.core.domain.CvJournal; import org.nextprot.api.core.domain.PublicationCvJournal; import java.io.Serializable; public class JournalResourceLocator extends BookResourceLocator implements Serializable { private static final long serialVersionUID = 0L; private CvJournal journal; @ApiObjectField(description = "The journal volume") private String volume; @ApiObjectField(description = "The journal issue") private String issue; public boolean hasJournalId() { return journal.hasJournalId(); } /** * @return journal id or -1 if not exist */ public long getJournalId() { if (journal.hasJournalId()) return journal.getJournalId(); return -1; } public String getAbbrev() { return journal.getAbbrev(); } public String getMedAbbrev() { return journal.getMedAbbrev(); } public String getNLMid() { return journal.getNLMid(); } public boolean hasPublicationId() { return journal instanceof PublicationCvJournal; } /** * @return publication id or -1 if not exist */ public long getPublicationId() { if (journal instanceof PublicationCvJournal) return ((PublicationCvJournal)journal).getPublicationId(); return -1; } public String getVolume() { return volume; } public void setVolume(String volume) { this.volume = volume; } public String getIssue() { return issue; } public void setIssue(String issue) { this.issue = issue; } PublicationType getPublicationType() { return PublicationType.ARTICLE; } public void setJournal(CvJournal journal) { this.journal = journal; this.setName(journal.getName()); } }