public class SBMLRuleConverter 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 reorders assignments in a model. Specifically, it sorts
the list of assignment rules (i.e., the AssignmentRule
objects contained
in the ListOfAssignmentRules within the Model
object) and the initial
assignments (i.e., the InitialAssignment
objects contained in the
ListOfInitialAssignments
) such that, within each set, assignments that
depend on prior values are placed after the values are set. For
example, if there is an assignment rule stating a = b + 1, and
another rule stating b = 3, the list of rules is sorted and the
rules are arranged so that the rule for b = 3 appears before
the rule for a = b + 1. Similarly, if dependencies of this
sort exist in the list of initial assignments in the model, the initial
assignments are sorted as well.
Beginning with SBML Level 2, assignment rules have no ordering required&mdashthe order in which the rules appear in an SBML file has no significance. Software tools, however, may need to reorder assignments for purposes of evaluating them. For example, for simulators that use time integration methods, it would be a good idea to reorder assignment rules such as the following,
b = a + 10 seconds
a = time
so that the evaluation of the rules is independent of integrator step sizes. (This is due to the fact that, in this case, the order in which the rules are evaluated changes the result.) This converter can be used to reorder the SBML objects regardless of whether the input file contained them in the desired order. Here is a code fragment to illustrate how to do that:
ConversionProperties
props props.addOption('sortRules', true, 'sort rules')SBMLConverter
converter converter.setProperties(&props) converter.setDocument(&doc) converter.convert()
SBMLFunctionDefinitionConverter
,
SBMLInitialAssignmentConverter
,
SBMLLevelVersionConverter
,
SBMLStripPackageConverter
,
SBMLUnitsConverter
Constructor and Description |
---|
SBMLRuleConverter()
Creates a new
SBMLLevelVersionConverter object. |
SBMLRuleConverter(SBMLRuleConverter obj)
Copy constructor creates a copy of an
SBMLLevelVersionConverter
object. |
Modifier and Type | Method and Description |
---|---|
SBMLConverter |
cloneObject()
Creates and returns a deep copy of this
SBMLLevelVersionConverter
object. |
int |
convert()
Perform the conversion.
|
void |
delete()
Explicitly deletes the underlying native object.
|
ConversionProperties |
getDefaultProperties()
Returns the default properties of this converter.
|
static void |
init()   |
boolean |
matchesProperties(ConversionProperties props)
Returns
true if this converter object's properties match the given
properties. |
getDocument, getProperties, getTargetNamespaces, setDocument, setProperties, swigReleaseOwnership, swigTakeOwnership
public SBMLRuleConverter()
SBMLLevelVersionConverter
object.public SBMLRuleConverter(SBMLRuleConverter obj)
SBMLLevelVersionConverter
object.
obj
- the SBMLLevelVersionConverter
object to copy.public SBMLConverter cloneObject()
SBMLLevelVersionConverter
object.
cloneObject
 in class SBMLConverter
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 doc)
and
with the configuration options set by
SBMLConverter.setProperties(ConversionProperties props)
.
convert
 in class SBMLConverter
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 SBMLRuleConverter.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 SBMLRuleConverter.delete()
themselves.
delete
 in class SBMLConverter
public 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 SBMLConverter
ConversionProperties
object describing the default properties
for this converter.SBMLConverter.setProperties(ConversionProperties props)
,
SBMLConverter.matchesProperties(ConversionProperties props)
public static void init()
public 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 SBMLLevelVersionConverter
object to find out if the object's
property values match the given ones. This method is also used by
SBMLConverterRegistry.getConverterFor(ConversionProperties props)
to search across all registered converters for one matching particular
properties.
matchesProperties
 in class SBMLConverter
props
- the properties to match.
true
if this converter's properties match, false
otherwise.