public class SBase extends java.lang.Object
Most components in SBML are derived from a single abstract base type,
SBase
. In addition to serving as the parent class for most other
classes of objects in SBML, this base type is designed to allow a
modeler or a software package to attach arbitrary information to each
major element or list in an SBML model.
SBase
has an optional subelement called 'notes'. It is intended to
serve as a place for storing optional information intended to be seen by
humans. An example use of the 'notes' element would be to contain
formatted user comments about the model element in which the 'notes'
element is enclosed. There are certain conditions on the XHTML content
permitted inside the 'notes' element please consult the SBML
specification document corresponding to the SBML Level and Version
of your model for more information about the requirements for 'notes'
content.
SBase
has another optional subelement called 'annotation'. Whereas the
'notes' element described above is a container for content to be shown
directly to humans, the 'annotation' element is a container for optional
software-generated content not meant to be shown to humans. The
element's content type is XML type
'any', allowing essentially arbitrary data content. SBML places
only a few restrictions on the organization of the content these are
intended to help software tools read and write the data as well as help
reduce conflicts between annotations added by different tools. As is
the case with 'notes', it is important to refer to the SBML
specification document corresponding to the SBML Level and Version
of your model for more information about the requirements for
'annotation' content.
It is worth pointing out that the 'annotation' element in the definition
of SBase
exists in order that software developers may attach optional
application-specific data to the elements in an SBML model. However, it
is important that this facility not be misused. In particular, it is
critical that data essential to a model definition or that can
be encoded in existing SBML elements is not stored in
'annotation'. Parameter
values, functional dependencies between model
elements, etc., should not be recorded as annotations. It is crucial to
keep in mind the fact that data placed in annotations can be freely
ignored by software applications. If such data affects the
interpretation of a model, then software interoperability is greatly
impeded.
SBML Level 2 introduced an optional SBase
attribute named 'metaid' for
supporting metadata annotations using RDF (Resource Description Format). The
attribute value has the data type XML ID, the XML identifier
type, which means each 'metaid' value must be globally unique within an
SBML file. (Importantly, this uniqueness criterion applies across any
attribute with type XML
ID, not just the 'metaid' attribute used by SBML&mdashsomething to
be aware of if your application-specific XML content inside the
'annotation' subelement happens to use XML ID.) The 'metaid' value
serves to identify a model component for purposes such as referencing
that component from metadata placed within 'annotation' subelements.
Beginning with SBML Level 2 Version 3, SBase
also has an optional
attribute named 'sboTerm' for supporting the use of the Systems Biology
Ontology. In SBML proper, the data type of the attribute is a string of
the form 'SBO:NNNNNNN', where 'NNNNNNN' is a seven digit integer number
libSBML simplifies the representation by only storing the 'NNNNNNN'
integer portion. Thus, in libSBML, the 'sboTerm' attribute on SBase
has
data type int
, and SBO
identifiers are stored simply as integers.
(For convenience, SBase
offers methods for returning both the integer
form and a text-string form of the SBO
identifier.) SBO
terms are a
type of optional annotation, and each different class of SBML object
derived from SBase
imposes its own requirements about the values
permitted for 'sboTerm'. Please consult the SBML Level 2
Version 4 specification for more information about the use of SBO
and the 'sboTerm' attribute.
Finally, note that, in the list of methods on SBase
, there is no public
constructor because SBase
is an abstract class. The constructors reside
in the subclasses derived from SBase
.
SBML Level 2 Versions 2, 3 and 4, and Level 3, define a proposed regular format for encoding two particular categories of annotations: (a) references to controlled vocabulary terms and database identifiers which define and describe biological and biochemical entities in a model and (b) descriptions of the provenance of a model, including its author(s) and modification history.
Modifier and Type | Method and Description |
---|---|
int |
addCVTerm(CVTerm term)
Adds a copy of the given
CVTerm object to this SBML object. |
int |
addCVTerm(CVTerm term,
boolean newBag)
Adds a copy of the given
CVTerm object to this SBML object. |
int |
appendAnnotation(java.lang.String annotation)
Appends the given
annotation to the 'annotation' subelement of this
object. |
int |
appendAnnotation(XMLNode annotation)
Appends the given
annotation to the 'annotation' subelement of this
object. |
int |
appendNotes(java.lang.String notes)
Appends the given
notes to the 'notes' subelement of this object. |
int |
appendNotes(XMLNode notes)
Appends the given
notes to the 'notes' subelement of this object. |
SBase |
cloneObject()
Creates and returns a deep copy of this
SBase object. |
void |
connectToChild()   |
void |
delete()
Explicitly deletes the underlying native object.
|
void |
deleteDisabledPlugins()
Deletes all information stored in disabled plugins.
|
void |
deleteDisabledPlugins(boolean recursive)
Deletes all information stored in disabled plugins.
|
int |
disablePackage(java.lang.String pkgURI,
java.lang.String pkgPrefix)
Disables the given SBML Level 3 package on this object.
|
int |
enablePackage(java.lang.String pkgURI,
java.lang.String pkgPrefix,
boolean flag)
Enables or disables the given SBML Level 3 package on this object.
|
boolean |
equals(java.lang.Object sb)
Equality comparison method for SBase.
|
SBase |
getAncestorOfType(int type)
Returns the first ancestor object that has the given SBML type code from the given package.
|
SBase |
getAncestorOfType(int type,
java.lang.String pkgName)
Returns the first ancestor object that has the given SBML type code from the given package.
|
XMLNode |
getAnnotation()
Returns the content of the 'annotation' subelement of this object as
a tree of
XMLNode objects. |
java.lang.String |
getAnnotationString()
Returns the content of the 'annotation' subelement of this object as a
character string.
|
long |
getColumn()
Returns the column number where this object first appears in the XML
representation of the SBML document.
|
CVTerm |
getCVTerm(long n)
Returns the nth
CVTerm in the list of CVTerms of this SBML
object. |
CVTermList |
getCVTerms()
Returns a list of
CVTerm objects in the annotations of this SBML
object. |
SBasePlugin |
getDisabledPlugin(long n)
Returns the nth disabled plug-in object (extension interface) for an SBML Level 3
package extension.
|
SBase |
getElementByMetaId(java.lang.String metaid)
Returns the first child element it can find with a specific 'metaid'
attribute value, or
null if no such object is found. |
SBase |
getElementBySId(java.lang.String id)
Returns the first child element found that has the given
id in the
model-wide SId namespace, or null if no such object is found. |
java.lang.String |
getElementName()
Returns the XML element name of this object.
|
long |
getLevel()
Returns the SBML Level of the
SBMLDocument object containing this
object. |
long |
getLine()
Returns the line number where this object first appears in the XML
representation of the SBML document.
|
SBaseList |
getListOfAllElements()   |
SBaseList |
getListOfAllElements(ElementFilter filter)   |
SBaseList |
getListOfAllElementsFromPlugins()   |
SBaseList |
getListOfAllElementsFromPlugins(ElementFilter filter)   |
java.lang.String |
getMetaId()
Returns the value of the 'metaid' attribute of this object.
|
Model |
getModel()
Returns the
Model object for the SBML Document in which the current object is located. |
ModelHistory |
getModelHistory()
Returns the
ModelHistory object, if any, attached to this object. |
XMLNamespaces |
getNamespaces()
Returns a list of the XML Namespaces declared on the SBML document
owning this object.
|
XMLNode |
getNotes()
Returns the content of the 'notes' subelement of this object as
a tree of
XMLNode objects. |
java.lang.String |
getNotesString()
Returns the content of the 'notes' subelement of this object as a
string.
|
long |
getNumCVTerms()
Returns the number of
CVTerm objects in the annotations of this SBML
object. |
long |
getNumDisabledPlugins()
Returns the number of disabled plug-in objects (extension interfaces)
for SBML Level 3 package extensions known.
|
long |
getNumPlugins()
Returns the number of plug-in objects (extenstion interfaces) for SBML
Level 3 package extensions known.
|
java.lang.String |
getPackageName()
Returns the name of the SBML Level 3 package in which this element
is defined.
|
long |
getPackageVersion()
Returns the Version of the SBML Level 3 package to which this
element belongs to.
|
SBase |
getParentSBMLObject()
Returns the parent SBML object containing this object.
|
SBasePlugin |
getPlugin(long n)
Returns the nth plug-in object (extension interface) for an SBML Level 3
package extension.
|
SBasePlugin |
getPlugin(java.lang.String arg0)
Returns a plug-in object (extension interface) for an SBML Level 3
package extension with the given package name or URI.
|
java.lang.String |
getPrefix()
Returns the XML namespace prefix of this element.
|
int |
getResourceBiologicalQualifier(java.lang.String resource)
Returns the MIRIAM biological qualifier associated with the
given resource.
|
int |
getResourceModelQualifier(java.lang.String resource)
Returns the MIRIAM model qualifier associated with the
given resource.
|
SBMLDocument |
getSBMLDocument()
Returns the
SBMLDocument object containing this object instance. |
int |
getSBOTerm()
Returns the integer portion of the value of the 'sboTerm' attribute of
this object.
|
java.lang.String |
getSBOTermAsURL()
Returns the URL representation of the 'sboTerm' attribute of this
object.
|
java.lang.String |
getSBOTermID()
Returns the string representation of the 'sboTerm' attribute of
this object.
|
int |
getTypeCode()
Returns the libSBML type code for this object.
|
java.lang.String |
getURI()
Gets the namespace URI to which this element belongs to.
|
long |
getVersion()
Returns the Version within the SBML Level of the
SBMLDocument object
containing this object. |
int |
hashCode()
Returns a hashcode for this SBase object.
|
boolean |
hasValidLevelVersionNamespaceCombination()
Predicate returning
true if this object's level/version and namespace
values correspond to a valid SBML specification. |
boolean |
isPackageEnabled(java.lang.String pkgName)
Predicate returning
true if the given SBML Level 3 package is
enabled with this object. |
boolean |
isPackageURIEnabled(java.lang.String pkgURI)
Predicate returning
true if an SBML Level 3 package with the
given URI is enabled with this object. |
boolean |
isPkgEnabled(java.lang.String pkgName)
Deprecated. 
Replaced in libSBML 5.2.0 by
SBase.isPackageEnabled(String) .
|
boolean |
isPkgURIEnabled(java.lang.String pkgURI)
Deprecated. 
Replaced in libSBML 5.2.0 by
SBase.isPackageURIEnabled(String) .
|
boolean |
isSetAnnotation()
Predicate returning
true if this
object's 'annotation' subelement exists and has content. |
boolean |
isSetMetaId()
Predicate returning
true if this object's 'metaid' attribute is set. |
boolean |
isSetModelHistory()
Predicate returning
true if this
object has a ModelHistory object attached to it. |
boolean |
isSetNotes()
Predicate returning
true if this
object's 'notes' subelement exists and has content. |
boolean |
isSetSBOTerm()
Predicate returning
true if this
object's 'sboTerm' attribute is set. |
boolean |
isSetUserData()
Predicate returning true or false depending on whether
the user data of this element has been set.
|
boolean |
matchesRequiredSBMLNamespacesForAddition(SBase sb)
Returns
true if this object's set of XML namespaces are a subset
of the given object's XML namespaces. |
boolean |
matchesSBMLNamespaces(SBase sb)
Returns
true if this object's set of XML namespaces are the same
as the given object's XML namespaces. |
int |
removeFromParentAndDelete()
Removes this object from its parent.
|
int |
removeTopLevelAnnotationElement(java.lang.String elementName)
Removes the top-level element within the 'annotation' subelement of this
SBML object with the given name and optional URI.
|
int |
removeTopLevelAnnotationElement(java.lang.String elementName,
java.lang.String elementURI)
Removes the top-level element within the 'annotation' subelement of this
SBML object with the given name and optional URI.
|
int |
removeTopLevelAnnotationElement(java.lang.String elementName,
java.lang.String elementURI,
boolean removeEmpty)
Removes the top-level element within the 'annotation' subelement of this
SBML object with the given name and optional URI.
|
void |
renameMetaIdRefs(java.lang.String oldid,
java.lang.String newid)
Replaces all uses of a given meta identifier attribute value with
another value.
|
void |
renameSIdRefs(java.lang.String oldid,
java.lang.String newid)
Replaces all uses of a given
SIdRef type attribute value with another
value. |
void |
renameUnitSIdRefs(java.lang.String oldid,
java.lang.String newid)
Replaces all uses of a given
UnitSIdRef type attribute value with
another value. |
int |
replaceTopLevelAnnotationElement(java.lang.String annotation)
Replaces the given top-level element within the 'annotation'
subelement of this SBML object and with the annotation element supplied.
|
int |
replaceTopLevelAnnotationElement(XMLNode annotation)
Replaces the given top-level element within the 'annotation'
subelement of this SBML object and with the annotation element supplied.
|
int |
setAnnotation(java.lang.String annotation)
Sets the value of the 'annotation' subelement of this SBML object.
|
int |
setAnnotation(XMLNode annotation)
Sets the value of the 'annotation' subelement of this SBML object.
|
int |
setMetaId(java.lang.String metaid)
Sets the value of the meta-identifier attribute of this object.
|
int |
setModelHistory(ModelHistory history)
Sets the
ModelHistory of this object. |
int |
setNamespaces(XMLNamespaces xmlns)
Sets the namespaces relevant of this SBML object.
|
int |
setNotes(java.lang.String notes)
Sets the value of the 'notes' subelement of this SBML object to a copy
of the string
notes . |
int |
setNotes(java.lang.String notes,
boolean addXHTMLMarkup)
Sets the value of the 'notes' subelement of this SBML object to a copy
of the string
notes . |
int |
setNotes(XMLNode notes)
Sets the value of the 'notes' subelement of this SBML object.
|
int |
setSBOTerm(int value)
Sets the value of the 'sboTerm' attribute.
|
int |
setSBOTerm(java.lang.String sboid)
Sets the value of the 'sboTerm' attribute by string.
|
java.lang.String |
toSBML()
Returns a string consisting of a partial SBML corresponding to just
this object.
|
XMLNode |
toXMLNode()
Returns this element as an
XMLNode . |
int |
unsetAnnotation()
Unsets the value of the 'annotation' subelement of this SBML object.
|
int |
unsetCVTerms()
Clears the list of
CVTerm objects attached to this SBML object. |
int |
unsetId()
Unsets the value of the 'id' attribute of this SBML object.
|
int |
unsetMetaId()
Unsets the value of the 'metaid' attribute of this SBML object.
|
int |
unsetModelHistory()
Unsets the
ModelHistory object attached to this object. |
int |
unsetName()
Unsets the value of the 'name' attribute of this SBML object.
|
int |
unsetNotes()
Unsets the value of the 'notes' subelement of this SBML object.
|
int |
unsetSBOTerm()
Unsets the value of the 'sboTerm' attribute of this SBML object.
|
int |
unsetUserData()
Unsets the user data of this element.
|
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 SBase.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 SBase.delete()
themselves.
public boolean equals(java.lang.Object sb)
Because the Java methods for libSBML are actually wrappers around code
implemented in C++ and C, certain operations will not behave as
expected. Equality comparison is one such case. An instance of a
libSBML object class is actually a proxy object
wrapping the real underlying C/C++ object. The normal ==
equality operator in Java will only compare the Java proxy objects,
not the underlying native object. The result is almost never what you
want in practical situations. Unfortunately, Java does not provide a
way to override ==
.
The alternative that must be followed is to use the
equals()
method. The equals
method on this
class overrides the default java.lang.Object one, and performs an
intelligent comparison of instances of objects of this class. The
result is an assessment of whether two libSBML Java objects are truly
the same underlying native-code objects.
The use of this method in practice is the same as the use of any other
Java equals
method. For example,
a.equals(
b)
returns
true
if a and b are references to the
same underlying object.
equals
 in class java.lang.Object
sb
- a reference to an object to which the current object
instance will be comparedtrue
if sb
refers to the same underlying
native object as this one, false
otherwisepublic int hashCode()
hashCode
 in class java.lang.Object
public SBase cloneObject()
SBase
object.
SBase
object.public SBase getElementBySId(java.lang.String id)
id
in the
model-wide SId
namespace, or null
if no such object is found.
id
- string representing the 'id' attribute value of the object
to find.
public SBase getElementByMetaId(java.lang.String metaid)
null
if no such object is found.
The optional attribute named 'metaid', present on every major SBML
component type, is for supporting metadata annotations using RDF (Resource Description Format). The
attribute value has the data type XML ID
, the XML
identifier type, which means each 'metaid' value must be globally unique
within an SBML file. The latter point is important, because the
uniqueness criterion applies across any attribute with type
ID
anywhere in the file, not just the 'metaid' attribute used
by SBML&mdashsomething to be aware of if your application-specific XML
content inside the 'annotation' subelement happens to use the XML
ID
type. Although SBML itself specifies the use of XML ID
only for
the 'metaid' attribute, SBML-compatible applications should be careful if
they use XML ID
's in XML portions of a model that are not
defined by SBML, such as in the application-specific content of the
'annotation' subelement. Finally, note that LibSBML does not provide an
explicit XML ID
data type it uses ordinary character
strings, which is easier for applications to support.
metaid
- string representing the 'metaid' attribute value of the
object to find.
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.
oldid
- the old identifiernewid
- the new identifierpublic void renameMetaIdRefs(java.lang.String oldid, java.lang.String newid)
Replaces all uses of a given meta identifier attribute value with another value.
In SBML, object 'meta' identifiers are of the XML data type ID
the SBML object attribute itself is typically named metaid
. All
attributes that hold values referring to values of type
ID
are of the XML data type IDREF
. They are also
sometimes informally referred to as 'metaid refs', in analogy to the
SBML-defined type SIdRef
.
This method works by looking at all meta-identifier attribute values,
comparing the identifiers to the value of oldid
. If any matches are
found, the matching identifiers are replaced with newid
. The method
does not descend into child elements.
oldid
- the old identifiernewid
- the new identifierpublic void renameUnitSIdRefs(java.lang.String oldid, java.lang.String newid)
Replaces all uses of a given UnitSIdRef
type attribute value with
another value.
In SBML, unit definitions have identifiers of type UnitSId
. In
SBML Level 3, an explicit data type called UnitSIdRef
was
introduced for attribute values that refer to UnitSId
values in
previous Levels of SBML, this data type did not exist and attributes were
simply described to as 'referring to a unit identifier', but the effective
data type was the same as UnitSIdRef
in Level 3. These and
other methods of libSBML refer to the type UnitSIdRef
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 unit identifier attribute values
(including, if appropriate, inside mathematical formulas), comparing the
referenced unit 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.
oldid
- the old identifiernewid
- the new identifierpublic java.lang.String getMetaId()
The optional attribute named 'metaid', present on every major SBML
component type, is for supporting metadata annotations using RDF (Resource Description Format). The
attribute value has the data type XML ID
, the XML
identifier type, which means each 'metaid' value must be globally unique
within an SBML file. The latter point is important, because the
uniqueness criterion applies across any attribute with type
ID
anywhere in the file, not just the 'metaid' attribute used
by SBML&mdashsomething to be aware of if your application-specific XML
content inside the 'annotation' subelement happens to use the XML
ID
type. Although SBML itself specifies the use of XML ID
only for
the 'metaid' attribute, SBML-compatible applications should be careful if
they use XML ID
's in XML portions of a model that are not
defined by SBML, such as in the application-specific content of the
'annotation' subelement. Finally, note that LibSBML does not provide an
explicit XML ID
data type it uses ordinary character
strings, which is easier for applications to support.
SBase.isSetMetaId()
,
SBase.setMetaId(String metaid)
public XMLNode getNotes()
XMLNode
objects.
The optional SBML element named 'notes', present on every major SBML
component type (and in SBML Level 3, the 'message' subelement of
Constraint
), is intended as a place for storing optional information
intended to be seen by humans. An example use of the 'notes' element
would be to contain formatted user comments about the model element in
which the 'notes' element is enclosed. Every object derived directly or
indirectly from type SBase
can have a separate value for 'notes', allowing
users considerable freedom when adding comments to their models.
The format of 'notes' elements conform to the definition of XHTML 1.0.
However, the content cannot be entirely free-form it must satisfy
certain requirements defined in the SBML specifications
for specific SBML Levels. To help verify the formatting of 'notes'
content, libSBML provides the static utility method
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
this
method implements a verification process that lets callers check whether
the content of a given XMLNode
object conforms to the SBML requirements
for 'notes' and 'message' structure. Developers are urged to consult the
appropriate SBML specification
document for the Level and Version of their model for more in-depth
explanations of using 'notes' in SBML. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element content
must be structured.
The 'notes' element content returned by this method will be in XML
form, but libSBML does not provide an object model specifically for
the content of notes. Callers will need to traverse the XML tree
structure using the facilities available on XMLNode
and related
objects. For an alternative method of accessing the notes, see
getNotesString().
XMLNode
objects.
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.setNotes(String notes, boolean addXHTMLMarkup)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public java.lang.String getNotesString()
The optional SBML element named 'notes', present on every major SBML
component type (and in SBML Level 3, the 'message' subelement of
Constraint
), is intended as a place for storing optional information
intended to be seen by humans. An example use of the 'notes' element
would be to contain formatted user comments about the model element in
which the 'notes' element is enclosed. Every object derived directly or
indirectly from type SBase
can have a separate value for 'notes', allowing
users considerable freedom when adding comments to their models.
The format of 'notes' elements conform to the definition of XHTML 1.0.
However, the content cannot be entirely free-form it must satisfy
certain requirements defined in the SBML specifications
for specific SBML Levels. To help verify the formatting of 'notes'
content, libSBML provides the static utility method
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
this
method implements a verification process that lets callers check whether
the content of a given XMLNode
object conforms to the SBML requirements
for 'notes' and 'message' structure. Developers are urged to consult the
appropriate SBML specification
document for the Level and Version of their model for more in-depth
explanations of using 'notes' in SBML. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element content
must be structured.
For an alternative method of accessing the notes, see getNotes(),
which returns the content as an XMLNode
tree structure. Depending on
an application's needs, one or the other method may be more
convenient.
SBase.getNotes()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.setNotes(String notes, boolean addXHTMLMarkup)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public XMLNode getAnnotation()
XMLNode
objects.
Whereas the SBML 'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type
'any', allowing essentially arbitrary well-formed XML data
content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
The annotations returned by this method will be in XML form. LibSBML
provides an object model and related interfaces for certain specific
kinds of annotations, namely model history information and RDF
content. See the ModelHistory
, CVTerm
and RDFAnnotationParser
classes
for more information about the facilities available.
XMLNode
objects.
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public java.lang.String getAnnotationString()
Whereas the SBML 'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type
'any', allowing essentially arbitrary well-formed XML data
content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
The annotations returned by this method will be in string form. See the method getAnnotation() for a version that returns annotations in XML form.
SBase.getAnnotation()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public XMLNamespaces getNamespaces()
The SBMLNamespaces
object encapsulates SBML Level/Version/namespaces
information. It is used to communicate the SBML Level, Version, and (in
Level 3) packages used in addition to SBML Level 3 Core.
null
in certain very usual circumstances where a namespace is not set.
SBase.getLevel()
,
SBase.getVersion()
public SBMLDocument getSBMLDocument()
SBMLDocument
object containing this object instance.
LibSBML uses the class SBMLDocument
as a top-level container for
storing SBML content and data associated with it (such as warnings and
error messages). An SBML model in libSBML is contained inside an
SBMLDocument
object. SBMLDocument
corresponds roughly to the class
SBML defined in the SBML Level 3 and Level 2
specifications, but it does not have a direct correspondence in SBML
Level 1. (But, it is created by libSBML no matter whether the
model is Level 1, Level 2 or Level 3.)
This method allows the caller to obtain the SBMLDocument
for the
current object.
SBMLDocument
object of this SBML object.
SBase.getParentSBMLObject()
,
SBase.getModel()
public SBase getParentSBMLObject()
This returns the immediately-containing object. This method is convenient when holding an object nested inside other objects in an SBML model.
SBase.getSBMLDocument()
,
SBase.getModel()
public SBase getAncestorOfType(int type, java.lang.String pkgName)
LibSBML attaches an identifying code to every
kind of SBML object. These are known as SBML type codes. In
other languages, the set of type codes is stored in an enumeration in
the Java language interface for libSBML, the type codes are defined as
static integer constants in the interface class libsbmlConstants
. The names of the type codes all begin with the
characters SBML_.
This method searches the tree of objects that are parents of this
object, and returns the first one that has the given SBML type code from
the given pkgName
.
type
- the SBML type code of the object sought
pkgName
- (optional) the short name of an SBML Level 3
package to which the sought-after object must belong
null
if no ancestor exists.
pkgName
must be used for all type codes
from SBML Level 3 packages. Otherwise, the function will search the
'core' namespace alone, not find any corresponding elements, and return
null.
public SBase getAncestorOfType(int type)
LibSBML attaches an identifying code to every
kind of SBML object. These are known as SBML type codes. In
other languages, the set of type codes is stored in an enumeration in
the Java language interface for libSBML, the type codes are defined as
static integer constants in the interface class libsbmlConstants
. The names of the type codes all begin with the
characters SBML_.
This method searches the tree of objects that are parents of this
object, and returns the first one that has the given SBML type code from
the given pkgName
.
type
- the SBML type code of the object sought
pkgName
- (optional) the short name of an SBML Level 3
package to which the sought-after object must belong
null
if no ancestor exists.
pkgName
must be used for all type codes
from SBML Level 3 packages. Otherwise, the function will search the
'core' namespace alone, not find any corresponding elements, and return
null.
public int getSBOTerm()
Beginning with SBML Level 2 Version 3, objects derived from SBase
have
an optional attribute named 'sboTerm' for supporting the use of the
Systems Biology Ontology. In SBML proper, the data type of the
attribute is a string of the form 'SBO:NNNNNNN', where 'NNNNNNN' is a
seven digit integer number libSBML simplifies the representation by
only storing the 'NNNNNNN' integer portion. Thus, in libSBML, the
'sboTerm' attribute on SBase
has data type int
, and SBO
identifiers
are stored simply as integers. (For convenience, libSBML offers
methods for returning both the integer form and a text-string form of
the SBO
identifier.)
SBO
terms are a type of optional annotation, and each different class
of SBML object derived from SBase
imposes its own requirements about
the values permitted for 'sboTerm'. Please consult the SBML
Level 2 Version 4 specification for more information about
the use of SBO
and the 'sboTerm' attribute.
-1
if the value is not set.public java.lang.String getSBOTermID()
Beginning with SBML Level 2 Version 3, objects derived from SBase
have
an optional attribute named 'sboTerm' for supporting the use of the
Systems Biology Ontology. In SBML proper, the data type of the
attribute is a string of the form 'SBO:NNNNNNN', where 'NNNNNNN' is a
seven digit integer number libSBML simplifies the representation by
only storing the 'NNNNNNN' integer portion. Thus, in libSBML, the
'sboTerm' attribute on SBase
has data type int
, and SBO
identifiers
are stored simply as integers. This method returns the entire SBO
identifier as a text string in the form 'SBO:NNNNNNN'.
SBO
terms are a type of optional annotation, and each different class
of SBML object derived from SBase
imposes its own requirements about
the values permitted for 'sboTerm'. Please consult the SBML
Level 2 Version 4 specification for more information about
the use of SBO
and the 'sboTerm' attribute.
public java.lang.String getSBOTermAsURL()
This method returns the entire SBO
identifier as a text string in the
form http
://identifiers.org/biomodels.sbo/SBO:NNNNNNN'
.
SBO
terms are a type of optional annotation, and each different class
of SBML object derived from SBase
imposes its own requirements about
the values permitted for 'sboTerm'. Please consult the SBML
Level 2 Version 4 specification for more information about
the use of SBO
and the 'sboTerm' attribute.
public long getLine()
0.
SBase.getColumn()
public long getColumn()
0.
SBase.getLine()
public ModelHistory getModelHistory()
ModelHistory
object, if any, attached to this object.
ModelHistory
object attached to this object, or null
if
none exist.
Model
element. In SBML Level 3, they are
permitted on all SBML components derived from SBase
.public boolean isSetMetaId()
true
if this object's 'metaid' attribute is set.
The optional attribute named 'metaid', present on every major SBML
component type, is for supporting metadata annotations using RDF (Resource Description Format). The
attribute value has the data type XML ID
, the XML
identifier type, which means each 'metaid' value must be globally unique
within an SBML file. The latter point is important, because the
uniqueness criterion applies across any attribute with type
ID
anywhere in the file, not just the 'metaid' attribute used
by SBML&mdashsomething to be aware of if your application-specific XML
content inside the 'annotation' subelement happens to use the XML
ID
type. Although SBML itself specifies the use of XML ID
only for
the 'metaid' attribute, SBML-compatible applications should be careful if
they use XML ID
's in XML portions of a model that are not
defined by SBML, such as in the application-specific content of the
'annotation' subelement. Finally, note that LibSBML does not provide an
explicit XML ID
data type it uses ordinary character
strings, which is easier for applications to support.
true
if the 'metaid' attribute of this SBML object is
set, false
otherwise.
SBase.getMetaId()
,
SBase.setMetaId(String metaid)
public boolean isSetNotes()
true
if this
object's 'notes' subelement exists and has content.
The optional SBML element named 'notes', present on every major SBML
component type, is intended as a place for storing optional
information intended to be seen by humans. An example use of the
'notes' element would be to contain formatted user comments about the
model element in which the 'notes' element is enclosed. Every object
derived directly or indirectly from type SBase
can have a separate
value for 'notes', allowing users considerable freedom when adding
comments to their models.
The format of 'notes' elements must be XHTML 1.0. To help
verify the formatting of 'notes' content, libSBML provides the static
utility method SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
however,
readers are urged to consult the appropriate SBML specification
document for the Level and Version of their model for more
in-depth explanations. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element
content must be structured.
true
if a 'notes' subelement exists, false
otherwise.
SBase.getNotes()
,
SBase.getNotesString()
,
SBase.setNotes(XMLNode notes)
,
SBase.setNotes(String notes, boolean addXHTMLMarkup)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public boolean isSetAnnotation()
true
if this
object's 'annotation' subelement exists and has content.
Whereas the SBase
'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type
'any', allowing essentially arbitrary well-formed XML data
content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
true
if a 'annotation' subelement exists, false
otherwise.
SBase.getAnnotation()
,
SBase.getAnnotationString()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public boolean isSetSBOTerm()
true
if this
object's 'sboTerm' attribute is set.
true
if the 'sboTerm' attribute of this SBML object is
set, false
otherwise.public int setMetaId(java.lang.String metaid)
The optional attribute named 'metaid', present on every major SBML
component type, is for supporting metadata annotations using RDF (Resource Description Format). The
attribute value has the data type XML ID
, the XML
identifier type, which means each 'metaid' value must be globally unique
within an SBML file. The latter point is important, because the
uniqueness criterion applies across any attribute with type
ID
anywhere in the file, not just the 'metaid' attribute used
by SBML&mdashsomething to be aware of if your application-specific XML
content inside the 'annotation' subelement happens to use the XML
ID
type. Although SBML itself specifies the use of XML ID
only for
the 'metaid' attribute, SBML-compatible applications should be careful if
they use XML ID
's in XML portions of a model that are not
defined by SBML, such as in the application-specific content of the
'annotation' subelement. Finally, note that LibSBML does not provide an
explicit XML ID
data type it uses ordinary character
strings, which is easier for applications to support.
The string metaid
is copied.
metaid
- the identifier string to use as the value of the
'metaid' attribute
SBase.getMetaId()
,
SBase.isSetMetaId()
public boolean isSetModelHistory()
true
if this
object has a ModelHistory
object attached to it.
true
if the ModelHistory
of this object is set,
false
otherwise.
Model
element. In SBML Level 3, they are
permitted on all SBML components derived from SBase
.public int setAnnotation(XMLNode annotation)
The content of annotation
is copied, and any previous content of
this object's 'annotation' subelement is deleted.
Whereas the SBase
'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type
'any', allowing essentially arbitrary well-formed XML data
content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Call this method will result in any existing content of the
'annotation' subelement to be discarded. Unless you have taken steps
to first copy and reconstitute any existing annotations into the
annotation
that is about to be assigned, it is likely that performing
such wholesale replacement is unfriendly towards other software
applications whose annotations are discarded. An alternative may be
to use SBase.appendAnnotation(XMLNode annotation)
or
SBase.appendAnnotation(String annotation)
.
annotation
- an XML structure that is to be used as the new content
of the 'annotation' subelement of this object
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public int setAnnotation(java.lang.String annotation)
The content of annotation
is copied, and any previous content of
this object's 'annotation' subelement is deleted.
Whereas the SBase
'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type
'any', allowing essentially arbitrary well-formed XML data
content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Call this method will result in any existing content of the
'annotation' subelement to be discarded. Unless you have taken steps
to first copy and reconstitute any existing annotations into the
annotation
that is about to be assigned, it is likely that performing
such wholesale replacement is unfriendly towards other software
applications whose annotations are discarded. An alternative may be
to use SBase.appendAnnotation(XMLNode annotation)
or
SBase.appendAnnotation(String annotation)
.
annotation
- an XML string that is to be used as the content
of the 'annotation' subelement of this object
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public int appendAnnotation(XMLNode annotation)
annotation
to the 'annotation' subelement of this
object.
Whereas the SBase
'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type 'any',
allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Unlike SBase.setAnnotation(XMLNode annotation)
or
SBase.setAnnotation(String annotation)
, this method
allows other annotations to be preserved when an application adds its
own data.
annotation
- an XML structure that is to be copied and appended
to the content of the 'annotation' subelement of this object
LIBSBML_OPERATION_SUCCESS
LIBSBML_OPERATION_FAILED
LIBSBML_UNEXPECTED_ATTRIBUTE
(if the parent element does not have the 'metaid' attribute set)
LIBSBML_DUPLICATE_ANNOTATION_NS
(if the parent was already annotated with the annotation in question)
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public int appendAnnotation(java.lang.String annotation)
annotation
to the 'annotation' subelement of this
object.
Whereas the SBase
'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type 'any',
allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Unlike SBase.setAnnotation(XMLNode annotation)
or
SBase.setAnnotation(String annotation)
, this method
allows other annotations to be preserved when an application adds its
own data.
annotation
- an XML string that is to be copied and appended
to the content of the 'annotation' subelement of this object
LIBSBML_OPERATION_SUCCESS
LIBSBML_OPERATION_FAILED
LIBSBML_UNEXPECTED_ATTRIBUTE
(if the parent element does not have the 'metaid' attribute set)
LIBSBML_DUPLICATE_ANNOTATION_NS
(if the parent was already annotated with the annotation in question)
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.unsetAnnotation()
public int removeTopLevelAnnotationElement(java.lang.String elementName, java.lang.String elementURI, boolean removeEmpty)
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Calling this method allows a particular annotation element to be removed whilst the remaining annotations remain intact.
elementName
- a string representing the name of the top level
annotation element that is to be removedelementURI
- an optional string that is used to check both the name
and URI of the top level element to be removedremoveEmpty
- if after removing of the element, the annotation is
empty, and the removeEmpty argument is true, the annotation node will be
deleted (default).
SBase.replaceTopLevelAnnotationElement(XMLNode )
,
SBase.replaceTopLevelAnnotationElement(String)
public int removeTopLevelAnnotationElement(java.lang.String elementName, java.lang.String elementURI)
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Calling this method allows a particular annotation element to be removed whilst the remaining annotations remain intact.
elementName
- a string representing the name of the top level
annotation element that is to be removedelementURI
- an optional string that is used to check both the name
and URI of the top level element to be removedremoveEmpty
- if after removing of the element, the annotation is
empty, and the removeEmpty argument is true, the annotation node will be
deleted (default).
SBase.replaceTopLevelAnnotationElement(XMLNode )
,
SBase.replaceTopLevelAnnotationElement(String)
public int removeTopLevelAnnotationElement(java.lang.String elementName)
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Calling this method allows a particular annotation element to be removed whilst the remaining annotations remain intact.
elementName
- a string representing the name of the top level
annotation element that is to be removedelementURI
- an optional string that is used to check both the name
and URI of the top level element to be removedremoveEmpty
- if after removing of the element, the annotation is
empty, and the removeEmpty argument is true, the annotation node will be
deleted (default).
SBase.replaceTopLevelAnnotationElement(XMLNode )
,
SBase.replaceTopLevelAnnotationElement(String)
public int replaceTopLevelAnnotationElement(XMLNode annotation)
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
This method determines the name of the element to be replaced from the
annotation argument. Functionally it is equivalent to calling
removeTopLevelAnnotationElement(name)
followed by calling
appendAnnotation(annotation_with_name)
, with the exception
that the placement of the annotation element remains the same.
annotation
- XMLNode
representing the replacement top level annotation
SBase.removeTopLevelAnnotationElement(String elementName, String elementURI, boolean removeEmpty)
,
SBase.replaceTopLevelAnnotationElement(String)
public int replaceTopLevelAnnotationElement(java.lang.String annotation)
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
This method determines the name of the element to be replaced from the
annotation argument. Functionally it is equivalent to calling
removeTopLevelAnnotationElement(name)
followed by calling
appendAnnotation(annotation_with_name)
, with the exception
that the placement of the annotation element remains the same.
annotation
- string representing the replacement top level annotation
SBase.removeTopLevelAnnotationElement(String elementName, String elementURI)
,
SBase.replaceTopLevelAnnotationElement(XMLNode)
public int setNotes(XMLNode notes)
The content of notes
is copied, and any existing content of this
object's 'notes' subelement is deleted.
The optional SBML element named 'notes', present on every major SBML
component type, is intended as a place for storing optional
information intended to be seen by humans. An example use of the
'notes' element would be to contain formatted user comments about the
model element in which the 'notes' element is enclosed. Every object
derived directly or indirectly from type SBase
can have a separate
value for 'notes', allowing users considerable freedom when adding
comments to their models.
The format of 'notes' elements must be XHTML 1.0. To help
verify the formatting of 'notes' content, libSBML provides the static
utility method SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
however,
readers are urged to consult the appropriate SBML specification
document for the Level and Version of their model for more
in-depth explanations. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element
content must be structured.
notes
- an XML structure that is to be used as the content of the
'notes' subelement of this object
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(String notes, boolean addXHTMLMarkup)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public int setNotes(java.lang.String notes, boolean addXHTMLMarkup)
notes
.
The content of notes
is copied, and any existing content of this
object's 'notes' subelement is deleted.
The optional SBML element named 'notes', present on every major SBML
component type, is intended as a place for storing optional
information intended to be seen by humans. An example use of the
'notes' element would be to contain formatted user comments about the
model element in which the 'notes' element is enclosed. Every object
derived directly or indirectly from type SBase
can have a separate
value for 'notes', allowing users considerable freedom when adding
comments to their models.
The format of 'notes' elements must be XHTML 1.0. To help
verify the formatting of 'notes' content, libSBML provides the static
utility method SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
however,
readers are urged to consult the appropriate SBML specification
document for the Level and Version of their model for more
in-depth explanations. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element
content must be structured.
The following code illustrates a very simple way of setting the notes using this method. Here, the object being annotated is the whole SBML document, but that is for illustration purposes only you could of course use this same approach to annotate any other SBML component.
SBMLDocument
s = newSBMLDocument
(3, 1) s.setNotes('<body xmlns='http://www.w3.org/1999/xhtml'>here is my note</p></body>')
notes
- an XML string that is to be used as the content of the
'notes' subelement of this object
addXHTMLMarkup
- a boolean indicating whether to wrap the contents
of the notes
argument with XHTML paragraph (<p>
)
tags. This is appropriate when the string in notes
does not already
containg the appropriate XHTML markup.
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public int setNotes(java.lang.String notes)
notes
.
The content of notes
is copied, and any existing content of this
object's 'notes' subelement is deleted.
The optional SBML element named 'notes', present on every major SBML
component type, is intended as a place for storing optional
information intended to be seen by humans. An example use of the
'notes' element would be to contain formatted user comments about the
model element in which the 'notes' element is enclosed. Every object
derived directly or indirectly from type SBase
can have a separate
value for 'notes', allowing users considerable freedom when adding
comments to their models.
The format of 'notes' elements must be XHTML 1.0. To help
verify the formatting of 'notes' content, libSBML provides the static
utility method SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
however,
readers are urged to consult the appropriate SBML specification
document for the Level and Version of their model for more
in-depth explanations. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element
content must be structured.
The following code illustrates a very simple way of setting the notes using this method. Here, the object being annotated is the whole SBML document, but that is for illustration purposes only you could of course use this same approach to annotate any other SBML component.
SBMLDocument
s = newSBMLDocument
(3, 1) s.setNotes('<body xmlns='http://www.w3.org/1999/xhtml'>here is my note</p></body>')
notes
- an XML string that is to be used as the content of the
'notes' subelement of this object
addXHTMLMarkup
- a boolean indicating whether to wrap the contents
of the notes
argument with XHTML paragraph (<p>
)
tags. This is appropriate when the string in notes
does not already
containg the appropriate XHTML markup.
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public int appendNotes(XMLNode notes)
notes
to the 'notes' subelement of this object.
The content of notes
is copied.
The optional SBML element named 'notes', present on every major SBML
component type, is intended as a place for storing optional
information intended to be seen by humans. An example use of the
'notes' element would be to contain formatted user comments about the
model element in which the 'notes' element is enclosed. Every object
derived directly or indirectly from type SBase
can have a separate
value for 'notes', allowing users considerable freedom when adding
comments to their models.
The format of 'notes' elements must be XHTML 1.0. To help
verify the formatting of 'notes' content, libSBML provides the static
utility method SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
however,
readers are urged to consult the appropriate SBML specification
document for the Level and Version of their model for more
in-depth explanations. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element
content must be structured.
notes
- an XML node structure that is to appended to the content
of the 'notes' subelement of this object
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.setNotes(String notes, boolean addXHTMLMarkup)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public int appendNotes(java.lang.String notes)
notes
to the 'notes' subelement of this object.
The content of the parameter notes
is copied.
The optional SBML element named 'notes', present on every major SBML
component type, is intended as a place for storing optional
information intended to be seen by humans. An example use of the
'notes' element would be to contain formatted user comments about the
model element in which the 'notes' element is enclosed. Every object
derived directly or indirectly from type SBase
can have a separate
value for 'notes', allowing users considerable freedom when adding
comments to their models.
The format of 'notes' elements must be XHTML 1.0. To help
verify the formatting of 'notes' content, libSBML provides the static
utility method SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
however,
readers are urged to consult the appropriate SBML specification
document for the Level and Version of their model for more
in-depth explanations. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element
content must be structured.
notes
- an XML string that is to appended to the content of
the 'notes' subelement of this object
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.setNotes(String notes, boolean addXHTMLMarkup)
,
SBase.appendNotes(XMLNode notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public int setModelHistory(ModelHistory history)
ModelHistory
of this object.
The content of history
is copied, and this object's existing model
history content is deleted.
history
- ModelHistory
of this object.
Model
element. In SBML Level 3, they are
permitted on all SBML components derived from SBase
.public void connectToChild()
public int setSBOTerm(int value)
Beginning with SBML Level 2 Version 3, objects derived from SBase
have
an optional attribute named 'sboTerm' for supporting the use of the
Systems Biology Ontology. In SBML proper, the data type of the
attribute is a string of the form 'SBO:NNNNNNN', where 'NNNNNNN' is a
seven digit integer number libSBML simplifies the representation by
only storing the 'NNNNNNN' integer portion. Thus, in libSBML, the
'sboTerm' attribute on SBase
has data type int
, and SBO
identifiers
are stored simply as integers.
SBO
terms are a type of optional annotation, and each different class
of SBML object derived from SBase
imposes its own requirements about
the values permitted for 'sboTerm'. Please consult the SBML
Level 2 Version 4 specification for more information about
the use of SBO
and the 'sboTerm' attribute.
value
- the NNNNNNN integer portion of the SBO
identifier
SBase.setSBOTerm(String)
public int setSBOTerm(java.lang.String sboid)
Beginning with SBML Level 2 Version 3, objects derived from SBase
have
an optional attribute named 'sboTerm' for supporting the use of the
Systems Biology Ontology. In SBML proper, the data type of the
attribute is a string of the form 'SBO:NNNNNNN', where 'NNNNNNN' is a
seven digit integer number libSBML simplifies the representation by
only storing the 'NNNNNNN' integer portion. Thus, in libSBML, the
'sboTerm' attribute on SBase
has data type int
, and SBO
identifiers
are stored simply as integers. This method lets you set the value of
'sboTerm' as a complete string of the form 'SBO:NNNNNNN', whereas
setSBOTerm(int value) allows you to set it using the integer form.
SBO
terms are a type of optional annotation, and each different class
of SBML object derived from SBase
imposes its own requirements about
the values permitted for 'sboTerm'. Please consult the SBML
Level 2 Version 4 specification for more information about
the use of SBO
and the 'sboTerm' attribute.
sboid
- the SBO
identifier string of the form 'SBO:NNNNNNN'
SBase.setSBOTerm(int value)
public int setNamespaces(XMLNamespaces xmlns)
The content of xmlns
is copied, and this object's existing
namespace content is deleted.
The SBMLNamespaces
object encapsulates SBML Level/Version/namespaces
information. It is used to communicate the SBML Level, Version, and
(in Level 3) packages used in addition to SBML Level 3 Core.
xmlns
- the namespaces to set
public int unsetMetaId()
The optional attribute named 'metaid', present on every major SBML
component type, is for supporting metadata annotations using RDF (Resource Description Format). The
attribute value has the data type XML ID
, the XML
identifier type, which means each 'metaid' value must be globally unique
within an SBML file. The latter point is important, because the
uniqueness criterion applies across any attribute with type
ID
anywhere in the file, not just the 'metaid' attribute used
by SBML&mdashsomething to be aware of if your application-specific XML
content inside the 'annotation' subelement happens to use the XML
ID
type. Although SBML itself specifies the use of XML ID
only for
the 'metaid' attribute, SBML-compatible applications should be careful if
they use XML ID
's in XML portions of a model that are not
defined by SBML, such as in the application-specific content of the
'annotation' subelement. Finally, note that LibSBML does not provide an
explicit XML ID
data type it uses ordinary character
strings, which is easier for applications to support.
public int unsetId()
Most (but not all) objects in SBML include two common attributes: 'id' and 'name'. The identifier given by an object's 'id' attribute value is used to identify the object within the SBML model definition. Other objects can refer to the component using this identifier.
public int unsetName()
Most (but not all) objects in SBML include two common attributes: 'id'
and 'name'. In contrast to the 'id' attribute, the 'name' attribute is
optional and is not intended to be used for cross-referencing purposes
within a model. Its purpose instead is to provide a human-readable
label for the component. The data type of 'name' is the type
string
defined in XML Schema. SBML imposes no
restrictions as to the content of 'name' attributes beyond those
restrictions defined by the string
type in XML Schema.
The recommended practice for handling 'name' is as follows. If a software tool has the capability for displaying the content of 'name' attributes, it should display this content to the user as a component's label instead of the component's 'id'. If the user interface does not have this capability (e.g., because it cannot display or use special characters in symbol names), or if the 'name' attribute is missing on a given component, then the user interface should display the value of the 'id' attribute instead. (Script language interpreters are especially likely to display 'id' instead of 'name'.)
As a consequence of the above, authors of systems that automatically generate the values of 'id' attributes should be aware some systems may display the 'id''s to the user. Authors therefore may wish to take some care to have their software create 'id' values that are: (a) reasonably easy for humans to type and read and (b) likely to be meaningful, for example by making the 'id' attribute be an abbreviated form of the name attribute value.
An additional point worth mentioning is although there are restrictions on the uniqueness of 'id' values, there are no restrictions on the uniqueness of 'name' values in a model. This allows software applications leeway in assigning component identifiers.
public int unsetNotes()
The optional SBML element named 'notes', present on every major SBML
component type, is intended as a place for storing optional
information intended to be seen by humans. An example use of the
'notes' element would be to contain formatted user comments about the
model element in which the 'notes' element is enclosed. Every object
derived directly or indirectly from type SBase
can have a separate
value for 'notes', allowing users considerable freedom when adding
comments to their models.
The format of 'notes' elements must be XHTML 1.0. To help
verify the formatting of 'notes' content, libSBML provides the static
utility method SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
however,
readers are urged to consult the appropriate SBML specification
document for the Level and Version of their model for more
in-depth explanations. The SBML Level 2 and  3
specifications have considerable detail about how 'notes' element
content must be structured.
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.setNotes(String notes, boolean addXHTMLMarkup)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode)
public int unsetAnnotation()
Whereas the SBase
'notes' subelement is a container for content to be
shown directly to humans, the 'annotation' element is a container for
optional software-generated content not meant to be shown to
humans. Every object derived from SBase
can have its own value for
'annotation'. The element's content type is XML type
'any', allowing essentially arbitrary well-formed XML data
content.
SBML places a few restrictions on the organization of the content of annotations these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
SBase.getAnnotation()
,
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(String annotation)
public int unsetSBOTerm()
public int addCVTerm(CVTerm term, boolean newBag)
CVTerm
object to this SBML object.
term
- the CVTerm
to assign.
newBag
- if true
, creates a new RDF bag with the same identifier
as a previous bag, and if false
, adds the term to an existing
RDF bag with the same type of qualifier as the term being added.
LIBSBML_OPERATION_SUCCESS
LIBSBML_OPERATION_FAILED
LIBSBML_UNEXPECTED_ATTRIBUTE
, if
this object lacks a 'metaid' attribute
LIBSBML_INVALID_OBJECT
CVTerm
will not be added.
, This method should be used with some caution. The fact that this
method copies the object passed to it means that the caller will be
left holding a physically different object instance than the one contained
inside this object. Changes made to the original object instance (such as
resetting attribute values) will not affect the instance in this
object. In addition, the caller should make sure to free the
original object if it is no longer being used, or else a memory leak will
result. Please see other methods on this class (particularly a
corresponding method whose name begins with the word create
)
for alternatives that do not lead to these issues.
public int addCVTerm(CVTerm term)
CVTerm
object to this SBML object.
term
- the CVTerm
to assign.
newBag
- if true
, creates a new RDF bag with the same identifier
as a previous bag, and if false
, adds the term to an existing
RDF bag with the same type of qualifier as the term being added.
LIBSBML_OPERATION_SUCCESS
LIBSBML_OPERATION_FAILED
LIBSBML_UNEXPECTED_ATTRIBUTE
, if
this object lacks a 'metaid' attribute
LIBSBML_INVALID_OBJECT
CVTerm
will not be added.
, This method should be used with some caution. The fact that this
method copies the object passed to it means that the caller will be
left holding a physically different object instance than the one contained
inside this object. Changes made to the original object instance (such as
resetting attribute values) will not affect the instance in this
object. In addition, the caller should make sure to free the
original object if it is no longer being used, or else a memory leak will
result. Please see other methods on this class (particularly a
corresponding method whose name begins with the word create
)
for alternatives that do not lead to these issues.
public CVTermList getCVTerms()
CVTerm
objects in the annotations of this SBML
object.
public long getNumCVTerms()
CVTerm
objects in the annotations of this SBML
object.
public CVTerm getCVTerm(long n)
CVTerm
in the list of CVTerms of this SBML
object.
public int unsetCVTerms()
CVTerm
objects attached to this SBML object.
public int unsetModelHistory()
ModelHistory
object attached to this object.
public int getResourceBiologicalQualifier(java.lang.String resource)
In MIRIAM,
qualifiers are an optional means of indicating the relationship
between a model component and its annotations. There are two broad
kinds of annotations: model and biological. The
latter kind is used to qualify the relationship between a model
component and a biological entity which it represents. Examples of
relationships include 'is' and 'has part', but many others are
possible. MIRIAM defines numerous
relationship qualifiers to enable different software tools to
qualify biological annotations in the same standardized way. In
libSBML, the MIRIAM controlled-vocabulary annotations on an SBML model
element are represented using lists of CVTerm
objects, and the
the MIRIAM biological qualifiers are represented using
values whose
names begin with BQB_
in the interface class
libsbmlConstants
.
This method searches the controlled-vocabulary annotations
(i.e., the list of CVTerm
objects) on the present object, then out of
those that have biological qualifiers, looks for an annotation to the
given resource
. If such an annotation is found, it returns the
type of biological qualifier associated with that resource as a
value whose name
begins with BQB_
from the interface
class libsbmlConstants
.
resource
- string representing the resource e.g.,
'http://www.geneontology.org/#GO:0005892'
.
BQB_UNKNOWN
if the
resource does not exist.
BQB_
constants defined in libsbmlConstants
may be expanded in later libSBML releases, to match
the values defined by MIRIAM at that later time.public int getResourceModelQualifier(java.lang.String resource)
In MIRIAM,
qualifiers are an optional means of indicating the relationship
between a model component and its annotations. There are two broad
kinds of annotations: model and biological. The
former kind is used to qualify the relationship between a model
component and another modeling object. An example qualifier is
'isDerivedFrom', to indicate that a given component of the model is
derived from the modeling object represented by the referenced
resource. MIRIAM defines numerous
relationship qualifiers to enable different software tools to
qualify model annotations in the same standardized way. In libSBML,
the MIRIAM controlled-vocabulary annotations on an SBML model element
are represented using lists of CVTerm
objects, and the
the MIRIAM model qualifiers are represented using
values whose
names begin with BQM_
in the interface class
libsbmlConstants
.
This method method searches the controlled-vocabulary annotations
(i.e., the list of CVTerm
objects) on the present object, then out of
those that have model qualifiers, looks for an annotation to the given
resource
. If such an annotation is found, it returns the type of
type of model qualifier associated with that resource as a
value whose name
begins with BQM_
from the interface
class libsbmlConstants
.
resource
- string representing the resource e.g.,
'http://www.geneontology.org/#GO:0005892'
.
BQM_UNKNOWN
if the resource does not exist.
BQM_
constants defined in libsbmlConstants
may be expanded in later libSBML releases, to match
the values defined by MIRIAM at that later time.public Model getModel()
Model
object for the SBML Document in which the current object is located.
Model
object for the SBML Document of this SBML object.
SBase.getParentSBMLObject()
,
SBase.getSBMLDocument()
public long getLevel()
SBMLDocument
object containing this
object.
LibSBML uses the class SBMLDocument
as a top-level container for
storing SBML content and data associated with it (such as warnings and
error messages). An SBML model in libSBML is contained inside an
SBMLDocument
object. SBMLDocument
corresponds roughly to the class
SBML defined in the SBML Level 3 and Level 2
specifications, but it does not have a direct correspondence in SBML
Level 1. (But, it is created by libSBML no matter whether the
model is Level 1, Level 2 or Level 3.)
SBase.getVersion()
,
SBase.getNamespaces()
,
SBase.getPackageVersion()
public long getVersion()
SBMLDocument
object
containing this object.
LibSBML uses the class SBMLDocument
as a top-level container for
storing SBML content and data associated with it (such as warnings and
error messages). An SBML model in libSBML is contained inside an
SBMLDocument
object. SBMLDocument
corresponds roughly to the class
SBML defined in the SBML Level 3 and Level 2
specifications, but it does not have a direct correspondence in SBML
Level 1. (But, it is created by libSBML no matter whether the
model is Level 1, Level 2 or Level 3.)
SBase.getLevel()
,
SBase.getNamespaces()
public long getPackageVersion()
0
will be returned if this element
belongs to the SBML Level 3 Core package.
SBase.getLevel()
,
SBase.getVersion()
public java.lang.String getPackageName()
"core"
will be returned if this
element is defined in SBML Level 3 Core. The string
"unknown"
will be returned if this element is
not defined in any SBML package.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.
Here follow some additional general information about libSBML type codes:
SBase
subclass (e.g. SBMLLayoutTypeCode_t
for the SBML Level 3
Layout extension, SBMLFbcTypeCode_t
for the SBML Level 3 Flux
Balance Constraints extension, etc.).
SBase.getTypeCode()
and SBase.getPackageName()
must be
checked. This is particularly important for functions that take an SBML
type code as an argument, such as
SBase.getAncestorOfType(int, String)
, which by
default assumes you are handing it a core type, and will return null
if
the value you give it is actually from a package.
The following example code illustrates the combined use of
SBase.getPackageName()
and SBase.getTypeCode()
:
void example (SBase sb) { String pkgName = sb.getPackageName() if (pkgName.equals('core')) { switch (sb.getTypeCode()) { case libsbml.SBML_MODEL: .... break case libsbml.SBML_REACTION: .... } } else if (pkgName.equals('layout')) { switch (sb.getTypeCode()) { case libsbml.SBML_LAYOUT_LAYOUT: .... break case libsbml.SBML_LAYOUT_REACTIONGLYPH: .... } } ... }
SBML_UNKNOWN
(the default). The latter is possible because
subclasses of SBase
are not required to implement this method to return
a type code.
SBase.getPackageName()
,
SBase.getElementName()
public boolean hasValidLevelVersionNamespaceCombination()
true
if this object's level/version and namespace
values correspond to a valid SBML specification.
The valid combinations of SBML Level, Version and Namespace as of this release of libSBML are the following:
http
://www.sbml.org/sbml/level1
"
http
://www.sbml.org/sbml/level2
"
http
://www.sbml.org/sbml/level2/version2
"
http
://www.sbml.org/sbml/level2/version3
"
http
://www.sbml.org/sbml/level2/version4
"
http
://www.sbml.org/sbml/level2/version5
"
http
://www.sbml.org/sbml/level3/version1/core
"
true
if the level, version and namespace values of this
SBML object correspond to a valid set of values, false
otherwise.public java.lang.String getElementName()
This is overridden by subclasses to return a string appropriate to the
SBML component. For example, Model
defines it as returning
'model'
, CompartmentType
defines it as returning 'compartmentType'
,
and so on.
public java.lang.String toSBML()
public XMLNode toXMLNode()
XMLNode
.
XMLNode
.
XMLNode
structure. Attempting to convert a
large tree structure (e.g., a large Model
) may consume significant
computer memory and time.public SBasePlugin getPlugin(java.lang.String arg0)
SBML Level 3 consists of a Core definition that can be extended via optional SBML Level 3 packages. A given model may indicate that it uses one or more SBML packages, and likewise, a software tool may be able to support one or more packages. LibSBML does not come preconfigured with all possible packages included and enabled, in part because not all package specifications have been finalized. To support the ability for software systems to enable support for the Level 3 packages they choose, libSBML features a plug-in mechanism. Each SBML Level 3 package is implemented in a separate code plug-in that can be enabled by the application to support working with that SBML package. A given SBML model may thus contain not only objects defined by SBML Level 3 Core, but also objects created by libSBML plug-ins supporting additional Level 3 packages.
package
- the name or URI of the package
SBase.getPlugin(long n)
public SBasePlugin getPlugin(long n)
SBML Level 3 consists of a Core definition that can be extended via optional SBML Level 3 packages. A given model may indicate that it uses one or more SBML packages, and likewise, a software tool may be able to support one or more packages. LibSBML does not come preconfigured with all possible packages included and enabled, in part because not all package specifications have been finalized. To support the ability for software systems to enable support for the Level 3 packages they choose, libSBML features a plug-in mechanism. Each SBML Level 3 package is implemented in a separate code plug-in that can be enabled by the application to support working with that SBML package. A given SBML model may thus contain not only objects defined by SBML Level 3 Core, but also objects created by libSBML plug-ins supporting additional Level 3 packages.
n
- the index of the plug-in to return
SBase.getNumPlugins()
,
SBase.getPlugin(String)
public SBasePlugin getDisabledPlugin(long n)
SBML Level 3 consists of a Core definition that can be extended via optional SBML Level 3 packages. A given model may indicate that it uses one or more SBML packages, and likewise, a software tool may be able to support one or more packages. LibSBML does not come preconfigured with all possible packages included and enabled, in part because not all package specifications have been finalized. To support the ability for software systems to enable support for the Level 3 packages they choose, libSBML features a plug-in mechanism. Each SBML Level 3 package is implemented in a separate code plug-in that can be enabled by the application to support working with that SBML package. A given SBML model may thus contain not only objects defined by SBML Level 3 Core, but also objects created by libSBML plug-ins supporting additional Level 3 packages.
If a plugin is disabled, the package information it contains is no longer considered to be part of the SBML document for the purposes of searching the document or writing out the document. However, the information is still retained, so if the plugin is enabled again, the same information will once again be available, and will be written out to the final model.
n
- the index of the disabled plug-in to return
SBase.getNumDisabledPlugins()
,
SBase.getPlugin(String)
public long getNumPlugins()
SBML Level 3 consists of a Core definition that can be extended via optional SBML Level 3 packages. A given model may indicate that it uses one or more SBML packages, and likewise, a software tool may be able to support one or more packages. LibSBML does not come preconfigured with all possible packages included and enabled, in part because not all package specifications have been finalized. To support the ability for software systems to enable support for the Level 3 packages they choose, libSBML features a plug-in mechanism. Each SBML Level 3 package is implemented in a separate code plug-in that can be enabled by the application to support working with that SBML package. A given SBML model may thus contain not only objects defined by SBML Level 3 Core, but also objects created by libSBML plug-ins supporting additional Level 3 packages.
SBase.getPlugin(long n)
public long getNumDisabledPlugins()
SBML Level 3 consists of a Core definition that can be extended via optional SBML Level 3 packages. A given model may indicate that it uses one or more SBML packages, and likewise, a software tool may be able to support one or more packages. LibSBML does not come preconfigured with all possible packages included and enabled, in part because not all package specifications have been finalized. To support the ability for software systems to enable support for the Level 3 packages they choose, libSBML features a plug-in mechanism. Each SBML Level 3 package is implemented in a separate code plug-in that can be enabled by the application to support working with that SBML package. A given SBML model may thus contain not only objects defined by SBML Level 3 Core, but also objects created by libSBML plug-ins supporting additional Level 3 packages.
If a plugin is disabled, the package information it contains is no longer considered to be part of the SBML document for the purposes of searching the document or writing out the document. However, the information is still retained, so if the plugin is enabled again, the same information will once again be available, and will be written out to the final model.
public void deleteDisabledPlugins(boolean recursive)
SBML Level 3 consists of a Core definition that can be extended via optional SBML Level 3 packages. A given model may indicate that it uses one or more SBML packages, and likewise, a software tool may be able to support one or more packages. LibSBML does not come preconfigured with all possible packages included and enabled, in part because not all package specifications have been finalized. To support the ability for software systems to enable support for the Level 3 packages they choose, libSBML features a plug-in mechanism. Each SBML Level 3 package is implemented in a separate code plug-in that can be enabled by the application to support working with that SBML package. A given SBML model may thus contain not only objects defined by SBML Level 3 Core, but also objects created by libSBML plug-ins supporting additional Level 3 packages.
If a plugin is disabled, the package information it contains is no longer considered to be part of the SBML document for the purposes of searching the document or writing out the document. However, the information is still retained, so if the plugin is enabled again, the same information will once again be available, and will be written out to the final model.
recursive
- if true
, the disabled information will be deleted
also from all child elements, otherwise only from this SBase
element.
SBase.getNumDisabledPlugins()
public void deleteDisabledPlugins()
SBML Level 3 consists of a Core definition that can be extended via optional SBML Level 3 packages. A given model may indicate that it uses one or more SBML packages, and likewise, a software tool may be able to support one or more packages. LibSBML does not come preconfigured with all possible packages included and enabled, in part because not all package specifications have been finalized. To support the ability for software systems to enable support for the Level 3 packages they choose, libSBML features a plug-in mechanism. Each SBML Level 3 package is implemented in a separate code plug-in that can be enabled by the application to support working with that SBML package. A given SBML model may thus contain not only objects defined by SBML Level 3 Core, but also objects created by libSBML plug-ins supporting additional Level 3 packages.
If a plugin is disabled, the package information it contains is no longer considered to be part of the SBML document for the purposes of searching the document or writing out the document. However, the information is still retained, so if the plugin is enabled again, the same information will once again be available, and will be written out to the final model.
recursive
- if true
, the disabled information will be deleted
also from all child elements, otherwise only from this SBase
element.
SBase.getNumDisabledPlugins()
public int enablePackage(java.lang.String pkgURI, java.lang.String pkgPrefix, boolean flag)
This method enables the specified package on this object and other
objects connected by child-parent links in the same SBMLDocument
object.
This method is the converse of
SBase.disablePackage(String pkgURI, String pkgPrefix)
.
pkgURI
- the URI of the package.
pkgPrefix
- the XML prefix of the package
flag
- whether to enable (true
) or disable (false
) the package
SBase.disablePackage(String pkgURI, String pkgPrefix)
public int disablePackage(java.lang.String pkgURI, java.lang.String pkgPrefix)
This method disables the specified package on this object
and other objects connected by child-parent links in the same
SBMLDocument
object.
An example of when this may be useful is during construction of model
components when mixing existing and new models. Suppose your
application read an SBML document containing a model that used the SBML
Hierarchical Model Composition (&ldquocomp&rdquo) package, and
extracted parts of that model in order to construct a new model in
memory. The new, in-memory model will not accept a component drawn from
another SBMLDocument
with different package namespace declarations.
You could reconstruct the same namespaces in the in-memory model first,
but as a shortcut, you could also disable the package namespace on the
object being added. Here is a code example to help clarify this:
// We read in an SBML L3V1 model that uses the 'comp' package namespaceSBMLReader
reader = newSBMLReader
()SBMLDocument
doc = reader.readSBML('sbml-file-with-comp-elements.xml') // We extract one of the species from the model we just read in.Species
s1 = doc.getModel().getSpecies(0) // We construct a new model. This model does not use the 'comp' package.Model
newModel = newModel
(3,1) // The following will fail with an error, because addSpecies() will // first check that the parent of the given object has namespaces // declared, and will discover that s1 does but newModel does not. // newModel->addSpecies(s1) // However, if we disable the 'comp' package on s1, then the call // to addSpecies will work. s1->disablePackage('http://www.sbml.org/sbml/level3/version1/comp/version1', 'comp') newModel.addSpecies(s1)
pkgURI
- the URI of the package
pkgPrefix
- the XML prefix of the package
SBase.enablePackage(String pkgURI, String pkgPrefix, boolean flag)
public boolean isPackageURIEnabled(java.lang.String pkgURI)
true
if an SBML Level 3 package with the
given URI is enabled with this object.
pkgURI
- the URI of the package
true
if the given package is enabled within this object, @c
false otherwise.
SBase.isPackageEnabled(String)
public boolean isPackageEnabled(java.lang.String pkgName)
true
if the given SBML Level 3 package is
enabled with this object.
The search ignores the package version.
pkgName
- the name of the package
true
if the given package is enabled within this object,
false
otherwise.
SBase.isPackageURIEnabled(String)
public boolean isPkgURIEnabled(java.lang.String pkgURI)
SBase.isPackageURIEnabled(String)
.
true
if an SBML Level 3 package with the
given URI is enabled with this object.
pkgURI
- the URI of the package
true
if the given package is enabled within this object, @c
false otherwise.
SBase.isPkgEnabled(String)
public boolean isPkgEnabled(java.lang.String pkgName)
SBase.isPackageEnabled(String)
.
true
if the given SBML Level 3 package is
enabled with this object.
The search ignores the package version.
pkgName
- the name of the package
true
if the given package is enabled within this object,
false
otherwise.
SBase.isPkgURIEnabled(String)
public int removeFromParentAndDelete()
If the parent was storing this object as a pointer, it is deleted. If
not, it is simply cleared (as in ListOf
objects). This is a pure
virtual method, as every SBase
element has different parents, and
therefore different methods of removing itself. Will fail (and not
delete itself) if it has no parent object. This function is designed to
be overridden, but for all objects whose parent is of the class ListOf
,
the default implementation will work.
public boolean matchesSBMLNamespaces(SBase sb)
true
if this object's set of XML namespaces are the same
as the given object's XML namespaces.
The SBMLNamespaces
object encapsulates SBML Level/Version/namespaces
information. It is used to communicate the SBML Level, Version, and (in
Level 3) packages used in addition to SBML Level 3 Core. A
common approach to using libSBML's SBMLNamespaces
facilities is to create an
SBMLNamespaces
object somewhere in a program once, then hand that object
as needed to object constructors that accept SBMLNamespaces
as arguments.
sb
- an object to compare with respect to namespaces
true
if this object's collection of namespaces is
the same as sb's
, false
otherwise.public boolean matchesRequiredSBMLNamespacesForAddition(SBase sb)
true
if this object's set of XML namespaces are a subset
of the given object's XML namespaces.
The SBMLNamespaces
object encapsulates SBML Level/Version/namespaces
information. It is used to communicate the SBML Level, Version, and (in
Level 3) packages used in addition to SBML Level 3 Core. A
common approach to using libSBML's SBMLNamespaces
facilities is to create an
SBMLNamespaces
object somewhere in a program once, then hand that object
as needed to object constructors that accept SBMLNamespaces
as arguments.
sb
- an object to compare with respect to namespaces
true
if this object's collection of namespaces is
a subset of sb's
, false
otherwise.public boolean isSetUserData()
The user data associated with an SBML object can be used by an application developer to attach custom information to that object in the model. In case of a deep copy, this data will passed as-is. The data attribute will never be interpreted by libSBML.
true
if this object's user data has been set,
false
otherwise.public int unsetUserData()
The user data associated with an SBML object can be used by an application developer to attach custom information to that object in the model. In case of a deep copy, this data will passed as-is. The data attribute will never be interpreted by libSBML.
public java.lang.String getURI()
For example, all elements that belong to SBML Level 3 Version 1 Core
must would have the URI 'http://www.sbml.org/sbml/level3/version1/core'
all elements that belong to Layout
Extension Version 1 for SBML Level 3
Version 1 Core must would have the URI
'http://www.sbml.org/sbml/level3/version1/layout/version1'
.
This function first returns the URI for this element by looking into the
SBMLNamespaces
object of the document with the its package name. If not
found, it will then look for the namespace associated with the element
itself.
SBase.getSBMLDocument()
,
SBase.getPackageName()
public java.lang.String getPrefix()
This reports the XML namespace prefix chosen for this class of object in the current SBML document. This may be an empty string if the component has no explicit prefix (for instance, if it is a core SBML object placed in the default SBML namespace of the document). If it is not empty, then it corresponds to the XML namespace prefix used set the object, whatever that may be in a given SBML document.
public SBaseList getListOfAllElements(ElementFilter filter)
public SBaseList getListOfAllElements()
public SBaseList getListOfAllElementsFromPlugins(ElementFilter filter)
public SBaseList getListOfAllElementsFromPlugins()