public class SBasePlugin extends java.lang.Object
Additional attributes and/or elements of a package extension which are directly
contained by some pre-defined element are contained/accessed by
SBasePlugin
class which is extended by package developers for each extension point.
The extension point, which represents an element to be extended, is identified by a
combination of a Package name and a typecode of the element, and is represented by
SBaseExtensionPoint
class.
For example, the layout extension defines <listOfLayouts> element which is
directly contained in <model> element of the core package.
In the layout package (provided as one of example packages in libSBML-5), the additional
element for the model element is implemented as ListOfLayouts
class (an SBase
derived class) and
the object is contained/accessed by a LayoutModelPlugin
class (an SBasePlugin
derived class).
SBasePlugin
class defines basic virtual functions for reading/writing/checking
additional attributes and/or top-level elements which should or must be overridden by
subclasses like SBase
class and its derived classes.
Package developers must implement an SBasePlugin
exntended class for
each element to be extended (e.g. SBMLDocument
, Model
, ...) in which additional
attributes and/or top-level elements of the package extension are directly contained.
To implement reading/writing functions for attributes and/or top-level
elements of the SBsaePlugin extended class, package developers should or must
override the corresponding virtual functions below provided in the SBasePlugin
class:
reading elements :
virtual SBase
createObject (XMLInputStream stream)
This function must be overridden if one or more additional elements are defined.
virtual boolean readOtherXML (SBase parentObject, XMLInputStream
stream)
This function should be overridden if elements of annotation, notes, MathML, etc. need
to be directly parsed from the given XMLInputStream
object .
reading attributes (must be overridden if additional attributes are defined) :
virtual void addExpectedAttributes(ExpectedAttributes& attributes)
virtual void readAttributes (XMLAttributes attributes, const ExpectedAttributes& expectedAttributes)
writing elements (must be overridden if additional elements are defined) :
virtual void writeElements (XMLOutputStream stream) const
writing attributes :
virtual void writeAttributes (XMLOutputStream stream) const
This function must be overridden if one or more additional attributes are defined.
virtual void writeXMLNS (XMLOutputStream stream) const
This function must be overridden if one or more additional xmlns attributes are defined.
checking elements (should be overridden) :
virtual boolean hasRequiredElements() const
checking attributes (should be overridden) :
virtual boolean hasRequiredAttributes() const
To implement package-specific creating/getting/manipulating functions of the
SBasePlugin
derived class (e.g., getListOfLayouts(), createLyout(), getLayout(),
and etc are implemented in LayoutModelPlugin
class of the layout package), package
developers must newly implement such functions (as they like) in the derived class.
SBasePlugin
class defines other virtual functions of internal implementations
such as:
virtual void setSBMLDocument(SBMLDocument d)
virtual void connectToParent(SBase sbase)
virtual void enablePackageInternal(String pkgURI, String pkgPrefix, boolean flag)
These functions must be overridden by subclasses in which one or more top-level elements are defined.
For example, the following three SBasePlugin
extended classes are implemented in
the layout extension:
SBMLDocumentPlugin
class for SBMLDocument
element
SBMLDocument
object.
( SBMLDocumentPlugin
class is a common SBasePlugin
extended class for SBMLDocument
class. Package developers can use this class as-is if no additional
elements/attributes (except for required attribute) is needed for the SBMLDocument
class
in their packages, otherwise package developers must implement a new SBMLDocumentPlugin
derived class.)
LayoutModelPlugin class for Model
element
Model
object.
The following virtual functions for reading/writing/checking are overridden: (type of arguments and return values are omitted)
createObject()
: (read elements)
readOtherXML()
: (read elements in annotation of SBML L2)
writeElements()
: (write elements)
The following virtual functions of internal implementations are overridden: (type of arguments and return values are omitted)
setSBMLDocument()
connectToParent()
enablePackageInternal()
The following creating/getting/manipulating functions are newly implemented: (type of arguments and return values are omitted)
getListOfLayouts()
getLayout ()
addLayout()
createLayout()
removeLayout()
getNumLayouts()
LayoutSpeciesReferencePlugin class for SpeciesReference
element (used only for SBML L2V1)
SpeciesReference
object
only for SBML L2V1
readOtherXML()
writeAttributes()
Modifier and Type | Method and Description |
---|---|
SBasePlugin |
cloneObject()
Creates and returns a deep copy of this
SBasePlugin object. |
void |
delete()
Explicitly deletes the underlying native object.
|
SBase |
getElementByMetaId(java.lang.String metaid)
Returns the first child element it can find with the given
metaid , 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 |
getElementNamespace()
Returns the XML namespace (URI) of the package extension
of this plugin object.
|
long |
getLevel()
Returns the SBML level of the package extension of
this plugin object.
|
SBaseList |
getListOfAllElements()   |
SBaseList |
getListOfAllElements(ElementFilter filter)   |
java.lang.String |
getPackageName()
Returns the package name of this plugin object.
|
long |
getPackageVersion()
Returns the package version of the package extension of
this plugin object.
|
SBase |
getParentSBMLObject()
Returns the parent
SBase object to which this plugin
object connected. |
java.lang.String |
getPrefix()
Returns the prefix of the package extension of this plugin object.
|
SBMLDocument |
getSBMLDocument()
Returns the parent
SBMLDocument of this plugin object. |
java.lang.String |
getURI()
Gets the URI to which this element belongs to.
|
long |
getVersion()
Returns the SBML version of the package extension of
this plugin object.
|
int |
setElementNamespace(java.lang.String uri)
Sets the XML namespace to which this element belongs to.
|
public SBasePlugin cloneObject()
SBasePlugin
object.
SBase
objectpublic 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 SBasePlugin.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 SBasePlugin.delete()
themselves.
public SBase getElementByMetaId(java.lang.String metaid)
metaid
, or null
if no such object is found.
metaid
- string representing the metaid of objects to find
metaid
.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 of objects to find
id
.public java.lang.String getElementNamespace()
public long getLevel()
public SBaseList getListOfAllElements()
public SBaseList getListOfAllElements(ElementFilter filter)
public java.lang.String getPackageName()
public long getPackageVersion()
public SBase getParentSBMLObject()
SBase
object to which this plugin
object connected.
SBase
object to which this plugin
object connected.public java.lang.String getPrefix()
public SBMLDocument getSBMLDocument()
SBMLDocument
of this plugin object.
SBMLDocument
object of this plugin object.public java.lang.String getURI()
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/'
Unlike getElementNamespace, 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 return the result of
getElementNamespace
SBasePlugin.getPackageName()
,
SBasePlugin.getElementNamespace()
,
SBase.getSBMLNamespaces()
,
SBasePlugin.getSBMLDocument()
public long getVersion()
public int setElementNamespace(java.lang.String uri)
Layout
Extension Version 1 for SBML Level 3
Version 1 Core must set the namespace to
'http://www.sbml.org/sbml/level3/version1/layout/version1/'