public class Curve extends SBase
The Curve class describes how to connect elements in a diagram defined
with the use of the &ldquolayout&rdquo package. A curve is fully
specified by a mandatory listOfCurveSegments element and is used in four
places in the &ldquolayout&rdquo package:
ReactionGlyph to/from the SpeciesGlyph it represents.
GeneralGlyph to/from the glyph it represents.
In the text above, the term 'center piece' refers to either the Curve
element of a ReactionGlyph, or its BoundingBox.
| Constructor and Description |
|---|
Curve()
Creates a curve with an empty list of segments.
|
Curve(Curve source)
Copy constructor.
|
Curve(LayoutPkgNamespaces layoutns)
Creates a new
Curve with the given LayoutPkgNamespaces object. |
Curve(long level)
Creates a curve with an empty list of segments.
|
Curve(long level,
long version)
Creates a curve with an empty list of segments.
|
Curve(long level,
long version,
long pkgVersion)
Creates a curve with an empty list of segments.
|
Curve(XMLNode node)
|
Curve(XMLNode node,
long l2version)
|
| Modifier and Type | Method and Description |
|---|---|
int |
addCurveSegment(LineSegment segment)
Adds a copy of the given
LineSegment to the end of the
ListOfLineSegments. |
Curve |
cloneObject()
Creates and returns a deep copy of this
Curve. |
void |
connectToChild()  |
CubicBezier |
createCubicBezier()
Creates a new
CubicBezier and adds it to the end of the list. |
LineSegment |
createLineSegment()
Creates a new
LineSegment and adds it to the end of the list. |
void |
delete()
Explicitly deletes the underlying native object.
|
LineSegment |
getCurveSegment(long index)
Returns a pointer to the curve segment with the given index.
|
java.lang.String |
getElementName()
Returns the XML element name of
this SBML object.
|
ListOfLineSegments |
getListOfCurveSegments()
Returns a refernce to the
ListOf object That holds all the curve
segments. |
long |
getNumCurveSegments()
Returns the number of curve segments.
|
int |
getTypeCode()
Returns the libSBML type code of this object instance.
|
void |
initDefaults()
Does nothing since no defaults are defined for
Curve. |
XMLNode |
toXML()
Creates an
XMLNode object from this. |
addCVTerm, addCVTerm, appendAnnotation, appendAnnotation, appendNotes, appendNotes, deleteDisabledPlugins, deleteDisabledPlugins, disablePackage, enablePackage, equals, getAncestorOfType, getAncestorOfType, getAnnotation, getAnnotationString, getColumn, getCVTerm, getCVTerms, getDisabledPlugin, getElementByMetaId, getElementBySId, getId, getIdAttribute, getLevel, getLine, getListOfAllElements, getListOfAllElements, getListOfAllElementsFromPlugins, getListOfAllElementsFromPlugins, getMetaId, getModel, getModelHistory, getName, getNamespaces, getNotes, getNotesString, getNumCVTerms, getNumDisabledPlugins, getNumPlugins, getPackageCoreVersion, 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, removeFromParentAndDelete, 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, unsetUserDatapublic Curve(long level, long version, long pkgVersion) throws SBMLConstructorException
level - the SBML Level.version - the Version within the SBML Level.pkgVersion - the version of the package.
SBMLConstructorExceptionSBMLDocument 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 Curve(long level, long version) throws SBMLConstructorException
level - the SBML Level.version - the Version within the SBML Level.pkgVersion - the version of the package.
SBMLConstructorExceptionSBMLDocument 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 Curve(long level) throws SBMLConstructorException
level - the SBML Level.version - the Version within the SBML Level.pkgVersion - the version of the package.
SBMLConstructorExceptionSBMLDocument 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 Curve() throws SBMLConstructorException
level - the SBML Level.version - the Version within the SBML Level.pkgVersion - the version of the package.
SBMLConstructorExceptionSBMLDocument 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 Curve(LayoutPkgNamespaces layoutns) throws SBMLConstructorException
Curve with the given LayoutPkgNamespaces 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.
layoutns - the LayoutPkgNamespaces object.
SBMLConstructorExceptionSBMLDocument 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 Curve(XMLNode node, long l2version) throws SBMLConstructorException
SBMLConstructorExceptionpublic Curve(XMLNode node) throws SBMLConstructorException
SBMLConstructorExceptionpublic Curve(Curve source) throws SBMLConstructorException
source - the instance to copy.SBMLConstructorExceptionpublic 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 Curve.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 Curve.delete() themselves.
public void initDefaults()
Curve.public ListOfLineSegments getListOfCurveSegments()
ListOf object That holds all the curve
segments.
ListOfLineSegments of this Curve defined as the child
listOfCurveSegments. Will never return null the listOfCurveSegments
is always created, even if empty.public LineSegment getCurveSegment(long index)
null is returned.
index - the index value of the curve segment to return.
LineSegment representing the child 'curveSegment'
with the appropriate index, or null if no such LineSegment
exists.public int addCurveSegment(LineSegment segment)
LineSegment to the end of the
ListOfLineSegments.
segment - the LineSegment to add as a new child
'curveSegment' of the listOfCurveSegments.public long getNumCurveSegments()
Curve.public LineSegment createLineSegment()
LineSegment and adds it to the end of the list. A
reference to the new LineSegment object is returned.
LineSegment created as a new child 'curveSegment'
of this Curve.public CubicBezier createCubicBezier()
CubicBezier and adds it to the end of the list. A
reference to the new CubicBezier object is returned.
CubicBezier created as a new child 'curveSegment' of
this Curve.public java.lang.String getElementName()
getElementName in class SBasepublic Curve cloneObject()
Curve.
cloneObject in class SBaseCurve.public int getTypeCode()
LibSBML attaches an identifying code to every kind of SBML object. These
are integer constants known as SBML type codes. The names of all
the codes begin with the characters SBML_.
In the Java language interface for libSBML, the
type codes are defined as static integer constants in the interface class
libsbmlConstants. Note that different Level 3
package plug-ins may use overlapping type codes to identify the package
to which a given object belongs, call the
method on the object.
SBase.getPackageName()
getTypeCode in class SBaseSBML_LAYOUT_CURVE.
Curve.getElementName(),
SBase.getPackageName()public void connectToChild()
connectToChild in class SBase