libSBML
5.8.0

org.sbml.libsbml
Class SBMLRuleConverter

java.lang.Object
  extended by org.sbml.libsbml.SBMLConverter
      extended by org.sbml.libsbml.SBMLRuleConverter

public class SBMLRuleConverter
extends SBMLConverter

SBML converter for reordering rules and assignments in a model.

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—the 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(); 

See Also:
SBMLFunctionDefinitionConverter, SBMLInitialAssignmentConverter, SBMLLevelVersionConverter, SBMLStripPackageConverter, SBMLUnitsConverter
Note:
The two sets of assignments (list of assignment rules on the one hand, and list of initial assignments on the other hand) are handled independently. In an SBML model, these entities are treated differently and no amount of sorting can deal with inter-dependencies between assignments of the two kinds.


Constructor Summary
SBMLRuleConverter()
          Creates a new SBMLLevelVersionConverter object.
SBMLRuleConverter(SBMLRuleConverter obj)
          Copy constructor; creates a copy of an SBMLLevelVersionConverter object.
 
Method Summary
 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.
 
Methods inherited from class org.sbml.libsbml.SBMLConverter
getDocument, getProperties, getTargetNamespaces, setDocument, setProperties, swigReleaseOwnership, swigTakeOwnership
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SBMLRuleConverter

public SBMLRuleConverter()
Creates a new SBMLLevelVersionConverter object.


SBMLRuleConverter

public SBMLRuleConverter(SBMLRuleConverter obj)
Copy constructor; creates a copy of an SBMLLevelVersionConverter object.

Parameters:
obj - the SBMLLevelVersionConverter object to copy.
Method Detail

delete

public void delete()
Explicitly deletes the underlying native object.

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.

Overrides:
delete in class SBMLConverter

init

public static void init()

cloneObject

public SBMLConverter cloneObject()
Creates and returns a deep copy of this SBMLLevelVersionConverter object.

Overrides:
cloneObject in class SBMLConverter
Returns:
a (deep) copy of this converter.

matchesProperties

public boolean matchesProperties(ConversionProperties props)
Returns 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.

Overrides:
matchesProperties in class SBMLConverter
Parameters:
props - the properties to match.

Returns:
true if this converter's properties match, false otherwise.

convert

public int convert()
Perform the conversion.

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).

Overrides:
convert in class SBMLConverter
Returns:
integer value indicating the success/failure of the operation. The possible values are:

getDefaultProperties

public ConversionProperties getDefaultProperties()
Returns the default properties of this converter.

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.

Overrides:
getDefaultProperties in class SBMLConverter
Returns:
the ConversionProperties object describing the default properties for this converter.
See Also:
SBMLConverter.setProperties(ConversionProperties props), SBMLConverter.matchesProperties(ConversionProperties props)

libSBML
5.8.0


LibSBML, an application programming interface (API) library for SBML.