public class ListOfObjectives extends ListOf
Objective
objects.
The ListOfObjectives
is a container for the SBML extended Model
that lists all the possible Objective
elements in the model.
Unlike most other ListOf
subclasses in SBML, SBML Level 3 Flux Balance Constraints
Version 2 defines an additional required attribute on
ListOfObjectives: the 'activeObjective' attribute. This attribute is of
type SIdRef
and can only refer to the id of an existing
Objective
. This required attribute exists so that when multiple
Objective
's are included in a single model, the model will always be well
described i.e., there will be a single, primary objective function which
defines a single optimum and its associated solution space.
The various ListOf___ classes in SBML
are merely containers used for organizing the main components of an SBML
model. In libSBML's implementation, ListOf___
classes are derived from the
intermediate utility class ListOf
, which
is not defined by the SBML specifications but serves as a useful
programmatic construct. ListOf
is itself is in turn derived from SBase
,
which provides all of the various ListOf___
classes with common features
defined by the SBML specification, such as 'metaid' attributes and
annotations.
The relationship between the lists and the rest of an SBML model is illustrated by the following (for SBML Level 2 Version 4):
SBML Level 3 Version 1 has essentially the same structure as Level 2 Version 4, depicted above, but SBML Level 3 Version 2 allows containers to contain zero or more of the relevant object, instead of requiring at least one. As such, libsbml will write out an otherwise-empty ListOf___ element that has any optional attribute set (such as 'id' or 'metaid'), that has an optional child (such as a 'notes' or 'annotation'), or that has attributes or children set from any SBML Level 3 package, whether or not the ListOf___ has any other children.
Readers may wonder about the motivations for using the ListOf___
containers in SBML. A simpler approach in XML might be to place the
components all directly at the top level of the model definition. The
choice made in SBML is to group them within XML elements named after
ListOfClassname, in part because it helps organize the
components. More importantly, the fact that the container classes are
derived from SBase
means that software tools can add information about
the lists themselves into each list container's 'annotation'.
ListOfFunctionDefinitions
,
ListOfUnitDefinitions
,
ListOfCompartmentTypes
,
ListOfSpeciesTypes
,
ListOfCompartments
,
ListOfSpecies
,
ListOfParameters
,
ListOfInitialAssignments
,
ListOfRules
,
ListOfConstraints
,
ListOfReactions
,
,
GeneProduct
,
FbcModelPlugin
ListOfObjectives
is
an additional attribute that is not present on typical ListOf
classes.
The introduction of an attribute on ListOf
is perfectly legal in SBML, but
uncommon, and software developers may have grown accustomed to ListOf
classes all having the same attributes and no others. We are belaboring
this point so that developers are more likely to notice the presence of an
additional attribute on ListOfObjectives
.
Constructor and Description |
---|
ListOfObjectives()
Creates a new
ListOfObjectives with the given SBML Level, Version, and
&ldquofbc&rdquopackage version. |
ListOfObjectives(FbcPkgNamespaces fbcns)
Creates a new
ListOfObjectives with the given FbcPkgNamespaces object. |
ListOfObjectives(ListOfObjectives other)
Copy Constructor.
|
ListOfObjectives(long level)
Creates a new
ListOfObjectives with the given SBML Level, Version, and
&ldquofbc&rdquopackage version. |
ListOfObjectives(long level,
long version)
Creates a new
ListOfObjectives with the given SBML Level, Version, and
&ldquofbc&rdquopackage version. |
ListOfObjectives(long level,
long version,
long pkgVersion)
Creates a new
ListOfObjectives with the given SBML Level, Version, and
&ldquofbc&rdquopackage version. |
Modifier and Type | Method and Description |
---|---|
int |
addObjective(Objective o)
Adds a copy the given
Objective to this ListOfObjectives . |
int |
appendFrom(ListOf list)
Adds a clone of all items in the provided
ListOf to this object. |
ListOfObjectives |
cloneObject()
Creates and returns a deep copy of this
ListOfObjectives object. |
Objective |
createObjective()
Creates a new
Objective object, adds it to the
ListOfObjectives and returns the Objective object created. |
void |
delete()
Explicitly deletes the underlying native object.
|
Objective |
get(long n)
Get an
Objective from the ListOfObjectives . |
Objective |
get(java.lang.String sid)
Get an
Objective from the ListOfObjectives based on its identifier. |
java.lang.String |
getActiveObjective()
Returns the value of the 'activeObjective' attribute of this
ListOfObjectives . |
java.lang.String |
getElementName()
Returns the XML element name of this object.
|
int |
getItemTypeCode()
Returns the libSBML type code for the objects contained in this
ListOf . |
long |
getNumObjectives()
Get the number of
Objective objects in this ListOfObjectives . |
int |
getTypeCode()
Returns the libSBML type code for this SBML object.
|
boolean |
isSetActiveObjective()
Predicate returning
true if this ListOfObjective's 'activeObjective'
attribute is set. |
Objective |
remove(long n)
Removes the nth
Objective from this ListOfObjectives
and returns a pointer to it. |
Objective |
remove(java.lang.String sid)
Removes the
Objective from this ListOfObjectives with the given identifier
and returns a pointer to it. |
void |
renameSIdRefs(java.lang.String oldid,
java.lang.String newid)
Replaces all uses of a given
SIdRef type attribute value with another
value. |
int |
setActiveObjective(java.lang.String activeObjective)
Sets the value of the 'activeObjective' attribute of this
ListOfObjectives . |
int |
unsetActiveObjective()
Unsets the value of the 'activeObjective' attribute of this
ListOfObjectives . |
append, appendAndOwn, clear, clear, connectToChild, getElementByMetaId, getElementBySId, insert, insertAndOwn, removeFromParentAndDelete, size
addCVTerm, addCVTerm, appendAnnotation, appendAnnotation, appendNotes, appendNotes, deleteDisabledPlugins, deleteDisabledPlugins, disablePackage, enablePackage, equals, getAncestorOfType, getAncestorOfType, getAnnotation, getAnnotationString, getColumn, getCVTerm, getCVTerms, getDisabledPlugin, getId, getIdAttribute, getLevel, getLine, getListOfAllElements, getListOfAllElements, getListOfAllElementsFromPlugins, getListOfAllElementsFromPlugins, getMetaId, getModel, getModelHistory, getName, getNamespaces, getNotes, getNotesString, getNumCVTerms, getNumDisabledPlugins, getNumPlugins, getObjectVersion, getPackageName, getPackageVersion, getParentSBMLObject, getPlugin, getPlugin, getPrefix, getResourceBiologicalQualifier, getResourceModelQualifier, getSBMLDocument, getSBOTerm, getSBOTermAsURL, getSBOTermID, getURI, getVersion, hashCode, hasValidLevelVersionNamespaceCombination, isPackageEnabled, isPackageURIEnabled, isPkgEnabled, isPkgURIEnabled, isSetAnnotation, isSetId, isSetIdAttribute, isSetMetaId, isSetModelHistory, isSetName, isSetNotes, isSetSBOTerm, isSetUserData, matchesRequiredSBMLNamespacesForAddition, matchesSBMLNamespaces, removeTopLevelAnnotationElement, removeTopLevelAnnotationElement, removeTopLevelAnnotationElement, renameMetaIdRefs, renameUnitSIdRefs, replaceTopLevelAnnotationElement, replaceTopLevelAnnotationElement, setAnnotation, setAnnotation, setId, setIdAttribute, setMetaId, setModelHistory, setName, setNamespaces, setNotes, setNotes, setNotes, setSBOTerm, setSBOTerm, toSBML, toXMLNode, unsetAnnotation, unsetCVTerms, unsetId, unsetIdAttribute, unsetMetaId, unsetModelHistory, unsetName, unsetNotes, unsetSBOTerm, unsetUserData
public ListOfObjectives(long level, long version, long pkgVersion) throws SBMLConstructorException
ListOfObjectives
with the given SBML Level, Version, and
&ldquofbc&rdquopackage version.
level
- a long integer, the SBML Level to assign to this
ListOfObjectives
.
version
- a long integer, the SBML Version to assign to this
ListOfObjectives
.
pkgVersion
- a long integer, the SBML Fbc Version to assign to
this ListOfObjectives
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfObjectives(long level, long version) throws SBMLConstructorException
ListOfObjectives
with the given SBML Level, Version, and
&ldquofbc&rdquopackage version.
level
- a long integer, the SBML Level to assign to this
ListOfObjectives
.
version
- a long integer, the SBML Version to assign to this
ListOfObjectives
.
pkgVersion
- a long integer, the SBML Fbc Version to assign to
this ListOfObjectives
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfObjectives(long level) throws SBMLConstructorException
ListOfObjectives
with the given SBML Level, Version, and
&ldquofbc&rdquopackage version.
level
- a long integer, the SBML Level to assign to this
ListOfObjectives
.
version
- a long integer, the SBML Version to assign to this
ListOfObjectives
.
pkgVersion
- a long integer, the SBML Fbc Version to assign to
this ListOfObjectives
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfObjectives() throws SBMLConstructorException
ListOfObjectives
with the given SBML Level, Version, and
&ldquofbc&rdquopackage version.
level
- a long integer, the SBML Level to assign to this
ListOfObjectives
.
version
- a long integer, the SBML Version to assign to this
ListOfObjectives
.
pkgVersion
- a long integer, the SBML Fbc Version to assign to
this ListOfObjectives
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfObjectives(FbcPkgNamespaces fbcns) throws SBMLConstructorException
ListOfObjectives
with the given FbcPkgNamespaces
object.
The package namespaces object used in this constructor is derived from a
SBMLNamespaces
object, which encapsulates SBML Level/Version/namespaces
information. It is used to communicate the SBML Level, Version, and
package version and name information used in addition to SBML Level 3 Core. A
common approach to using libSBML's SBMLNamespaces
facilities is to create an
package namespace object somewhere in a program once, then hand that object
as needed to object constructors of that package that accept it as and
argument, such as this one.
fbcns
- the FbcPkgNamespaces
object.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfObjectives(ListOfObjectives other) throws SBMLConstructorException
other
- the instance to copy.SBMLConstructorException
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 ListOfObjectives.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 ListOfObjectives.delete()
themselves.
public ListOfObjectives cloneObject()
ListOfObjectives
object.
cloneObject
 in class ListOf
ListOfObjectives
object.public Objective get(long n)
Objective
from the ListOfObjectives
.
get
 in class ListOf
n
- the index number of the Objective
to get.
Objective
in this ListOfObjectives
.
ListOf.size()
public Objective get(java.lang.String sid)
Objective
from the ListOfObjectives
based on its identifier.
sid
- a string representing the identifier of the Objective
to get.
Objective
in this ListOfObjectives
with the given id or null if
no such Objective
exists.
ListOfObjectives.get(long n)
,
ListOf.size()
public int addObjective(Objective o)
Objective
to this ListOfObjectives
.
o
- the Objective
object to add.
public long getNumObjectives()
Objective
objects in this ListOfObjectives
.
Objective
objects in this ListOfObjectives
.public Objective createObjective()
Objective
object, adds it to the
ListOfObjectives
and returns the Objective
object created.
Objective
object instance.
ListOfObjectives.addObjective(Objective o)
public Objective remove(long n)
Objective
from this ListOfObjectives
and returns a pointer to it.
The caller owns the returned item and is responsible for deleting it.
remove
 in class ListOf
n
- the index of the Objective
to remove.
ListOf.size()
public Objective remove(java.lang.String sid)
Objective
from this ListOfObjectives
with the given identifier
and returns a pointer to it.
The caller owns the returned item and is responsible for deleting it.
If none of the items in this list have the identifier sid
, then
null
is returned.
public java.lang.String getElementName()
For ListOfObjectives
, the XML element name is always 'listOfObjectives'.
getElementName
 in class ListOf
'listOfObjectives'.
public boolean isSetActiveObjective()
true
if this ListOfObjective's 'activeObjective'
attribute is set.
true
if this ListOfObjective's 'activeObjective' attribute has been set,
otherwise false
is returned.public int setActiveObjective(java.lang.String activeObjective)
ListOfObjectives
.
public java.lang.String getActiveObjective()
ListOfObjectives
.
ListOfObjectives
.public int unsetActiveObjective()
ListOfObjectives
.
public int getTypeCode()
LibSBML attaches an identifying code to every kind of SBML object. These
are integer constants known as SBML type codes. The names of all
the codes begin with the characters SBML_
.
In the Java language interface for libSBML, the
type codes are defined as static integer constants in the interface class
libsbmlConstants
. Note that different Level 3
package plug-ins may use overlapping type codes to identify the package
to which a given object belongs, call the getPackageName()
method on the object.
getTypeCode
 in class ListOf
SBML_LIST_OF
(default).
ListOfObjectives.getElementName()
,
SBase.getPackageName()
public int getItemTypeCode()
ListOf
.
LibSBML attaches an identifying code to every kind of SBML object. These
are integer constants known as SBML type codes. The names of all
the codes begin with the characters SBML_
.
In the Java language interface for libSBML, the
type codes are defined as static integer constants in the interface class
libsbmlConstants
. Note that different Level 3
package plug-ins may use overlapping type codes to identify the package
to which a given object belongs, call the getPackageName()
method on the object.
getItemTypeCode
 in class ListOf
ListOf
instance: SBML_FBC_OBJECTIVE
(default).
ListOfObjectives.getElementName()
,
SBase.getPackageName()
public int appendFrom(ListOf list)
ListOf
to this object.
This means that when this ListOf
is destroyed, the original items will
not be destroyed. In addition, copy over the input ListOfObjectives
'
'activeObjective' attribute, if none is set for this element.
appendFrom
 in class ListOf
list
- a list of items to be added.
ListOf.append(SBase item)
public void renameSIdRefs(java.lang.String oldid, java.lang.String newid)
Replaces all uses of a given SIdRef
type attribute value with another
value.
In SBML, object identifiers are of a data type called SId
.
In SBML Level 3, an explicit data type called SIdRef
was
introduced for attribute values that refer to SId
values in
previous Levels of SBML, this data type did not exist and attributes were
simply described to as 'referring to an identifier', but the effective
data type was the same as SIdRef
in Level 3. These and
other methods of libSBML refer to the type SIdRef
for all
Levels of SBML, even if the corresponding SBML specification did not
explicitly name the data type.
This method works by looking at all attributes and (if appropriate)
mathematical formulas in MathML content, comparing the referenced
identifiers to the value of oldid
. If any matches are found, the
matching values are replaced with newid
. The method does not
descend into child elements.
renameSIdRefs
 in class SBase
oldid
- the old identifier.newid
- the new identifier.