/// <summary>
/// The function actually doing the transforming. This function is called
/// once for each SBase element in the model.
/// </summary>
/// <param name="element">the current element</param>
/// <returns>status code</returns>
public override int transform(SBase element)
{
// return in case we don't have a valid element
if (element == null || element.getTypeCode() == libsbml.SBML_LOCAL_PARAMETER)
return libsbml.LIBSBML_OPERATION_SUCCESS;
// or if there is nothing to do
if (!element.isSetName() || element.getId() == element.getName())
return libsbml.LIBSBML_OPERATION_SUCCESS;
// find the new id
string newId = getValidIdForName(element.getName());
// set it
element.setId(newId);
// remember it
existingIds.Add(newId);
return libsbml.LIBSBML_OPERATION_SUCCESS;
}