private Publication createUnassignedPublication(Bibref bibRef, Experiment exp) {
String pubId = PublicationUtils.nextUnassignedId(IntactContext.getCurrentInstance());
Publication publication = (Publication) ConversionCache.getElement("pub:"+pubId);
if (publication != null) {
return publication;
}
publication = new Publication(getInstitution(), pubId);
CvDatabase pubmed = CvObjectUtils.createCvObject(getInstitution(), CvDatabase.class, CvDatabase.PUBMED_MI_REF, CvDatabase.PUBMED);
CvXrefQualifier primary = CvObjectUtils.createCvObject(getInstitution(), CvXrefQualifier.class, CvXrefQualifier.PRIMARY_REFERENCE_MI_REF, CvXrefQualifier.PRIMARY_REFERENCE);
publication.addXref(new PublicationXref(getInstitution(), pubmed, pubId, primary));
exp.addXref(new ExperimentXref(getInstitution(), pubmed, pubId, primary));
if (bibRef != null){
IntactConverterUtils.populateXref(bibRef.getXref(), publication, this.publicationXrefConverter);
IntactConverterUtils.populateAnnotations(bibRef, publication, getInstitution(), this.annotationConverter);
}
IntactContext.getCurrentInstance().getLifecycleManager().getStartStatus().create(publication, "created by xml import");
ConversionCache.putElement("pub:"+pubId, publication);
return publication;
}