LIBSBML_EXTERN void copySBaseAttributes(const SBase& source,SBase& target) { target.setMetaId(source.getMetaId()); // target.setId(source.getId()); // target.setName(source.getName()); target.setSBMLDocument(const_cast<SBMLDocument*>(source.getSBMLDocument())); target.setSBOTerm(source.getSBOTerm()); if(source.isSetAnnotation()) { target.setAnnotation(new XMLNode(*const_cast<SBase&>(source).getAnnotation())); } if(source.isSetNotes()) { target.setNotes(new XMLNode(*const_cast<SBase&>(source).getNotes())); } if (source.getSBMLNamespaces()) { target.setSBMLNamespaces(source.getSBMLNamespaces()); } List* pCVTerms=target.getCVTerms(); // first delete all the old CVTerms if(pCVTerms) { while(pCVTerms->getSize()>0) { CVTerm* object=static_cast<CVTerm*>(pCVTerms->remove(0)); delete object; } // add the cloned CVTerms from source if(source.getCVTerms()!=NULL) { unsigned int i=0,iMax=source.getCVTerms()->getSize(); while(i<iMax) { target.addCVTerm(static_cast<CVTerm*>(static_cast<CVTerm*>(source.getCVTerms()->get(i))->clone())); ++i; } } } }