public class SBMLIdConverter extends SBMLConverter
This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. It is a class used in the implementation of extra functionality provided by libSBML.
This converter translates all instances of a given identifier (i.e., SBML object 'id'
attribute value) of type 'SId' in a Model to another identifier. It does this based on a list of source
identifiers, translating each one to its corresponding replacement value
in a list of replacement identifiers. It also updates all references to
the identifiers so replaced. (More technically, it replaces all values
known as type SIdRef in the SBML Level 3 specifications.)
This converter only searches the global SId namespace for the Model child of the
SBMLDocument. It does not replace any IDs or SIdRefs for LocalParameters, nor
does it replace any UnitSIds or UnitSIdRefs. It likewise does not replace any IDs
in a new namespace introduced by a package, such as the PortSId namespace
from the Hierarchical Model Composition package, nor any Model objects that are
not the direct child of the SBMLDocument, such as the ModelDefinitions from
the Hierarchical Model Composition package.
If, however, a package introduces a new element with an 'id' attribute of type SId, any attribute of type SIdRef, or child of type SIdRef (such as a new Math child of a package element), those IDs will be replaced if they match a source identifier.
SBMLIdConverter
SBMLIdConverter is enabled by creating a ConversionProperties object with
the option 'renameSIds', and passing this properties object to
SBMLDocument.convert(ConversionProperties).
The converter accepts two options, and both must
be set or else no conversion is performed:
'currentIds': A comma-separated list of identifiers to replace.
'newIds': A comma-separated list of identifiers to use as the
replacements. The values should correspond one-to-one with the identifiers
in 'currentIds' that should be replaced.
The use of all the converters follows a similar approach. First, one
creates a ConversionProperties object and calls
ConversionProperties.addOption(ConversionOption)
on this object with one arguments: a text string that identifies the desired
converter. (The text string is specific to each converter consult the
documentation for a given converter to find out how it should be enabled.)
Next, for some converters, the caller can optionally set some
converter-specific properties using additional calls to
ConversionProperties.addOption(ConversionOption).
Many converters provide the ability to
configure their behavior to some extent this is realized through the use
of properties that offer different options. The default property values
for each converter can be interrogated using the method
SBMLConverter.getDefaultProperties() on the converter class in question .
Finally, the caller should invoke the method
SBMLDocument.convert(ConversionProperties)
with the ConversionProperties object as an argument.
The following code fragment illustrates an example using
SBMLReactionConverter, which is invoked using the option string
'replaceReactions':
ConversionPropertiesprops = newConversionProperties() if (props != null) { props.addOption('replaceReactions') } else { // Deal with error. }
In the case of SBMLReactionConverter, there are no options to affect
its behavior, so the next step is simply to invoke the converter on
an SBMLDocument object. Continuing the example code:
// Assume that the variable 'document' has been set to an SBMLDocument object.
status = document.convert(config)
if (status != libsbml.LIBSBML_OPERATION_SUCCESS)
{
// Handle error somehow.
System.out.println('Error: conversion failed due to the following:')
document.printErrors()
}
Here is an example of using a converter that offers an option. The
following code invokes SBMLStripPackageConverter to remove the
SBML Level 3 Layout package from a model. It sets the name
of the package to be removed by adding a value for the option named
'package' defined by that converter:
ConversionPropertiesconfig = newConversionProperties() if (config != None) { config.addOption('stripPackage') config.addOption('package', 'layout') status = document.convert(config) if (status != LIBSBML_OPERATION_SUCCESS) { // Handle error somehow. System.out.println('Error: unable to strip theLayoutpackage') document.printErrors() } } else { // Handle error somehow. System.out.println('Error: unable to createConversionPropertiesobject') }
LibSBML provides a number of built-in converters by convention, their names end in Converter. The following are the built-in converters provided by libSBML 5.12.0 :
CobraToFbcConverter
CompFlatteningConverter
FbcToCobraConverter
FbcV1ToV2Converter
FbcV2ToV1Converter
SBMLFunctionDefinitionConverter
SBMLIdConverter
SBMLInferUnitsConverter
SBMLInitialAssignmentConverter
SBMLLevel1Version1Converter
SBMLLevelVersionConverter
SBMLLocalParameterConverter
SBMLReactionConverter
SBMLRuleConverter
SBMLStripPackageConverter
SBMLUnitsConverter
| Constructor and Description |
|---|
SBMLIdConverter()
Creates a new
SBMLIdConverter object. |
SBMLIdConverter(SBMLIdConverter obj)
Copy constructor creates a copy of an
SBMLIdConverter
object. |
| Modifier and Type | Method and Description |
|---|---|
SBMLConverter |
cloneObject()
Creates and returns a deep copy of this
SBMLIdConverter
object. |
int |
convert()
Perform the conversion.
|
void |
delete()
Explicitly deletes the underlying native object.
|
ConversionProperties |
getDefaultProperties()
Returns the default properties of this converter.
|
boolean |
matchesProperties(ConversionProperties props)
Returns
true if this converter object's properties match the given
properties. |
getDocument, getName, getProperties, getTargetNamespaces, setDocument, setPropertiespublic SBMLIdConverter()
SBMLIdConverter object.public SBMLIdConverter(SBMLIdConverter obj)
SBMLIdConverter
object.
obj - the SBMLIdConverter object to copy.public void delete()
In general, application software will not need to call this method directly. The Java language binding for libSBML is implemented as a language wrapper that provides a Java interface to libSBML's underlying C++/C code. Some of the Java methods return objects that are linked to objects created not by Java code, but by C++ code. The Java objects wrapped around them will be deleted when the garbage collector invokes the corresponding C++ finalize() methods for the objects. The finalize() methods in turn call the SBMLIdConverter.delete() method on the libSBML object.
This method is exposed in case calling programs want to ensure that the underlying object is freed immediately, and not at some arbitrary time determined by the Java garbage collector. In normal usage, callers do not need to invoke SBMLIdConverter.delete() themselves.
delete in class SBMLConverterpublic SBMLConverter cloneObject()
SBMLIdConverter
object.
cloneObject in class SBMLConverterpublic boolean matchesProperties(ConversionProperties props)
true if this converter object's properties match the given
properties.
A typical use of this method involves creating a ConversionProperties
object, setting the options desired, and then calling this method on
an SBMLIdConverter object to find out if the object's
property values match the given ones. This method is also used by
SBMLConverterRegistry.getConverterFor(ConversionProperties)
to search across all registered converters for one matching particular
properties.
matchesProperties in class SBMLConverterprops - the properties to match.
true if this converter's properties match, false
otherwise.public int convert()
This method causes the converter to do the actual conversion work,
that is, to convert the SBMLDocument object set by
SBMLConverter.setDocument(SBMLDocument) and
with the configuration options set by
SBMLConverter.setProperties(ConversionProperties).
convert in class SBMLConverterpublic ConversionProperties getDefaultProperties()
A given converter exposes one or more properties that can be adjusted in order to influence the behavior of the converter. This method returns the default property settings for this converter. It is meant to be called in order to discover all the settings for the converter object.
getDefaultProperties in class SBMLConverterConversionProperties object describing the default properties
for this converter.SBMLConverter.setProperties(ConversionProperties),
SBMLConverter.matchesProperties(ConversionProperties)