public class ListOfGroups extends ListOf
Group
objects.
The SBML Level 3 Groups package provides a means of defining a
group of entities: a simple mechanism for indicating that
particular components of an SBML model are related in some way. A group
is defined using a Group
class object, and all the Group
objects in a
model are stored in the parent Model
object within a ListOfGroups
object.
A ListOfGroups
is optional, but, if present, must contain at least one
Group
object. In common with other ListOf___ classes in SBML,
ListOfGroups
is derived from SBase
. It inherits SBase
's attributes
'metaid' and 'sboTerm', as well as the subcomponents for Annotation and
Notes, but does not add any new attributes of its own.
The various ListOf___ classes in SBML
are merely containers used for organizing the main components of an SBML
model. In libSBML's implementation, ListOf___
classes are derived from the
intermediate utility class ListOf
, which
is not defined by the SBML specifications but serves as a useful
programmatic construct. ListOf
is itself is in turn derived from SBase
,
which provides all of the various ListOf___
classes with common features
defined by the SBML specification, such as 'metaid' attributes and
annotations.
The relationship between the lists and the rest of an SBML model is illustrated by the following (for SBML Level 2 Version 4):
SBML Level 3 Version 1 has essentially the same structure as Level 2 Version 4, depicted above, but SBML Level 3 Version 2 allows containers to contain zero or more of the relevant object, instead of requiring at least one. As such, libsbml will write out an otherwise-empty ListOf___ element that has any optional attribute set (such as 'id' or 'metaid'), that has an optional child (such as a 'notes' or 'annotation'), or that has attributes or children set from any SBML Level 3 package, whether or not the ListOf___ has any other children.
Readers may wonder about the motivations for using the ListOf___
containers in SBML. A simpler approach in XML might be to place the
components all directly at the top level of the model definition. The
choice made in SBML is to group them within XML elements named after
ListOfClassname, in part because it helps organize the
components. More importantly, the fact that the container classes are
derived from SBase
means that software tools can add information about
the lists themselves into each list container's 'annotation'.
Constructor and Description |
---|
ListOfGroups()
Creates a new
ListOfGroups using the given SBML Level, Version and
&ldquogroups&rdquo package version. |
ListOfGroups(GroupsPkgNamespaces groupsns)
Creates a new
ListOfGroups using the given GroupsPkgNamespaces object. |
ListOfGroups(ListOfGroups orig)
Copy constructor for
ListOfGroups . |
ListOfGroups(long level)
Creates a new
ListOfGroups using the given SBML Level, Version and
&ldquogroups&rdquo package version. |
ListOfGroups(long level,
long version)
Creates a new
ListOfGroups using the given SBML Level, Version and
&ldquogroups&rdquo package version. |
ListOfGroups(long level,
long version,
long pkgVersion)
Creates a new
ListOfGroups using the given SBML Level, Version and
&ldquogroups&rdquo package version. |
Modifier and Type | Method and Description |
---|---|
int |
addGroup(Group g)
Adds a copy of the given
Group to this ListOfGroups . |
ListOfGroups |
cloneObject()
Creates and returns a deep copy of this
ListOfGroups object. |
Group |
createGroup()
Creates a new
Group object, adds it to this ListOfGroups object and
returns the Group object created. |
void |
delete()
Explicitly deletes the underlying native object.
|
Group |
get(long n)
Get a
Group from the ListOfGroups . |
Group |
get(java.lang.String sid)
Get a
Group from the ListOfGroups based on its identifier. |
java.lang.String |
getElementName()
Returns the XML element name of this
ListOfGroups object. |
int |
getItemTypeCode()
Returns the libSBML type code for the SBML objects contained in this
ListOfGroups object. |
long |
getNumGroups()
Get the number of
Group objects in this ListOfGroups . |
int |
getTypeCode()
Returns the libSBML type code for this
ListOfGroups object. |
Group |
remove(long n)
Removes the nth
Group from this ListOfGroups and returns a pointer to it. |
Group |
remove(java.lang.String sid)
Removes the
Group from this ListOfGroups based on its identifier and
returns a pointer to it. |
append, appendAndOwn, appendFrom, clear, clear, connectToChild, getElementByMetaId, getElementBySId, insert, insertAndOwn, removeFromParentAndDelete, size
addCVTerm, addCVTerm, appendAnnotation, appendAnnotation, appendNotes, appendNotes, deleteDisabledPlugins, deleteDisabledPlugins, disablePackage, enablePackage, equals, getAncestorOfType, getAncestorOfType, getAnnotation, getAnnotationString, getColumn, getCVTerm, getCVTerms, getDisabledPlugin, getId, getIdAttribute, getLevel, getLine, getListOfAllElements, getListOfAllElements, getListOfAllElementsFromPlugins, getListOfAllElementsFromPlugins, getMetaId, getModel, getModelHistory, getName, getNamespaces, getNotes, getNotesString, getNumCVTerms, getNumDisabledPlugins, getNumPlugins, getObjectVersion, getPackageName, getPackageVersion, getParentSBMLObject, getPlugin, getPlugin, getPrefix, getResourceBiologicalQualifier, getResourceModelQualifier, getSBMLDocument, getSBOTerm, getSBOTermAsURL, getSBOTermID, getURI, getVersion, hashCode, hasValidLevelVersionNamespaceCombination, isPackageEnabled, isPackageURIEnabled, isPkgEnabled, isPkgURIEnabled, isSetAnnotation, isSetId, isSetIdAttribute, isSetMetaId, isSetModelHistory, isSetName, isSetNotes, isSetSBOTerm, isSetUserData, matchesRequiredSBMLNamespacesForAddition, matchesSBMLNamespaces, removeTopLevelAnnotationElement, removeTopLevelAnnotationElement, removeTopLevelAnnotationElement, renameMetaIdRefs, renameSIdRefs, renameUnitSIdRefs, replaceTopLevelAnnotationElement, replaceTopLevelAnnotationElement, setAnnotation, setAnnotation, setId, setIdAttribute, setMetaId, setModelHistory, setName, setNamespaces, setNotes, setNotes, setNotes, setSBOTerm, setSBOTerm, toSBML, toXMLNode, unsetAnnotation, unsetCVTerms, unsetId, unsetIdAttribute, unsetMetaId, unsetModelHistory, unsetName, unsetNotes, unsetSBOTerm, unsetUserData
public ListOfGroups(long level, long version, long pkgVersion) throws SBMLConstructorException
ListOfGroups
using the given SBML Level, Version and
&ldquogroups&rdquo package version.
level
- a long integer, the SBML Level to assign to this
ListOfGroups
.
version
- a long integer, the SBML Version to assign to this
ListOfGroups
.
pkgVersion
- a long integer, the SBML Groups Version to assign to
this ListOfGroups
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfGroups(long level, long version) throws SBMLConstructorException
ListOfGroups
using the given SBML Level, Version and
&ldquogroups&rdquo package version.
level
- a long integer, the SBML Level to assign to this
ListOfGroups
.
version
- a long integer, the SBML Version to assign to this
ListOfGroups
.
pkgVersion
- a long integer, the SBML Groups Version to assign to
this ListOfGroups
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfGroups(long level) throws SBMLConstructorException
ListOfGroups
using the given SBML Level, Version and
&ldquogroups&rdquo package version.
level
- a long integer, the SBML Level to assign to this
ListOfGroups
.
version
- a long integer, the SBML Version to assign to this
ListOfGroups
.
pkgVersion
- a long integer, the SBML Groups Version to assign to
this ListOfGroups
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfGroups() throws SBMLConstructorException
ListOfGroups
using the given SBML Level, Version and
&ldquogroups&rdquo package version.
level
- a long integer, the SBML Level to assign to this
ListOfGroups
.
version
- a long integer, the SBML Version to assign to this
ListOfGroups
.
pkgVersion
- a long integer, the SBML Groups Version to assign to
this ListOfGroups
.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfGroups(GroupsPkgNamespaces groupsns) throws SBMLConstructorException
ListOfGroups
using the given GroupsPkgNamespaces
object.
The package namespaces object used in this constructor is derived from a
SBMLNamespaces
object, which encapsulates SBML Level/Version/namespaces
information. It is used to communicate the SBML Level, Version, and
package version and name information used in addition to SBML Level 3 Core. A
common approach to using libSBML's SBMLNamespaces
facilities is to create an
package namespace object somewhere in a program once, then hand that object
as needed to object constructors of that package that accept it as and
argument, such as this one.
groupsns
- the GroupsPkgNamespaces
object.
SBMLConstructorException
SBMLDocument
having a different
combination of SBML Level, Version and XML namespaces than the object
itself will result in an error at the time a caller attempts to make the
addition. A parent object must have compatible Level, Version and XML
namespaces. (Strictly speaking, a parent may also have more XML
namespaces than a child, but the reverse is not permitted.) The
restriction is necessary to ensure that an SBML model has a consistent
overall structure. This requires callers to manage their objects
carefully, but the benefit is increased flexibility in how models can be
created by permitting callers to create objects bottom-up if desired. In
situations where objects are not yet attached to parents (e.g.,
SBMLDocument
), knowledge of the intented SBML Level and Version help
libSBML determine such things as whether it is valid to assign a
particular value to an attribute. For packages, this means that the
parent object to which this package element is being added must have
been created with the package namespace, or that the package namespace
was added to it, even if that parent is not a package object itself.public ListOfGroups(ListOfGroups orig) throws SBMLConstructorException
ListOfGroups
.
orig
- the ListOfGroups
instance to copy.SBMLConstructorException
public void delete()
In general, application software will not need to call this method directly. The Java language binding for libSBML is implemented as a language wrapper that provides a Java interface to libSBML's underlying C++/C code. Some of the Java methods return objects that are linked to objects created not by Java code, but by C++ code. The Java objects wrapped around them will be deleted when the garbage collector invokes the corresponding C++ finalize()
methods for the objects. The finalize()
methods in turn call the ListOfGroups.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 ListOfGroups.delete()
themselves.
public ListOfGroups cloneObject()
ListOfGroups
object.
cloneObject
 in class ListOf
ListOfGroups
object.public Group get(long n)
Group
from the ListOfGroups
.
get
 in class ListOf
n
- a long integer representing the index of the Group
to retrieve.
Group
in this ListOfGroups
.
ListOfGroups.addGroup(Group g)
,
ListOfGroups.createGroup()
,
ListOfGroups.get(String sid)
,
ListOfGroups.getNumGroups()
,
ListOfGroups.remove(String sid)
,
ListOfGroups.remove(long n)
public Group get(java.lang.String sid)
Group
from the ListOfGroups
based on its identifier.
sid
- a string representing the identifier of the Group
to retrieve.
Group
in this ListOfGroups
with the given id or null if no
such Group
exists.
ListOfGroups.addGroup(Group g)
,
ListOfGroups.createGroup()
,
ListOfGroups.get(long n)
,
ListOfGroups.getNumGroups()
,
ListOfGroups.remove(String sid)
,
ListOfGroups.remove(long n)
public Group remove(long n)
Group
from this ListOfGroups
and returns a pointer to it.
remove
 in class ListOf
n
- a long integer representing the index of the Group
to remove.
Group
in this ListOfGroups
.
ListOfGroups.addGroup(Group g)
,
ListOfGroups.createGroup()
,
ListOfGroups.get(String sid)
,
ListOfGroups.get(long n)
,
ListOfGroups.getNumGroups()
,
ListOfGroups.remove(String sid)
public Group remove(java.lang.String sid)
Group
from this ListOfGroups
based on its identifier and
returns a pointer to it.
sid
- a string representing the identifier of the Group
to remove.
Group
in this ListOfGroups
based on the identifier or null if
no such Group
exists.
ListOfGroups.addGroup(Group g)
,
ListOfGroups.createGroup()
,
ListOfGroups.get(String sid)
,
ListOfGroups.get(long n)
,
ListOfGroups.getNumGroups()
,
ListOfGroups.remove(long n)
public int addGroup(Group g)
Group
to this ListOfGroups
.
g
- the Group
object to add.
LIBSBML_OPERATION_SUCCESS
LIBSBML_OPERATION_FAILED
LIBSBML_INVALID_OBJECT
LIBSBML_LEVEL_MISMATCH
LIBSBML_VERSION_MISMATCH
LIBSBML_NAMESPACES_MISMATCH
ListOfGroups.createGroup()
,
ListOfGroups.get(String sid)
,
ListOfGroups.get(long n)
,
ListOfGroups.getNumGroups()
,
ListOfGroups.remove(String sid)
,
ListOfGroups.remove(long n)
create
)
for alternatives that do not lead to these issues.
public long getNumGroups()
Group
objects in this ListOfGroups
.
Group
objects in this ListOfGroups
.
ListOfGroups.createGroup()
,
ListOfGroups.get(String sid)
,
ListOfGroups.get(long n)
,
ListOfGroups.remove(String sid)
,
ListOfGroups.remove(long n)
public Group createGroup()
Group
object, adds it to this ListOfGroups
object and
returns the Group
object created.
Group
object instance.
ListOfGroups.get(String sid)
,
ListOfGroups.get(long n)
,
ListOfGroups.getNumGroups()
,
ListOfGroups.remove(String sid)
,
ListOfGroups.remove(long n)
public java.lang.String getElementName()
ListOfGroups
object.
For ListOfGroups
, the XML element name is always 'listOfGroups'.
getElementName
 in class ListOf
'listOfGroups'.
public int getTypeCode()
ListOfGroups
object.
LibSBML attaches an identifying code to every kind of SBML object. These
are integer constants known as SBML type codes. The names of all
the codes begin with the characters SBML_
.
In the Java language interface for libSBML, the
type codes are defined as static integer constants in the interface class
libsbmlConstants
. Note that different Level 3
package plug-ins may use overlapping type codes to identify the package
to which a given object belongs, call the getPackageName()
method on the object.
getTypeCode
 in class ListOf
SBML_LIST_OF
.
ListOf.getItemTypeCode()
,
ListOf.getElementName()
,
SBase.getPackageName()
public int getItemTypeCode()
ListOfGroups
object.
LibSBML attaches an identifying code to every kind of SBML object. These
are integer constants known as SBML type codes. The names of all
the codes begin with the characters SBML_
.
In the Java language interface for libSBML, the
type codes are defined as static integer constants in the interface class
libsbmlConstants
. Note that different Level 3
package plug-ins may use overlapping type codes to identify the package
to which a given object belongs, call the getPackageName()
method on the object.
getItemTypeCode
 in class ListOf
SBML_GROUPS_GROUP
.
ListOfGroups.getElementName()
,
SBase.getPackageName()