}
@Transient
public List<Annotation> getAnnotations() {
List<Annotation> annotations = super.getAnnotations();
annotations.add(new Annotation(Constants.DCTermsURI,"dcterms:bibliographicCitation",getAuthorsCitationStyleWithoutHtml()));
annotations.add(new Annotation(Constants.DCURI,"dc:title",getTitle()));
annotations.add(new Annotation(Constants.DCURI,"dc:creator",getAuthorsAsString()));
for ( Person person : getAuthors() ) {
if ( null != person ) {
String personName = person.getFullNameCitationStyle();
annotations.add(new Annotation(Constants.DCURI,"dc:contributor",personName));
}
}
try {
if ( null != getPublishYear() ) {
annotations.add(new Annotation(Constants.PrismURI,"prism:publicationDate",getPublishYear().toString()));
}
if ( null != getDoi() ) {
annotations.add(new Annotation(Constants.PrismURI,"prism:doi",getDoi()));
}
if ( null != getPages() ) {
String[] pages = getPages().split("\\-");
if ( pages.length == 2 ) {
annotations.add(new Annotation(Constants.PrismURI,"prism:startingPage",pages[0]));
annotations.add(new Annotation(Constants.PrismURI,"prism:endingPage",pages[1]));
annotations.add(new Annotation(Constants.PrismURI,"prism:pageRange",getPages()));
}
}
if ( null != getKeywords() ) {
String[] keywords = getKeywords().split(", ");
for ( int i = 0; i < keywords.length; i++ ) {
annotations.add(new Annotation(Constants.DCURI,"dc:subject",keywords[i]));
}
}
if ( this instanceof ArticleCitation ) {
ArticleCitation ac = (ArticleCitation)this;
String journal = ac.getJournal();
if ( null != journal ) {
annotations.add(new Annotation(Constants.PrismURI,"prism:publicationName",journal));
annotations.add(new Annotation(Constants.DCURI,"dc:publisher",journal));
}
if ( null != ac.getVolume() ) {
annotations.add(new Annotation(Constants.PrismURI,"prism:volume",ac.getVolume()));
}
if ( null != ac.getIssue() ) {
annotations.add(new Annotation(Constants.PrismURI,"prism:number",ac.getIssue()));
}
}
} catch ( Exception e ) {
e.printStackTrace();
}