final CommonModelFactory af = CommonModelFactory.getInstance();
// handle citation name (always exists)
CitationNameAnnotationDefinition cnad =
new CitationNameAnnotationDefinition();
adt.addAnnotationDefinition(new TableAnnotationDefinition(
cnad), 0);
annotationMap.put(
CitationNameAnnotationDefinition.ANNOTATION_DEFINITION_ID,
af.createAnnotation(citation.getName(), cnad));
// handle citation id (if not null)
if (citation.getReference() != null) {
CitationReferenceAnnotationDefinition ciad =
new CitationReferenceAnnotationDefinition();
adt.addAnnotationDefinition(new TableAnnotationDefinition(ciad),
0);
annotationMap
.put(CitationReferenceAnnotationDefinition.ANNOTATION_DEFINITION_ID,
af.createAnnotation(citation.getReference(), ciad));
}
// handle citation comment (if not null)
if (citation.getComment() != null) {
CitationCommentAnnotationDefinition cdad =
new CitationCommentAnnotationDefinition();
adt.addAnnotationDefinition(new TableAnnotationDefinition(cdad),
0);
annotationMap
.put(CitationCommentAnnotationDefinition.ANNOTATION_DEFINITION_ID,
af.createAnnotation(citation.getComment(), cdad));
}
// handle citation date (if not null)
if (citation.getDate() != null) {
CitationDateAnnotationDefinition cdtad =
new CitationDateAnnotationDefinition();
adt.addAnnotationDefinition(
new TableAnnotationDefinition(cdtad), 0);
annotationMap.put(
CitationDateAnnotationDefinition.ANNOTATION_DEFINITION_ID,
af.createAnnotation(
datef.format(citation.getDate().getTime()),
cdtad));
}
// handle citation authors (if not null)
if (citation.getAuthors() != null) {
CitationAuthorsAnnotationDefinition cuad =
new CitationAuthorsAnnotationDefinition();
adt.addAnnotationDefinition(new TableAnnotationDefinition(cuad),
0);
annotationMap
.put(CitationAuthorsAnnotationDefinition.ANNOTATION_DEFINITION_ID,
af.createAnnotation(PackUtils.packValues(citation
.getAuthors()), cuad));
}
// handle citation type (if not null)
if (citation.getType() != null) {
CitationTypeAnnotationDefinition ctad =
new CitationTypeAnnotationDefinition();
adt.addAnnotationDefinition(new TableAnnotationDefinition(ctad),
0);
annotationMap.put(
CitationTypeAnnotationDefinition.ANNOTATION_DEFINITION_ID,
af.createAnnotation(citation.getType().getDisplayValue(),
ctad));