Fields:
Author1: First, Last, first@last
Author2: institutional_auth
Editor 1: First2, Last2
Other: First3, Last3, first3@last
Document Type: (Book, Book Section, Conference Presentation, Journal Article, Other, Thesis)
Year: 1234
ID: 123456
Description: description
Book Title: bookTitle
DOI: doi
Edition: edition
ISBN: isbn
ISSN: issn
Journal Name: journalName
Journal #: journalNumber
Number of Pages: 10
Number of Volumes: 2
Publisher: publisher
Publisher Location: publisherLocation
Series Name: seriesName
Series #: seriesNumber
EndPage: endPage
StartPage: startPage
Volume: volume
Please provide citations for each of the document types in the following form:
Title: (combination of all the title fields with punctuation)
Document Type: Book
Source: (rest of citation)
DOI:
URL:
JSW propsed:
Title: (doesn't appear to map to one of the listed Fields above...)
Author/Editor: [Author1], [Author2], [Editor 1] (ed.), etc.
Source: see below
Document Type: [Document Type]
DOI: doi
URL: (pulled from document view page?)
Depending on Document Type, Source could read:
for Book/Report - [Publisher Location]: [Publisher]. [(Year)]
for Book Chapter/Section - In [Book Title]. Pp. [StartPage]-[EndPage]. [Publisher Location]: [Publisher]. [(Year)]
for Journal Articlem - [Journal Name]. [volume(Journal #)]:[StartPage]-[EndPage]. [(Year)]
for Thesis/Dissertation - "Dissertation or thesis". [Publisher Location (university?)]: [Publisher]. [(Year)]
for conference Presentation - "Presented at:" [full name of meeting ???]. [(Year)]
for Other - [Year]
@JSONTransient
@Override
public String getFormattedTitleInfo() {
StringBuilder sb = new StringBuilder();
appendIfNotBlank(sb, getTitle(), "", "");
appendIfNotBlank(sb, getEdition(), ",", "");
return sb.toString();
}
// FIXME: ADD IS?N
@JSONTransient
@Override
public String getFormattedSourceInformation() {
StringBuilder sb = new StringBuilder();
switch (getDocumentType()) {
case BOOK:
appendIfNotBlank(sb, getPublisherLocation(), "", "");
appendIfNotBlank(sb, getPublisherName(), ":", "");
break;
case BOOK_SECTION:
appendIfNotBlank(sb, getBookTitle(), "", "In ");
appendIfNotBlank(sb, getPageRange(), ".", "Pp. ");
appendIfNotBlank(sb, getPublisherLocation(), ".", "");
appendIfNotBlank(sb, getPublisherName(), ":", "");
break;
case CONFERENCE_PRESENTATION:
appendIfNotBlank(sb, getPublisherName(), "", "Presented at ");
appendIfNotBlank(sb, getPublisherLocation(), ",", "");
break;
case JOURNAL_ARTICLE:
appendIfNotBlank(sb, getJournalName(), "", "");
if (StringUtils.isNotBlank(getJournalNumber()) || StringUtils.isNotBlank(getVolume())) {
sb.append(".");
}
appendIfNotBlank(sb, getVolume(), "", "");
appendIfNotBlank(sb, getJournalNumber(), "", "");
appendIfNotBlank(sb, getPageRange(), ":", "");
break;
case OTHER:
break;
case THESIS:
String degreetext = "";
if (getDegree() != null) {
degreetext = getDegree().getLabel();
}
appendIfNotBlank(sb, degreetext + ".", "", "");
appendIfNotBlank(sb, getPublisherName(), "", "");
appendIfNotBlank(sb, getPublisherLocation(), ",", "");
break;
}
if (getDate() != null && getDate() != -1) {
appendIfNotBlank(sb, getDate().toString(), ".", "");
}
return sb.toString();
}