code: private ControlledVocabulary convertAndAddVocabulary(openControlledVocabulary value,
  			Level2Element parent, Model newModel, PropertyEditor newEditor)
  	{
  		String id = ((BioPAXElement) value).getUri();
  
  		if (!newModel.containsID(id)) {
  			if (newEditor != null) {
  				newModel.addNew(newEditor.getRange(), id);
  				// copy properties
  				traverse(value, newModel);
  			} else {
  				log.warn("Cannot Convert CV: " + value + " (for prop.: " + newEditor + ")");
  			}
  		} 
  		
  		return (ControlledVocabulary) newModel.getByID(id);
  	}
docs: /*
  Creates a specific ControlledVocabulary subclass
  and adds to the new model