protected Annotation toAnnotation( String cvTopic, String annotation ) {
Institution owner = IntactContext.getCurrentInstance().getInstitution();
CvTopic topic = getCvObjectByLabel( CvTopic.class, cvTopic );
if ( topic == null ) {
if ( CvTopic.URL.equalsIgnoreCase( cvTopic ) ) {
topic = CvObjectUtils.createCvObject( owner, CvTopic.class, CvTopic.URL_MI_REF, CvTopic.URL );
} else if ( CvTopic.SEARCH_URL.equalsIgnoreCase( cvTopic ) ) {
topic = CvObjectUtils.createCvObject( owner, CvTopic.class, CvTopic.SEARCH_URL_MI_REF, CvTopic.SEARCH_URL );
} else if ( CvTopic.XREF_VALIDATION_REGEXP.equalsIgnoreCase( cvTopic ) ) {
topic = CvObjectUtils.createCvObject( owner, CvTopic.class, CvTopic.XREF_VALIDATION_REGEXP_MI_REF, CvTopic.XREF_VALIDATION_REGEXP );
} else if ( CvTopic.COMMENT.equalsIgnoreCase( cvTopic ) ) {
topic = CvObjectUtils.createCvObject( owner, CvTopic.class, CvTopic.COMMENT_MI_REF, CvTopic.COMMENT );
} else if ( CvTopic.OBSOLETE.equalsIgnoreCase( cvTopic ) ) {
topic = CvObjectUtils.createCvObject( owner, CvTopic.class, CvTopic.OBSOLETE_MI_REF, CvTopic.OBSOLETE );
topic.setFullName( CvTopic.OBSOLETE );
} else {
log.error( "Unexpected topic found on annotation: " + cvTopic );
return null;
}
}
if ( log.isTraceEnabled() )
log.debug( "Returning from toAnnotation: owner: " + owner + " topic: " + topic + " annotation " + annotation );
return new Annotation( owner, topic, annotation );
}