public class SBase extends 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(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(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 |
delete()
Explicitly deletes the underlying native object.
|
int |
disablePackage(String pkgURI,
String pkgPrefix)
Disables the given SBML Level 3 package
|
int |
enablePackage(String pkgURI,
String pkgPrefix,
boolean flag)
Enables or disables the given SBML Level 3 package
|
boolean |
equals(Object sb)
Equality comparison method for SBase.
|
SBase |
getAncestorOfType(int type)
Returns the first ancestor object that has the given SBML type code.
|
SBase |
getAncestorOfType(int type,
String pkgName)
Returns the first ancestor object that has the given SBML type code.
|
XMLNode |
getAnnotation()
Returns the content of the 'annotation' subelement of this object as
a tree of
XMLNode objects. |
String |
getAnnotationString()
Returns the content of the 'annotation' subelement of this object as a
character string.
|
long |
getColumn()
Returns the column number on which 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. |
SBase |
getElementByMetaId(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(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. |
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 on which this object first appears in the XML
representation of the SBML document.
|
SBaseList |
getListOfAllElements()   |
SBaseList |
getListOfAllElementsFromPlugins()   |
String |
getMetaId()
Returns the value of the 'metaid' attribute of this object.
|
Model |
getModel()
Returns the
Model object 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 this SBML document.
|
XMLNode |
getNotes()
Returns the content of the 'notes' subelement of this object as
a tree of
XMLNode objects. |
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 |
getNumPlugins()
Returns the number of plug-in objects (extenstion interfaces) for SBML
Level 3 package extensions known.
|
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(String arg0)
Returns a plug-in object (extension interface) for an SBML Level 3
package extension with the given package name or URI.
|
int |
getResourceBiologicalQualifier(String resource)
Returns the MIRIAM biological qualifier associated with the
given resource.
|
int |
getResourceModelQualifier(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.
|
String |
getSBOTermAsURL()
Returns the identifiers.org URL representation of the 'sboTerm' attribute of
this object.
|
String |
getSBOTermID()
Returns the string representation of the 'sboTerm' attribute of
this object.
|
int |
getTypeCode()
Returns the libSBML type code for this object.
|
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(String pkgName)
Predicate returning
true if the given SBML Level 3 package is
enabled with this object. |
boolean |
isPackageURIEnabled(String pkgURI)
Predicate returning
true if an SBML Level 3 package with the
given URI is enabled with this object. |
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 |
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 itself from its parent.
|
int |
removeTopLevelAnnotationElement(String elementName)
Removes the top-level element within the 'annotation' subelement of this
SBML object with the given name and optional URI.
|
int |
removeTopLevelAnnotationElement(String elementName,
String elementURI)
Removes the top-level element within the 'annotation' subelement of this
SBML object with the given name and optional URI.
|
void |
renameMetaIdRefs(String oldid,
String newid)
Renames all the
MetaIdRef attributes on this element. |
void |
renameSIdRefs(String oldid,
String newid)
Renames all the
SIdRef attributes on this element, including any
found in MathML content (if such exists). |
void |
renameUnitSIdRefs(String oldid,
String newid)
Renames all the
UnitSIdRef attributes on this element. |
int |
replaceTopLevelAnnotationElement(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(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(String metaid)
Sets the value of the 'metaid' 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(String notes)
Sets the value of the 'notes' subelement of this SBML object to a copy
of the string
notes . |
int |
setNotes(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(String sboid)
Sets the value of the 'sboTerm' attribute by string.
|
String |
toSBML()
Returns a string consisting of a partial SBML corresponding to just
this object.
|
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.
|
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.
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.
public int appendAnnotation(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
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode 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
SBase.getAnnotationString()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public int appendNotes(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 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 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)
,
SBase.appendNotes(XMLNode notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
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 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 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)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
public SBase cloneObject()
SBase
object.
SBase
object.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 int disablePackage(String pkgURI, String pkgPrefix)
This method enables or disables the specified package on this object
and other objects connected by child-parent links in the same
SBMLDocument
object.
pkgURI
- the URI of the package
pkgPrefix
- the XML prefix of the package
public int enablePackage(String pkgURI, String pkgPrefix, boolean flag)
This method enables or disables the specified package on this object
and other objects connected by child-parent links in the same
SBMLDocument
object.
pkgURI
- the URI of the package
pkgPrefix
- the XML prefix of the package
flag
- whether to enable (true
) or disable (false
) the package
public boolean equals(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.
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.
If the optional argument pkgName
is given, it will cause the search
to be limited to the SBML Level 3 package given.
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.
public SBase getAncestorOfType(int type, 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.
If the optional argument pkgName
is given, it will cause the search
to be limited to the SBML Level 3 package given.
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.
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 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.
SBase.getAnnotation()
,
SBase.isSetAnnotation()
,
SBase.setAnnotation(XMLNode annotation)
,
SBase.setAnnotation(String annotation)
,
SBase.appendAnnotation(XMLNode annotation)
,
SBase.appendAnnotation(String annotation)
,
SBase.unsetAnnotation()
public long getColumn()
SBase.getLine()
public CVTerm getCVTerm(long n)
CVTerm
in the list of CVTerms of this SBML
object.
public CVTermList getCVTerms()
CVTerm
objects in the annotations of this SBML
object.
public SBase getElementByMetaId(String metaid)
null
if no such object is found.
metaid
- string representing the 'metaid' attribute value of the
object to find.
public SBase getElementBySId(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 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 long getLevel()
SBMLDocument
object containing this
object.
SBase.getVersion()
,
SBase.getNamespaces()
,
SBase.getPackageVersion()
public long getLine()
SBase.getColumn()
public SBaseList getListOfAllElements()
public SBaseList getListOfAllElementsFromPlugins()
public 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. (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.
SBase.isSetMetaId()
,
SBase.setMetaId(String metaid)
public Model getModel()
Model
object in which the current object is located.
Model
of this SBML object.
SBase.getParentSBMLObject()
,
SBase.getSBMLDocument()
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 XMLNamespaces getNamespaces()
The SBMLNamespaces
object encapsulates SBML Level/Version/namespaces
information. It is used to communicate the SBML Level, Version, and
(in SBML Level 3) packages used in addition to SBML Level 3
Core.
SBase.getLevel()
,
SBase.getVersion()
public XMLNode getNotes()
XMLNode
objects.
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.
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)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
public String getNotesString()
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.
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)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
public long getNumCVTerms()
CVTerm
objects in the annotations of this SBML
object.
public long getNumPlugins()
public 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 long getPackageVersion()
0
will be returned if this element
belongs to the SBML Level 3 Core package.
SBase.getLevel()
,
SBase.getVersion()
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 SBasePlugin getPlugin(long n)
n
- the index of the plug-in to return
public SBasePlugin getPlugin(String arg0)
package
- the name or URI of the package
public int getResourceBiologicalQualifier(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(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 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 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 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 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 int getTypeCode()
This method may return the type code of this SBML object, or it may
return SBML_UNKNOWN
. This
is because subclasses of SBase
are not required to implement this
method to return a type code. This method is meant primarily for the
LibSBML C interface, in which class and subclass information is not
readily available.
SBML_UNKNOWN
(the default).
SBase.getElementName()
,
SBase.getPackageName()
public long getVersion()
SBMLDocument
object
containing this object.
SBase.getLevel()
,
SBase.getNamespaces()
public int hashCode()
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/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 boolean isPackageEnabled(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 pkgURI)
public boolean isPackageURIEnabled(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 pkgName)
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 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. (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.
true
if the 'metaid' attribute of this SBML object is
set, false
otherwise.
SBase.getMetaId()
,
SBase.setMetaId(String metaid)
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 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)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
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 boolean matchesRequiredSBMLNamespacesForAddition(SBase sb)
true
if this object's set of XML namespaces are a subset
of the given object's XML namespaces.
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 matchesSBMLNamespaces(SBase sb)
true
if this object's set of XML namespaces are the same
as the given object's XML namespaces.
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 int removeFromParentAndDelete()
ListOf
objects). Pure virutal, 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 int removeTopLevelAnnotationElement(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 removed
SBase.replaceTopLevelAnnotationElement(XMLNode )
,
SBase.replaceTopLevelAnnotationElement(String)
public int removeTopLevelAnnotationElement(String elementName, 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 removed
SBase.replaceTopLevelAnnotationElement(XMLNode )
,
SBase.replaceTopLevelAnnotationElement(String)
public void renameMetaIdRefs(String oldid, String newid)
MetaIdRef
attributes on this element.
This method works by looking at all meta-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 renameSIdRefs(String oldid, String newid)
SIdRef
attributes on this element, including any
found in MathML content (if such exists).
This method works by looking at all attributes and (if appropriate)
mathematical formulas, 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(String oldid, String newid)
UnitSIdRef
attributes on this element.
This method works by looking at all unit identifier attribute values
(including, if appropriate, inside mathematical formulas), comparing the
unit 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 int replaceTopLevelAnnotationElement(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) 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 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) 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)
,
SBase.replaceTopLevelAnnotationElement(String)
public int setAnnotation(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 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 setMetaId(String metaid)
The string metaid
is copied. The value of metaid
must be an
identifier conforming to the syntax defined by the XML 1.0 data type
ID. Among other
things, this type requires that a value is unique among all the values
of type XML ID in an SBMLDocument
. Although SBML only uses XML ID for the 'metaid'
attribute, callers 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.
metaid
- the identifier string to use as the value of the
'metaid' attribute
SBase.getMetaId()
,
SBase.isSetMetaId()
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 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 setNotes(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 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.
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 xhtml)
public int setNotes(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 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.
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 xhtml)
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)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SBase.unsetNotes()
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
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 sbo_id)
public int setSBOTerm(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 String toSBML()
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 unsetCVTerms()
CVTerm
objects attached to this SBML object.
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. The
data type of 'id' is always either Sid
or
UnitSId
, depending on the object in question. Both
data types are defined as follows:
letter .= 'a'..'z','A'..'Z' digit .= '0'..'9' idChar .= letter | digit | '_' SId .= ( letter | '_' ) idChar*
The equality of SId
and UnitSId
type values
in SBML is determined by an exact character sequence match i.e.,
comparisons of these identifiers must be performed in a case-sensitive
manner. This applies to all uses of SId
and
UnitSId
.
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. (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.
public int unsetModelHistory()
ModelHistory
object attached to this object.
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 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.
SBase.getNotesString()
,
SBase.isSetNotes()
,
SBase.setNotes(XMLNode notes)
,
SBase.setNotes(String notes)
,
SBase.appendNotes(XMLNode notes)
,
SBase.appendNotes(String notes)
,
SyntaxChecker.hasExpectedXHTMLSyntax(XMLNode xhtml)
public int unsetSBOTerm()