1 //------------------------------------------------------------------------------
2 // <auto-generated />
3 //
4 // This file was automatically generated by SWIG (http://www.swig.org).
5 // Version 4.0.2
6 //
7 // Do not make changes to this file unless you know what you are doing--modify
8 // the SWIG interface file instead.
9 //------------------------------------------------------------------------------
10 
11 namespace libsbml {
12 
13  using System;
14  using System.Runtime.InteropServices;
15 
16 /**
17  * @sbmlpackage{core}
18  *
19 @htmlinclude pkg-marker-core.html An SBML model.
20  *
21  * In an SBML model definition, a single object of class Model serves as
22  * the overall container for the lists of the various model components.
23  * All of the lists are optional, but if a given list container is present
24  * within the model, the list must not be empty; that is, it must have
25  * length one or more.  The following are the components and lists
26  * permitted in different Levels and Versions of SBML in
27  * version @htmlinclude libsbml-version.html
28  * of libSBML:
29  * <ul>
30  * <li> In SBML Level 1, the components are: UnitDefinition, Compartment,
31  * Species, Parameter, Rule, and Reaction.  Instances of the classes are
32  * placed inside instances of classes ListOfUnitDefinitions,
33  * ListOfCompartments, ListOfSpecies, ListOfParameters, ListOfRules, and
34  * ListOfReactions.
35  *
36  * <li> In SBML Level 2 Version 1, the components are: FunctionDefinition,
37  * UnitDefinition, Compartment, Species, Parameter, Rule, Reaction and
38  * Event.  Instances of the classes are placed inside instances of classes
39  * ListOfFunctionDefinitions, ListOfUnitDefinitions, ListOfCompartments,
40  * ListOfSpecies, ListOfParameters, ListOfRules, ListOfReactions, and
41  * ListOfEvents.
42  *
43  * <li> In SBML Level 2 Versions 2, 3 and 4, the components are:
44  * FunctionDefinition, UnitDefinition, CompartmentType, SpeciesType,
45  * Compartment, Species, Parameter, InitialAssignment, Rule, Constraint,
46  * Reaction and Event.  Instances of the classes are placed inside
47  * instances of classes ListOfFunctionDefinitions, ListOfUnitDefinitions,
48  * ListOfCompartmentTypes, ListOfSpeciesTypes, ListOfCompartments,
49  * ListOfSpecies, ListOfParameters, ListOfInitialAssignments, ListOfRules,
50  * ListOfConstraints, ListOfReactions, and ListOfEvents.
51  *
52  * <li> In SBML Level 3 Version 1, the components are: FunctionDefinition,
53  * UnitDefinition, Compartment, Species, Parameter, InitialAssignment,
54  * Rule, Constraint, Reaction and Event.  Instances of the classes are
55  * placed inside instances of classes ListOfFunctionDefinitions,
56  * ListOfUnitDefinitions, ListOfCompartments, ListOfSpecies,
57  * ListOfParameters, ListOfInitialAssignments, ListOfRules,
58  * ListOfConstraints, ListOfReactions, and ListOfEvents.
59  * </ul>
60  *
61  * Although all the lists are optional, there are dependencies between SBML
62  * components such that defining some components requires defining others.
63  * An example is that defining a species requires defining a compartment,
64  * and defining a reaction requires defining a species.  The dependencies
65  * are explained in more detail in the SBML specifications.
66  *
67  * In addition to the above lists and attributes, the Model class in both
68  * SBML Level&nbsp;2 and Level&nbsp;3 has the usual two attributes of 'id'
69  * and 'name', and both are optional.  As is the case for other SBML
70  * components with 'id' and 'name' attributes, they must be used according
71  * to the guidelines described in the SBML specifications.  (Within the
72  * frameworks of SBML Level&nbsp;2 and Level&nbsp;3, a
73  * Model object identifier has no assigned meaning, but extension packages
74  * planned for SBML Level&nbsp;3 are likely to make use of this
75  * identifier.)
76  *
77  * Finally, SBML Level&nbsp;3 has introduced a number of additional Model
78  * attributes.  They are discussed in a separate section below.
79  *
80  *
81  * @section approaches Approaches to creating objects using the libSBML API
82  *
83  * LibSBML provides two main mechanisms for creating objects: class
84  * constructors
85  * (e.g., @if java <a href='org/sbml/libsbml/Species.html'>Species()</a> @else Species::Species() @endif),
86  * and <code>create<span class='placeholder-nospace'><em>Object</em></span>()</code>
87  * methods (such as Model::createSpecies()) provided by certain <span
88  * class='placeholder-nospace'><em>Object</em></span> classes such as Model.  These
89  * multiple mechanisms are provided by libSBML for flexibility and to
90  * support different use-cases, but they also have different implications
91  * for the overall model structure.
92  *
93  * In general, the recommended approach is to use the <code>create<span
94  * class='placeholder-nospace'><em>Object</em></span>()</code> methods.  These
95  * methods both create an object @em and link it to the parent in one step.
96  * Here is an example:@if clike
97  * @code{.cpp}
98 // Create an SBMLDocument object in Level 3 Version 1 format:
99 
100 SBMLDocument sbmlDoc = new SBMLDocument(3, 1);
101 
102 // Create a Model object inside the SBMLDocument object and set
103 // its identifier.  The call returns a pointer to the Model object
104 // created, and methods called on that object affect the attributes
105 // of the object attached to the model (as expected).
106 
107 Model model = sbmlDoc->createModel();
108 model->setId('BestModelEver');
109 
110 // Create a Species object inside the Model and set its identifier.
111 // Similar to the lines above, this call returns a pointer to the Species
112 // object created, and methods called on that object affect the attributes
113 // of the object attached to the model (as expected).
114 
115 Species sp = model->createSpecies();
116 sp->setId('MySpecies');
117 @endcode
118  * @endif@if java
119 @code{.java}
120 // Create an SBMLDocument object in Level 3 Version 1 format:
121 
122 SBMLDocument sbmlDoc = new SBMLDocument(3, 1);
123 
124 // Create a Model object inside the SBMLDocument object and set
125 // its identifier.  The call returns a pointer to the Model object
126 // created, and methods called on that object affect the attributes
127 // of the object attached to the model (as expected).  Note that
128 // the call to setId() returns a status code, and a real program
129 // should check this status code to make sure everything went okay.
130 
131 Model model = sbmlDoc.createModel();
132 model.setId(&#34;BestModelEver&#34;);
133 
134 // Create a Species object inside the Model and set its identifier.
135 // Similar to the lines above, this call returns a pointer to the Species
136 // object created, and methods called on that object affect the attributes
137 // of the object attached to the model (as expected).  Note that, like
138 // with Model, the call to setId() returns a status code, and a real program
139 // should check this status code to make sure everything went okay.
140 
141 Species sp = model.createSpecies();
142 sp.setId(&#34;BestSpeciesEver&#34;);
143 @endcode
144  * @endif@if python
145 @code{.py}
146 # Create an SBMLDocument object in Level 3 Version 1 format.
147 # Make sure to check for possible failures.
148 
149 try:
150   sbmlDoc = SBMLDocument(3, 1)
151 except ValueError:
152   print('Could not create SBMLDocument object')
153   sys.exit(1)
154 
155 # Create a Model object inside the SBMLDocument object and set its
156 # identifier, checking the returned values.  The call to setId() returns a
157 # status code to indicate whether the assignment was successful.
158 
159 model = sbmlDoc.createModel()
160 if model == None:
161   # Do something to handle the error here.
162   print('Unable to create Model object.')
163   sys.exit(1)
164 
165 status = model.setId('BestModelEver')
166 if status != LIBSBML_OPERATION_SUCCESS:
167   # Do something to handle the error here.
168   print('Unable to set identifier on the Model object')
169   sys.exit(1)
170 
171 # Create a Species object inside the Model and set its identifier.
172 # Again, the setId() returns a status code to indicate whether the
173 # assignment was successful.
174 
175 sp = model.createSpecies()
176 if sp == None:
177   # Do something to handle the error here.
178   print('Unable to create Species object.')
179   sys.exit(1)
180 
181 status = sp.setId('BestSpeciesEver')
182 if status != LIBSBML_OPERATION_SUCCESS:
183   # Do something to handle the error here.
184   print('Unable to set identifier on the Species object')
185   sys.exit(1)
186 @endcode
187  * @endif@if csharp
188 @code
189 // Create an SBMLDocument object in Level 3 Version 1 format:
190 
191 SBMLDocument sbmlDoc = new SBMLDocument(3, 1);
192 
193 // Create a Model object inside the SBMLDocument object and set
194 // its identifier.  The call returns a pointer to the Model object
195 // created, and methods called on that object affect the attributes
196 // of the object attached to the model (as expected).
197 
198 Model model = sbmlDoc.createModel();
199 model.setId('BestModelEver');
200 
201 // Create a Species object inside the Model and set its identifier.
202 // Similar to the lines above, this call returns a pointer to the Species
203 // object created, and methods called on that object affect the attributes
204 // of the object attached to the model (as expected).
205 
206 Species sp = model.createSpecies();
207 sp.setId('MySpecies');
208 @endcode
209  * @endif
210  *
211  * The <code>create<span
212  * class='placeholder-nospace'><em>Object</em></span>()</code> methods return a
213  * pointer to the object created, but they also add the object to the
214  * relevant list of object instances contained in the parent.  (These lists
215  * become the <code>&lt;listOf<span
216  * class='placeholder-nospace'><em>Object</em></span>s&gt;</code> elements in the
217  * finished XML rendition of SBML.)  In the example above,
218  * Model::createSpecies() adds the created species directly to the
219  * <code>&lt;listOfSpeciesgt;</code> list in the model.  Subsequently,
220  * methods called on the species change the species in the model (which is
221  * what is expected in most situations).
222  *
223  * @section model-checking Consistency and adherence to SBML specifications
224  *
225  * To make it easier for applications to do whatever they need,
226  * libSBML version @htmlinclude libsbml-version.html
227  * is relatively lax when it comes to enforcing correctness and
228  * completeness of models @em during model construction and editing.
229  * Essentially, libSBML @em will @em not in most cases check automatically
230  * that a model's components have valid attribute values, or that the
231  * overall model is consistent and free of errors---even obvious errors
232  * such as duplication of identifiers.  This allows applications great
233  * leeway in how they build their models, but it means that software
234  * authors must take deliberate steps to ensure that the model will be, in
235  * the end, valid SBML.  These steps include such things as keeping track
236  * of the identifiers used in a model, manually performing updates in
237  * certain situations where an entity is referenced in more than one place
238  * (e.g., a species that is referenced by multiple SpeciesReference
239  * objects), and so on.
240  *
241  * That said, libSBML does provide powerful features for deliberately
242  * performing validation of SBML when an application decides it is time to
243  * do so.  The interfaces to these facilities are on the SBMLDocument
244  * class, in the form of SBMLDocument::checkInternalConsistency() and
245  * SBMLDocument::checkConsistency().  Please refer to the documentation for
246  * SBMLDocument for more information about this.
247  *
248  * While applications may play fast and loose and live like free spirits
249  * during the construction and editing of SBML models, they should always
250  * make sure to call SBMLDocument::checkInternalConsistency() and/or
251  * SBMLDocument::checkConsistency() before writing out the final version of
252  * an SBML model.
253  *
254  *
255  * @section model-l3-attrib Model attributes introduced in SBML Level&nbsp;3
256  *
257  * As mentioned above, the Model class has a number of optional attributes
258  * in SBML Level&nbsp;3.  These are 'substanceUnits',
259  * 'timeUnits', 'volumeUnits', 'areaUnits', 'lengthUnits', 'extentUnits',
260  * and 'conversionFactor.  The following provide more information about
261  * them.
262  *
263  * @subsection model-l3-substanceunits The 'substanceUnits' attribute
264  *
265  * The 'substanceUnits' attribute is used to specify the unit of
266  * measurement associated with substance quantities of Species objects that
267  * do not specify units explicitly.  If a given Species object definition
268  * does not specify its unit of substance quantity via the 'substanceUnits'
269  * attribute on the Species object instance, then that species inherits the
270  * value of the Model 'substanceUnits' attribute.  If the Model does not
271  * define a value for this attribute, then there is no unit to inherit, and
272  * all species that do not specify individual 'substanceUnits' attribute
273  * values then have <em>no</em> declared units for their quantities.  The
274  * SBML Level&nbsp;3 specifications provide more details.
275  *
276  * Note that when the identifier of a species appears in a model's
277  * mathematical expressions, the unit of measurement associated with that
278  * identifier is <em>not solely determined</em> by setting 'substanceUnits'
279  * on Model or Species.  Please see the discussion about units given in
280  * the documentation for the Species class.
281  *
282  *
283  * @subsection model-l3-timeunits The 'timeUnits' attribute
284  *
285  * The 'timeUnits' attribute on SBML Level&nbsp;3's Model object is used to
286  * specify the unit in which time is measured in the model.  This attribute
287  * on Model is the <em>only</em> way to specify a unit for time in a model.
288  * It is a global attribute; time is measured in the model everywhere in
289  * the same way.  This is particularly relevant to Reaction and RateRule
290  * objects in a model: all Reaction and RateRule objects in SBML define
291  * per-time values, and the unit of time is given by the 'timeUnits'
292  * attribute on the Model object instance.  If the Model 'timeUnits'
293  * attribute has no value, it means that the unit of time is not defined
294  * for the model's reactions and rate rules.  Leaving it unspecified in an
295  * SBML model does not result in an invalid model in SBML Level&nbsp;3;
296  * however, as a matter of best practice, we strongly recommend that all
297  * models specify units of measurement for time.
298  *
299  *
300  * @subsection model-l3-voletc The 'volumeUnits', 'areaUnits', and 'lengthUnits' attributes
301  *
302  * The attributes 'volumeUnits', 'areaUnits' and 'lengthUnits' together are
303  * used to set the units of measurements for the sizes of Compartment
304  * objects in an SBML Level&nbsp;3 model when those objects do not
305  * otherwise specify units.  The three attributes correspond to the most
306  * common cases of compartment dimensions: 'volumeUnits' for compartments
307  * having a 'spatialDimensions' attribute value of @c '3', 'areaUnits' for
308  * compartments having a 'spatialDimensions' attribute value of @c '2', and
309  * 'lengthUnits' for compartments having a 'spatialDimensions' attribute
310  * value of @c '1'.  The attributes are not applicable to compartments
311  * whose 'spatialDimensions' attribute values are @em not one of @c '1',
312  * @c '2' or @c '3'.
313  *
314  * If a given Compartment object instance does not provide a value for its
315  * 'units' attribute, then the unit of measurement of that compartment's
316  * size is inherited from the value specified by the Model 'volumeUnits',
317  * 'areaUnits' or 'lengthUnits' attribute, as appropriate based on the
318  * Compartment object's 'spatialDimensions' attribute value.  If the Model
319  * object does not define the relevant attribute, then there are no units
320  * to inherit, and all Compartment objects that do not set a value for
321  * their 'units' attribute then have <em>no</em> units associated with
322  * their compartment sizes.
323  *
324  * The use of three separate attributes is a carry-over from SBML
325  * Level&nbsp;2.  Note that it is entirely possible for a model to define a
326  * value for two or more of the attributes 'volumeUnits', 'areaUnits' and
327  * 'lengthUnits' simultaneously, because SBML models may contain
328  * compartments with different numbers of dimensions.
329  *
330  *
331  * @subsection model-l3-extentunits The 'extentUnits' attribute
332  *
333  * Reactions are processes that occur over time.  These processes involve
334  * events of some sort, where a single ``reaction event'' is one in which
335  * some set of entities (known as reactants, products and modifiers in
336  * SBML) interact, once.  The <em>extent</em> of a reaction is a measure of
337  * how many times the reaction has occurred, while the time derivative of
338  * the extent gives the instantaneous rate at which the reaction is
339  * occurring.  Thus, what is colloquially referred to as the 'rate of the
340  * reaction' is in fact equal to the rate of change of reaction extent.
341  *
342  * In SBML Level&nbsp;3, the combination of 'extentUnits' and 'timeUnits'
343  * defines the units of kinetic laws in SBML and establishes how the
344  * numerical value of each KineticLaw object's mathematical formula is
345  * meant to be interpreted in a model.  The units of the kinetic laws are
346  * taken to be 'extentUnits' divided by 'timeUnits'.
347  *
348  * Note that this embodies an important principle in SBML Level&nbsp;3
349  * models: <em>all reactions in an SBML model must have the same units</em>
350  * for the rate of change of extent.  In other words, the units of all
351  * reaction rates in the model <em>must be the same</em>.  There is only
352  * one global value for 'extentUnits' and one global value for 'timeUnits'.
353  *
354  *
355  * @subsection model-l3-convfactor The 'conversionFactor' attribute
356  *
357  * The attribute 'conversionFactor' in SBML Level&nbsp;3's Model object
358  * defines a global value inherited by all Species object instances that do
359  * not define separate values for their 'conversionFactor' attributes.  The
360  * value of this attribute must refer to a Parameter object instance
361  * defined in the model.  The Parameter object in question must be a
362  * constant; ie it must have its 'constant' attribute value set to
363  * @c 'true'.
364  *
365  * If a given Species object definition does not specify a conversion
366  * factor via the 'conversionFactor' attribute on Species, then the species
367  * inherits the conversion factor specified by the Model 'conversionFactor'
368  * attribute.  If the Model does not define a value for this attribute,
369  * then there is no conversion factor to inherit.  More information about
370  * conversion factors is provided in the SBML Level&nbsp;3
371  * specifications.
372  */
373 
374 public class Model : SBase {
375 	private HandleRef swigCPtr;
376 
Model(IntPtr cPtr, bool cMemoryOwn)377 	internal Model(IntPtr cPtr, bool cMemoryOwn) : base(libsbmlPINVOKE.Model_SWIGUpcast(cPtr), cMemoryOwn)
378 	{
379 		//super(libsbmlPINVOKE.ModelUpcast(cPtr), cMemoryOwn);
380 		swigCPtr = new HandleRef(this, cPtr);
381 	}
382 
getCPtr(Model obj)383 	internal static HandleRef getCPtr(Model obj)
384 	{
385 		return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
386 	}
387 
getCPtrAndDisown(Model obj)388 	internal static HandleRef getCPtrAndDisown (Model obj)
389 	{
390 		HandleRef ptr = new HandleRef(null, IntPtr.Zero);
391 
392 		if (obj != null)
393 		{
394 			ptr             = obj.swigCPtr;
395 			obj.swigCMemOwn = false;
396 		}
397 
398 		return ptr;
399 	}
400 
Dispose(bool disposing)401   protected override void Dispose(bool disposing) {
402     lock(this) {
403       if (swigCPtr.Handle != global::System.IntPtr.Zero) {
404         if (swigCMemOwn) {
405           swigCMemOwn = false;
406           libsbmlPINVOKE.delete_Model(swigCPtr);
407         }
408         swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
409       }
410       base.Dispose(disposing);
411     }
412   }
413 
414 
415 /**
416    * Creates a new Model using the given SBML @p level and @p version
417    * values.
418    *
419    * @param level a long integer, the SBML Level to assign to this Model.
420    *
421    * @param version a long integer, the SBML Version to assign to this
422    * Model.
423    *
424    *
425  * @throws SBMLConstructorException
426  * Thrown if the given @p level and @p version combination are invalid
427  * or if this object is incompatible with the given level and version.
428  *
429  *
430    *
431    *
432  * @note Attempting to add an object to an SBMLDocument having a different
433  * combination of SBML Level, Version and XML namespaces than the object
434  * itself will result in an error at the time a caller attempts to make the
435  * addition.  A parent object must have compatible Level, Version and XML
436  * namespaces.  (Strictly speaking, a parent may also have more XML
437  * namespaces than a child, but the reverse is not permitted.)  The
438  * restriction is necessary to ensure that an SBML model has a consistent
439  * overall structure.  This requires callers to manage their objects
440  * carefully, but the benefit is increased flexibility in how models can be
441  * created by permitting callers to create objects bottom-up if desired.  In
442  * situations where objects are not yet attached to parents (e.g.,
443  * SBMLDocument), knowledge of the intented SBML Level and Version help
444  * libSBML determine such things as whether it is valid to assign a
445  * particular value to an attribute.
446  *
447  *
448    */ public
Model(long level, long version)449  Model(long level, long version) : this(libsbmlPINVOKE.new_Model__SWIG_0(level, version), true) {
450     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
451   }
452 
453 
454 /**
455    * Creates a new Model using the given SBMLNamespaces object
456    * @p sbmlns.
457    *
458    *
459  *
460  * The SBMLNamespaces object encapsulates SBML Level/Version/namespaces
461  * information.  It is used to communicate the SBML Level, Version, and (in
462  * Level&nbsp;3) packages used in addition to SBML Level&nbsp;3 Core.  A
463  * common approach to using libSBML's SBMLNamespaces facilities is to create an
464  * SBMLNamespaces object somewhere in a program once, then hand that object
465  * as needed to object constructors that accept SBMLNamespaces as arguments.
466  *
467  *
468    *
469    * @param sbmlns an SBMLNamespaces object.
470    *
471    *
472  * @throws SBMLConstructorException
473  * Thrown if the given @p sbmlns is inconsistent or incompatible
474  * with this object.
475  *
476  *
477    *
478    *
479  * @note Attempting to add an object to an SBMLDocument having a different
480  * combination of SBML Level, Version and XML namespaces than the object
481  * itself will result in an error at the time a caller attempts to make the
482  * addition.  A parent object must have compatible Level, Version and XML
483  * namespaces.  (Strictly speaking, a parent may also have more XML
484  * namespaces than a child, but the reverse is not permitted.)  The
485  * restriction is necessary to ensure that an SBML model has a consistent
486  * overall structure.  This requires callers to manage their objects
487  * carefully, but the benefit is increased flexibility in how models can be
488  * created by permitting callers to create objects bottom-up if desired.  In
489  * situations where objects are not yet attached to parents (e.g.,
490  * SBMLDocument), knowledge of the intented SBML Level and Version help
491  * libSBML determine such things as whether it is valid to assign a
492  * particular value to an attribute.
493  *
494  *
495    */ public
Model(SBMLNamespaces sbmlns)496  Model(SBMLNamespaces sbmlns) : this(libsbmlPINVOKE.new_Model__SWIG_1(SBMLNamespaces.getCPtr(sbmlns)), true) {
497     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
498   }
499 
500 
501 /**
502    * Copy constructor; creates a (deep) copy of the given Model object.
503    *
504    * @param orig the object to copy.
505    */ public
Model(Model orig)506  Model(Model orig) : this(libsbmlPINVOKE.new_Model__SWIG_2(Model.getCPtr(orig)), true) {
507     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
508   }
509 
510 
511 /**
512    * Creates and returns a deep copy of this Model object.
513    *
514    * @return the (deep) copy of this Model object.
515    */ public new
clone()516  Model clone() {
517     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_clone(swigCPtr);
518     Model ret = (cPtr == global::System.IntPtr.Zero) ? null : new Model(cPtr, true);
519     return ret;
520   }
521 
522 
523 /**
524    * Returns the first child element found that has the given @p id.
525    *
526    * This operation searches the model-wide <code>SId</code> identifier
527    * type namespace
528    *
529    * @param id string representing the id of the object to find.
530    *
531    * @return pointer to the first element found with the given @p id, or
532    * @c null if no such object is found.
533    */ public new
getElementBySId(string id)534  SBase getElementBySId(string id) {
535 	SBase ret = (SBase) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getElementBySId(swigCPtr, id), false);
536 	return ret;
537 }
538 
539 
540 /**
541    * Returns the first child element it can find with the given @p metaid.
542    *
543    * @param metaid string representing the meta-identifier of the object to
544    * find.
545    *
546    * @return pointer to the first element found with the given @p metaid, or
547    * null if no such object is found.
548    */ public new
getElementByMetaId(string metaid)549  SBase getElementByMetaId(string metaid) {
550 	SBase ret = (SBase) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getElementByMetaId(swigCPtr, metaid), false);
551 	return ret;
552 }
553 
554 
555 /**
556    * Returns the value of the 'id' attribute of this Model.
557    *
558    * @note Because of the inconsistent behavior of this function with
559    * respect to assignments and rules, it is now recommended to
560    * use the getIdAttribute() function instead.
561    *
562    *
563  *
564  * The identifier given by an object's 'id' attribute value
565  * is used to identify the object within the SBML model definition.
566  * Other objects can refer to the component using this identifier.  The
567  * data type of 'id' is always <code>SId</code> or a type derived
568  * from that, such as <code>UnitSId</code>, depending on the object in
569  * question.  All data types are defined as follows:
570  * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
571  *   letter ::= 'a'..'z','A'..'Z'
572  *   digit  ::= '0'..'9'
573  *   idChar ::= letter | digit | '_'
574  *   SId    ::= ( letter | '_' ) idChar*
575  * </pre>
576  * The characters <code>(</code> and <code>)</code> are used for grouping,
577  * the character <code>*</code> 'zero or more times', and the character
578  * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers
579  * is determined by an exact character sequence match; i.e., comparisons must
580  * be performed in a case-sensitive manner.  This applies to all uses of
581  * <code>SId</code>, <code>SIdRef</code>, and derived types.
582  *
583  * Users need to be aware of some important API issues that are the result of
584  * the history of SBML and libSBML.  Prior to SBML Level&nbsp;3
585  * Version&nbsp;2, SBML defined 'id' and 'name' attributes on only a subset
586  * of SBML objects.  To simplify the work of programmers, libSBML's API
587  * provided get, set, check, and unset on the SBase object class itself
588  * instead of on individual subobject classes. This made the
589  * get/set/etc. methods uniformly available on all objects in the libSBML
590  * API.  LibSBML simply returned empty strings or otherwise did not act when
591  * the methods were applied to SBML objects that were not defined by the SBML
592  * specification to have 'id' or 'name' attributes.  Additional complications
593  * arose with the rule and assignment objects: InitialAssignment,
594  * EventAssignment, AssignmentRule, and RateRule.  In early versions of SBML,
595  * the rule object hierarchy was different, and in addition, then as now,
596  * they possess different attributes: 'variable' (for the rules and event
597  * assignments), 'symbol' (for initial assignments), or neither (for
598  * algebraic rules).  Prior to SBML Level&nbsp;3 Version&nbsp;2, getId()
599  * would always return an empty string, and isSetId() would always return @c
600  * false for objects of these classes.
601  *
602  * With the addition of 'id' and 'name' attributes on SBase in Level&nbsp;3
603  * Version&nbsp;2, it became necessary to introduce a new way to interact
604  * with the attributes more consistently in libSBML to avoid breaking
605  * backward compatibility in the behavior of the original 'id' methods.  For
606  * this reason, libSBML provides four functions (getIdAttribute(),
607  * setIdAttribute(@if java String@endif), isSetIdAttribute(), and
608  * unsetIdAttribute()) that always act on the actual 'id' attribute inherited
609  * from SBase, regardless of the object's type.  <strong>These new methods
610  * should be used instead of the older getId()/setId()/etc. methods</strong>
611  * unless the old behavior is somehow necessary.  Regardless of the Level and
612  * Version of the SBML, these functions allow client applications to use more
613  * generalized code in some situations (for instance, when manipulating
614  * objects that are all known to have identifiers).  If the object in
615  * question does not posess an 'id' attribute according to the SBML
616  * specification for the Level and Version in use, libSBML will not allow the
617  * identifier to be set, nor will it read or write 'id' attributes for those
618  * objects.
619  *
620  *
621    *
622    * @return the id of this Model.
623    *
624    * @see getIdAttribute()
625    * @see setIdAttribute(string sid)
626    * @see isSetIdAttribute()
627    * @see unsetIdAttribute()
628    */ public new
getId()629  string getId() {
630     string ret = libsbmlPINVOKE.Model_getId(swigCPtr);
631     return ret;
632   }
633 
634 
635 /**
636    * Returns the value of the 'name' attribute of this Model object.
637    *
638    *
639  *
640  *
641  * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
642  * moved to SBase directly, instead of being defined individually for many
643  * (but not all) objects.  LibSBML has for a long time provided functions
644  * defined on SBase itself to get, set, and unset those attributes, which
645  * would fail or otherwise return empty strings if executed on any object
646  * for which those attributes were not defined.  Now that all SBase objects
647  * define those attributes, those functions now succeed for any object with
648  * the appropriate level and version.
649  *
650  * The 'name' attribute is
651  * optional and is not intended to be used for cross-referencing purposes
652  * within a model.  Its purpose instead is to provide a human-readable
653  * label for the component.  The data type of 'name' is the type
654  * <code>string</code> defined in XML Schema.  SBML imposes no
655  * restrictions as to the content of 'name' attributes beyond those
656  * restrictions defined by the <code>string</code> type in XML Schema.
657  *
658  * The recommended practice for handling 'name' is as follows.  If a
659  * software tool has the capability for displaying the content of 'name'
660  * attributes, it should display this content to the user as a
661  * component's label instead of the component's 'id'.  If the user
662  * interface does not have this capability (e.g., because it cannot
663  * display or use special characters in symbol names), or if the 'name'
664  * attribute is missing on a given component, then the user interface
665  * should display the value of the 'id' attribute instead.  (Script
666  * language interpreters are especially likely to display 'id' instead of
667  * 'name'.)
668  *
669  * As a consequence of the above, authors of systems that automatically
670  * generate the values of 'id' attributes should be aware some systems
671  * may display the 'id''s to the user.  Authors therefore may wish to
672  * take some care to have their software create 'id' values that are: (a)
673  * reasonably easy for humans to type and read; and (b) likely to be
674  * meaningful, for example by making the 'id' attribute be an abbreviated
675  * form of the name attribute value.
676  *
677  * An additional point worth mentioning is although there are
678  * restrictions on the uniqueness of 'id' values, there are no
679  * restrictions on the uniqueness of 'name' values in a model.  This
680  * allows software applications leeway in assigning component identifiers.
681  *
682  * Regardless of the level and version of the SBML, these functions allow
683  * client applications to use more generalized code in some situations
684  * (for instance, when manipulating objects that are all known to have
685  * names).  If the object in question does not posess a 'name' attribute
686  * according to the SBML specification for the Level and Version in use,
687  * libSBML will not allow the name to be set, nor will it read or
688  * write 'name' attributes for those objects.
689  *
690  *
691  *
692  * @return the name of this SBML object, or the empty string if not set or unsettable.
693  *
694  * @see getIdAttribute()
695  * @see isSetName()
696  * @see setName(string sid)
697  * @see unsetName()
698  *
699  *
700    */ public new
getName()701  string getName() {
702     string ret = libsbmlPINVOKE.Model_getName(swigCPtr);
703     return ret;
704   }
705 
706 
707 /**
708    * Returns the value of the 'substanceUnits' attribute of this Model.
709    *
710    * @return the substanceUnits of this Model.
711    *
712    * @note The 'substanceUnits' attribute is available in
713    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
714    */ public
getSubstanceUnits()715  string getSubstanceUnits() {
716     string ret = libsbmlPINVOKE.Model_getSubstanceUnits(swigCPtr);
717     return ret;
718   }
719 
720 
721 /**
722    * Returns the value of the 'timeUnits' attribute of this Model.
723    *
724    * @return the timeUnits of this Model.
725    *
726    * @note The 'timeUnits' attribute is available in
727    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
728    */ public
getTimeUnits()729  string getTimeUnits() {
730     string ret = libsbmlPINVOKE.Model_getTimeUnits(swigCPtr);
731     return ret;
732   }
733 
734 
735 /**
736    * Returns the value of the 'volumeUnits' attribute of this Model.
737    *
738    * @return the volumeUnits of this Model.
739    *
740    * @note The 'volumeUnits' attribute is available in
741    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
742    */ public
getVolumeUnits()743  string getVolumeUnits() {
744     string ret = libsbmlPINVOKE.Model_getVolumeUnits(swigCPtr);
745     return ret;
746   }
747 
748 
749 /**
750    * Returns the value of the 'areaUnits' attribute of this Model.
751    *
752    * @return the areaUnits of this Model.
753    *
754    * @note The 'areaUnits' attribute is available in
755    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
756    */ public
getAreaUnits()757  string getAreaUnits() {
758     string ret = libsbmlPINVOKE.Model_getAreaUnits(swigCPtr);
759     return ret;
760   }
761 
762 
763 /**
764    * Returns the value of the 'lengthUnits' attribute of this Model.
765    *
766    * @return the lengthUnits of this Model.
767    *
768    * @note The 'lengthUnits' attribute is available in
769    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
770    */ public
getLengthUnits()771  string getLengthUnits() {
772     string ret = libsbmlPINVOKE.Model_getLengthUnits(swigCPtr);
773     return ret;
774   }
775 
776 
777 /**
778    * Returns the value of the 'extentUnits' attribute of this Model.
779    *
780    * @return the extentUnits of this Model.
781    *
782    * @note The 'extentUnits' attribute is available in
783    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
784    */ public
getExtentUnits()785  string getExtentUnits() {
786     string ret = libsbmlPINVOKE.Model_getExtentUnits(swigCPtr);
787     return ret;
788   }
789 
790 
791 /**
792    * Returns the value of the 'conversionFactor' attribute of this Model.
793    *
794    * @return the conversionFactor of this Model.
795    *
796    * @note The 'conversionFactor' attribute is available in
797    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
798    */ public
getConversionFactor()799  string getConversionFactor() {
800     string ret = libsbmlPINVOKE.Model_getConversionFactor(swigCPtr);
801     return ret;
802   }
803 
804 
805 /**
806    * Predicate returning @c true if this
807    * Model's 'id' attribute is set.
808    *
809    *
810  *
811  *
812  * The identifier given by an object's 'id' attribute value
813  * is used to identify the object within the SBML model definition.
814  * Other objects can refer to the component using this identifier.  The
815  * data type of 'id' is always <code>SId</code> or a type derived
816  * from that, such as <code>UnitSId</code>, depending on the object in
817  * question.  All data types are defined as follows:
818  * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
819  *   letter ::= 'a'..'z','A'..'Z'
820  *   digit  ::= '0'..'9'
821  *   idChar ::= letter | digit | '_'
822  *   SId    ::= ( letter | '_' ) idChar*
823  * </pre>
824  * The characters <code>(</code> and <code>)</code> are used for grouping,
825  * the character <code>*</code> 'zero or more times', and the character
826  * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers
827  * is determined by an exact character sequence match; i.e., comparisons must
828  * be performed in a case-sensitive manner.  This applies to all uses of
829  * <code>SId</code>, <code>SIdRef</code>, and derived types.
830  *
831  * Users need to be aware of some important API issues that are the result of
832  * the history of SBML and libSBML.  Prior to SBML Level&nbsp;3
833  * Version&nbsp;2, SBML defined 'id' and 'name' attributes on only a subset
834  * of SBML objects.  To simplify the work of programmers, libSBML's API
835  * provided get, set, check, and unset on the SBase object class itself
836  * instead of on individual subobject classes. This made the
837  * get/set/etc. methods uniformly available on all objects in the libSBML
838  * API.  LibSBML simply returned empty strings or otherwise did not act when
839  * the methods were applied to SBML objects that were not defined by the SBML
840  * specification to have 'id' or 'name' attributes.  Additional complications
841  * arose with the rule and assignment objects: InitialAssignment,
842  * EventAssignment, AssignmentRule, and RateRule.  In early versions of SBML,
843  * the rule object hierarchy was different, and in addition, then as now,
844  * they possess different attributes: 'variable' (for the rules and event
845  * assignments), 'symbol' (for initial assignments), or neither (for
846  * algebraic rules).  Prior to SBML Level&nbsp;3 Version&nbsp;2, getId()
847  * would always return an empty string, and isSetId() would always return @c
848  * false for objects of these classes.
849  *
850  * With the addition of 'id' and 'name' attributes on SBase in Level&nbsp;3
851  * Version&nbsp;2, it became necessary to introduce a new way to interact
852  * with the attributes more consistently in libSBML to avoid breaking
853  * backward compatibility in the behavior of the original 'id' methods.  For
854  * this reason, libSBML provides four functions (getIdAttribute(),
855  * setIdAttribute(@if java String@endif), isSetIdAttribute(), and
856  * unsetIdAttribute()) that always act on the actual 'id' attribute inherited
857  * from SBase, regardless of the object's type.  <strong>These new methods
858  * should be used instead of the older getId()/setId()/etc. methods</strong>
859  * unless the old behavior is somehow necessary.  Regardless of the Level and
860  * Version of the SBML, these functions allow client applications to use more
861  * generalized code in some situations (for instance, when manipulating
862  * objects that are all known to have identifiers).  If the object in
863  * question does not posess an 'id' attribute according to the SBML
864  * specification for the Level and Version in use, libSBML will not allow the
865  * identifier to be set, nor will it read or write 'id' attributes for those
866  * objects.
867  *
868  *
869  *
870  * @return @c true if the 'id' attribute of this SBML object is
871  * set, @c false otherwise.
872  *
873  * @note Because of the inconsistent behavior of this function with
874  * respect to assignments and rules, it is recommended that callers
875  * use isSetIdAttribute() instead.
876  *
877  * @see getIdAttribute()
878  * @see setIdAttribute(string sid)
879  * @see unsetIdAttribute()
880  * @see isSetIdAttribute()
881  *
882  *
883    */ public new
isSetId()884  bool isSetId() {
885     bool ret = libsbmlPINVOKE.Model_isSetId(swigCPtr);
886     return ret;
887   }
888 
889 
890 /**
891    * Predicate returning @c true if this
892    * Model's 'name' attribute is set.
893    *
894    *
895  *
896  *
897  * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
898  * moved to SBase directly, instead of being defined individually for many
899  * (but not all) objects.  LibSBML has for a long time provided functions
900  * defined on SBase itself to get, set, and unset those attributes, which
901  * would fail or otherwise return empty strings if executed on any object
902  * for which those attributes were not defined.  Now that all SBase objects
903  * define those attributes, those functions now succeed for any object with
904  * the appropriate level and version.
905  *
906  * The 'name' attribute is
907  * optional and is not intended to be used for cross-referencing purposes
908  * within a model.  Its purpose instead is to provide a human-readable
909  * label for the component.  The data type of 'name' is the type
910  * <code>string</code> defined in XML Schema.  SBML imposes no
911  * restrictions as to the content of 'name' attributes beyond those
912  * restrictions defined by the <code>string</code> type in XML Schema.
913  *
914  * The recommended practice for handling 'name' is as follows.  If a
915  * software tool has the capability for displaying the content of 'name'
916  * attributes, it should display this content to the user as a
917  * component's label instead of the component's 'id'.  If the user
918  * interface does not have this capability (e.g., because it cannot
919  * display or use special characters in symbol names), or if the 'name'
920  * attribute is missing on a given component, then the user interface
921  * should display the value of the 'id' attribute instead.  (Script
922  * language interpreters are especially likely to display 'id' instead of
923  * 'name'.)
924  *
925  * As a consequence of the above, authors of systems that automatically
926  * generate the values of 'id' attributes should be aware some systems
927  * may display the 'id''s to the user.  Authors therefore may wish to
928  * take some care to have their software create 'id' values that are: (a)
929  * reasonably easy for humans to type and read; and (b) likely to be
930  * meaningful, for example by making the 'id' attribute be an abbreviated
931  * form of the name attribute value.
932  *
933  * An additional point worth mentioning is although there are
934  * restrictions on the uniqueness of 'id' values, there are no
935  * restrictions on the uniqueness of 'name' values in a model.  This
936  * allows software applications leeway in assigning component identifiers.
937  *
938  * Regardless of the level and version of the SBML, these functions allow
939  * client applications to use more generalized code in some situations
940  * (for instance, when manipulating objects that are all known to have
941  * names).  If the object in question does not posess a 'name' attribute
942  * according to the SBML specification for the Level and Version in use,
943  * libSBML will not allow the name to be set, nor will it read or
944  * write 'name' attributes for those objects.
945  *
946  *
947  *
948  * @return @c true if the 'name' attribute of this SBML object is
949  * set, @c false otherwise.
950  *
951  * @see getName()
952  * @see setName(string sid)
953  * @see unsetName()
954  *
955  *
956    */ public new
isSetName()957  bool isSetName() {
958     bool ret = libsbmlPINVOKE.Model_isSetName(swigCPtr);
959     return ret;
960   }
961 
962 
963 /**
964    * Predicate returning @c true if this
965    * Model's 'substanceUnits' attribute is set.
966    *
967    * @return @c true if the 'substanceUnits' attribute of this Model is
968    * set, @c false otherwise.
969    *
970    * @note The 'substanceUnits' attribute is available in
971    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
972    */ public
isSetSubstanceUnits()973  bool isSetSubstanceUnits() {
974     bool ret = libsbmlPINVOKE.Model_isSetSubstanceUnits(swigCPtr);
975     return ret;
976   }
977 
978 
979 /**
980    * Predicate returning @c true if this
981    * Model's 'timeUnits' attribute is set.
982    *
983    * @return @c true if the 'timeUnits' attribute of this Model is
984    * set, @c false otherwise.
985    *
986    * @note The 'substanceUnits' attribute is available in
987    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
988    */ public
isSetTimeUnits()989  bool isSetTimeUnits() {
990     bool ret = libsbmlPINVOKE.Model_isSetTimeUnits(swigCPtr);
991     return ret;
992   }
993 
994 
995 /**
996    * Predicate returning @c true if this
997    * Model's 'volumeUnits' attribute is set.
998    *
999    * @return @c true if the 'volumeUnits' attribute of this Model is
1000    * set, @c false otherwise.
1001    *
1002    * @note The 'volumeUnits' attribute is available in
1003    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1004    */ public
isSetVolumeUnits()1005  bool isSetVolumeUnits() {
1006     bool ret = libsbmlPINVOKE.Model_isSetVolumeUnits(swigCPtr);
1007     return ret;
1008   }
1009 
1010 
1011 /**
1012    * Predicate returning @c true if this
1013    * Model's 'areaUnits' attribute is set.
1014    *
1015    * @return @c true if the 'areaUnits' attribute of this Model is
1016    * set, @c false otherwise.
1017    *
1018    * @note The 'areaUnits' attribute is available in
1019    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1020    */ public
isSetAreaUnits()1021  bool isSetAreaUnits() {
1022     bool ret = libsbmlPINVOKE.Model_isSetAreaUnits(swigCPtr);
1023     return ret;
1024   }
1025 
1026 
1027 /**
1028    * Predicate returning @c true if this
1029    * Model's 'lengthUnits' attribute is set.
1030    *
1031    * @return @c true if the 'lengthUnits' attribute of this Model is
1032    * set, @c false otherwise.
1033    *
1034    * @note The 'lengthUnits' attribute is available in
1035    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1036    */ public
isSetLengthUnits()1037  bool isSetLengthUnits() {
1038     bool ret = libsbmlPINVOKE.Model_isSetLengthUnits(swigCPtr);
1039     return ret;
1040   }
1041 
1042 
1043 /**
1044    * Predicate returning @c true if this
1045    * Model's 'extentUnits' attribute is set.
1046    *
1047    * @return @c true if the 'extentUnits' attribute of this Model is
1048    * set, @c false otherwise.
1049    *
1050    * @note The 'extentUnits' attribute is available in
1051    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1052    */ public
isSetExtentUnits()1053  bool isSetExtentUnits() {
1054     bool ret = libsbmlPINVOKE.Model_isSetExtentUnits(swigCPtr);
1055     return ret;
1056   }
1057 
1058 
1059 /**
1060    * Predicate returning @c true if this
1061    * Model's 'conversionFactor' attribute is set.
1062    *
1063    * @return @c true if the 'conversionFactor' attribute of this Model is
1064    * set, @c false otherwise.
1065    *
1066    * @note The 'conversionFactor' attribute is available in
1067    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1068    */ public
isSetConversionFactor()1069  bool isSetConversionFactor() {
1070     bool ret = libsbmlPINVOKE.Model_isSetConversionFactor(swigCPtr);
1071     return ret;
1072   }
1073 
1074 
1075 /**
1076    * Sets the value of the 'id' attribute of this Model.
1077    *
1078    *
1079  *
1080  * The string @p sid is copied.
1081  *
1082  *
1083  *
1084  * The identifier given by an object's 'id' attribute value
1085  * is used to identify the object within the SBML model definition.
1086  * Other objects can refer to the component using this identifier.  The
1087  * data type of 'id' is always <code>SId</code> or a type derived
1088  * from that, such as <code>UnitSId</code>, depending on the object in
1089  * question.  All data types are defined as follows:
1090  * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
1091  *   letter ::= 'a'..'z','A'..'Z'
1092  *   digit  ::= '0'..'9'
1093  *   idChar ::= letter | digit | '_'
1094  *   SId    ::= ( letter | '_' ) idChar*
1095  * </pre>
1096  * The characters <code>(</code> and <code>)</code> are used for grouping,
1097  * the character <code>*</code> 'zero or more times', and the character
1098  * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers
1099  * is determined by an exact character sequence match; i.e., comparisons must
1100  * be performed in a case-sensitive manner.  This applies to all uses of
1101  * <code>SId</code>, <code>SIdRef</code>, and derived types.
1102  *
1103  * Users need to be aware of some important API issues that are the result of
1104  * the history of SBML and libSBML.  Prior to SBML Level&nbsp;3
1105  * Version&nbsp;2, SBML defined 'id' and 'name' attributes on only a subset
1106  * of SBML objects.  To simplify the work of programmers, libSBML's API
1107  * provided get, set, check, and unset on the SBase object class itself
1108  * instead of on individual subobject classes. This made the
1109  * get/set/etc. methods uniformly available on all objects in the libSBML
1110  * API.  LibSBML simply returned empty strings or otherwise did not act when
1111  * the methods were applied to SBML objects that were not defined by the SBML
1112  * specification to have 'id' or 'name' attributes.  Additional complications
1113  * arose with the rule and assignment objects: InitialAssignment,
1114  * EventAssignment, AssignmentRule, and RateRule.  In early versions of SBML,
1115  * the rule object hierarchy was different, and in addition, then as now,
1116  * they possess different attributes: 'variable' (for the rules and event
1117  * assignments), 'symbol' (for initial assignments), or neither (for
1118  * algebraic rules).  Prior to SBML Level&nbsp;3 Version&nbsp;2, getId()
1119  * would always return an empty string, and isSetId() would always return @c
1120  * false for objects of these classes.
1121  *
1122  * With the addition of 'id' and 'name' attributes on SBase in Level&nbsp;3
1123  * Version&nbsp;2, it became necessary to introduce a new way to interact
1124  * with the attributes more consistently in libSBML to avoid breaking
1125  * backward compatibility in the behavior of the original 'id' methods.  For
1126  * this reason, libSBML provides four functions (getIdAttribute(),
1127  * setIdAttribute(@if java String@endif), isSetIdAttribute(), and
1128  * unsetIdAttribute()) that always act on the actual 'id' attribute inherited
1129  * from SBase, regardless of the object's type.  <strong>These new methods
1130  * should be used instead of the older getId()/setId()/etc. methods</strong>
1131  * unless the old behavior is somehow necessary.  Regardless of the Level and
1132  * Version of the SBML, these functions allow client applications to use more
1133  * generalized code in some situations (for instance, when manipulating
1134  * objects that are all known to have identifiers).  If the object in
1135  * question does not posess an 'id' attribute according to the SBML
1136  * specification for the Level and Version in use, libSBML will not allow the
1137  * identifier to be set, nor will it read or write 'id' attributes for those
1138  * objects.
1139  *
1140  *
1141  *
1142  * @param sid the string to use as the identifier of this object.
1143  *
1144  *
1145  * @return integer value indicating success/failure of the
1146  * function.  @if clike The value is drawn from the
1147  * enumeration #OperationReturnValues_t. @endif The possible values
1148  * returned by this function are:
1149  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1150  * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1151  * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1152  *
1153  * @see getIdAttribute()
1154  * @see setIdAttribute(string sid)
1155  * @see isSetIdAttribute()
1156  * @see unsetIdAttribute()
1157  *
1158  *
1159    */ public new
setId(string sid)1160  int setId(string sid) {
1161     int ret = libsbmlPINVOKE.Model_setId(swigCPtr, sid);
1162     return ret;
1163   }
1164 
1165 
1166 /**
1167    * Sets the value of the 'name' attribute of this Model.
1168    *
1169    *
1170  *
1171  *
1172  * The string in @p name is copied.
1173  *
1174  * @param name the new name for the SBML object.
1175  *
1176  *
1177  * @return integer value indicating success/failure of the
1178  * function.  @if clike The value is drawn from the
1179  * enumeration #OperationReturnValues_t. @endif The possible values
1180  * returned by this function are:
1181  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1182  * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1183  *
1184  *
1185    */ public new
setName(string name)1186  int setName(string name) {
1187     int ret = libsbmlPINVOKE.Model_setName(swigCPtr, name);
1188     return ret;
1189   }
1190 
1191 
1192 /**
1193    * Sets the value of the 'substanceUnits' attribute of this Model.
1194    *
1195    * The string in @p units is copied.
1196    *
1197    * @param units the new substanceUnits for the Model.
1198    *
1199    *
1200  * @return integer value indicating success/failure of the
1201  * function.  @if clike The value is drawn from the
1202  * enumeration #OperationReturnValues_t. @endif The possible values
1203  * returned by this function are:
1204  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1205    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1206    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1207    *
1208    * @note The 'substanceUnits' attribute is available in
1209    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1210    */ public
setSubstanceUnits(string units)1211  int setSubstanceUnits(string units) {
1212     int ret = libsbmlPINVOKE.Model_setSubstanceUnits(swigCPtr, units);
1213     return ret;
1214   }
1215 
1216 
1217 /**
1218    * Sets the value of the 'timeUnits' attribute of this Model.
1219    *
1220    * The string in @p units is copied.
1221    *
1222    * @param units the new timeUnits for the Model.
1223    *
1224    *
1225  * @return integer value indicating success/failure of the
1226  * function.  @if clike The value is drawn from the
1227  * enumeration #OperationReturnValues_t. @endif The possible values
1228  * returned by this function are:
1229  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1230    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1231    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1232    *
1233    * @note The 'timeUnits' attribute is available in
1234    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1235    */ public
setTimeUnits(string units)1236  int setTimeUnits(string units) {
1237     int ret = libsbmlPINVOKE.Model_setTimeUnits(swigCPtr, units);
1238     return ret;
1239   }
1240 
1241 
1242 /**
1243    * Sets the value of the 'volumeUnits' attribute of this Model.
1244    *
1245    * The string in @p units is copied.
1246    *
1247    * @param units the new volumeUnits for the Model.
1248    *
1249    *
1250  * @return integer value indicating success/failure of the
1251  * function.  @if clike The value is drawn from the
1252  * enumeration #OperationReturnValues_t. @endif The possible values
1253  * returned by this function are:
1254  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1255    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1256    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1257    *
1258    * @note The 'volumeUnits' attribute is available in
1259    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1260    */ public
setVolumeUnits(string units)1261  int setVolumeUnits(string units) {
1262     int ret = libsbmlPINVOKE.Model_setVolumeUnits(swigCPtr, units);
1263     return ret;
1264   }
1265 
1266 
1267 /**
1268    * Sets the value of the 'areaUnits' attribute of this Model.
1269    *
1270    * The string in @p units is copied.
1271    *
1272    * @param units the new areaUnits for the Model.
1273    *
1274    *
1275  * @return integer value indicating success/failure of the
1276  * function.  @if clike The value is drawn from the
1277  * enumeration #OperationReturnValues_t. @endif The possible values
1278  * returned by this function are:
1279  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1280    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1281    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1282    *
1283    * @note The 'areaUnits' attribute is available in
1284    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1285    */ public
setAreaUnits(string units)1286  int setAreaUnits(string units) {
1287     int ret = libsbmlPINVOKE.Model_setAreaUnits(swigCPtr, units);
1288     return ret;
1289   }
1290 
1291 
1292 /**
1293    * Sets the value of the 'lengthUnits' attribute of this Model.
1294    *
1295    * The string in @p units is copied.
1296    *
1297    * @param units the new lengthUnits for the Model.
1298    *
1299    *
1300  * @return integer value indicating success/failure of the
1301  * function.  @if clike The value is drawn from the
1302  * enumeration #OperationReturnValues_t. @endif The possible values
1303  * returned by this function are:
1304  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1305    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1306    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1307    *
1308    * @note The 'lengthUnits' attribute is available in
1309    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1310    */ public
setLengthUnits(string units)1311  int setLengthUnits(string units) {
1312     int ret = libsbmlPINVOKE.Model_setLengthUnits(swigCPtr, units);
1313     return ret;
1314   }
1315 
1316 
1317 /**
1318    * Sets the value of the 'extentUnits' attribute of this Model.
1319    *
1320    * The string in @p units is copied.
1321    *
1322    * @param units the new extentUnits for the Model.
1323    *
1324    *
1325  * @return integer value indicating success/failure of the
1326  * function.  @if clike The value is drawn from the
1327  * enumeration #OperationReturnValues_t. @endif The possible values
1328  * returned by this function are:
1329  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1330    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1331    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1332    *
1333    * @note The 'extentUnits' attribute is available in
1334    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1335    */ public
setExtentUnits(string units)1336  int setExtentUnits(string units) {
1337     int ret = libsbmlPINVOKE.Model_setExtentUnits(swigCPtr, units);
1338     return ret;
1339   }
1340 
1341 
1342 /**
1343    * Sets the value of the 'conversionFactor' attribute of this Model.
1344    *
1345    * The string in @p units is copied.
1346    *
1347    * @param units the new conversionFactor for the Model.
1348    *
1349    *
1350  * @return integer value indicating success/failure of the
1351  * function.  @if clike The value is drawn from the
1352  * enumeration #OperationReturnValues_t. @endif The possible values
1353  * returned by this function are:
1354  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1355    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1356    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1357    *
1358    * @note The 'conversionFactor' attribute is available in
1359    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1360    */ public
setConversionFactor(string units)1361  int setConversionFactor(string units) {
1362     int ret = libsbmlPINVOKE.Model_setConversionFactor(swigCPtr, units);
1363     return ret;
1364   }
1365 
1366 
1367 /**
1368    * Unsets the value of the 'id' attribute of this Model.
1369    *
1370    *
1371  *
1372  *
1373  * The identifier given by an object's 'id' attribute value
1374  * is used to identify the object within the SBML model definition.
1375  * Other objects can refer to the component using this identifier.  The
1376  * data type of 'id' is always <code>SId</code> or a type derived
1377  * from that, such as <code>UnitSId</code>, depending on the object in
1378  * question.  All data types are defined as follows:
1379  * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
1380  *   letter ::= 'a'..'z','A'..'Z'
1381  *   digit  ::= '0'..'9'
1382  *   idChar ::= letter | digit | '_'
1383  *   SId    ::= ( letter | '_' ) idChar*
1384  * </pre>
1385  * The characters <code>(</code> and <code>)</code> are used for grouping,
1386  * the character <code>*</code> 'zero or more times', and the character
1387  * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers
1388  * is determined by an exact character sequence match; i.e., comparisons must
1389  * be performed in a case-sensitive manner.  This applies to all uses of
1390  * <code>SId</code>, <code>SIdRef</code>, and derived types.
1391  *
1392  * Users need to be aware of some important API issues that are the result of
1393  * the history of SBML and libSBML.  Prior to SBML Level&nbsp;3
1394  * Version&nbsp;2, SBML defined 'id' and 'name' attributes on only a subset
1395  * of SBML objects.  To simplify the work of programmers, libSBML's API
1396  * provided get, set, check, and unset on the SBase object class itself
1397  * instead of on individual subobject classes. This made the
1398  * get/set/etc. methods uniformly available on all objects in the libSBML
1399  * API.  LibSBML simply returned empty strings or otherwise did not act when
1400  * the methods were applied to SBML objects that were not defined by the SBML
1401  * specification to have 'id' or 'name' attributes.  Additional complications
1402  * arose with the rule and assignment objects: InitialAssignment,
1403  * EventAssignment, AssignmentRule, and RateRule.  In early versions of SBML,
1404  * the rule object hierarchy was different, and in addition, then as now,
1405  * they possess different attributes: 'variable' (for the rules and event
1406  * assignments), 'symbol' (for initial assignments), or neither (for
1407  * algebraic rules).  Prior to SBML Level&nbsp;3 Version&nbsp;2, getId()
1408  * would always return an empty string, and isSetId() would always return @c
1409  * false for objects of these classes.
1410  *
1411  * With the addition of 'id' and 'name' attributes on SBase in Level&nbsp;3
1412  * Version&nbsp;2, it became necessary to introduce a new way to interact
1413  * with the attributes more consistently in libSBML to avoid breaking
1414  * backward compatibility in the behavior of the original 'id' methods.  For
1415  * this reason, libSBML provides four functions (getIdAttribute(),
1416  * setIdAttribute(@if java String@endif), isSetIdAttribute(), and
1417  * unsetIdAttribute()) that always act on the actual 'id' attribute inherited
1418  * from SBase, regardless of the object's type.  <strong>These new methods
1419  * should be used instead of the older getId()/setId()/etc. methods</strong>
1420  * unless the old behavior is somehow necessary.  Regardless of the Level and
1421  * Version of the SBML, these functions allow client applications to use more
1422  * generalized code in some situations (for instance, when manipulating
1423  * objects that are all known to have identifiers).  If the object in
1424  * question does not posess an 'id' attribute according to the SBML
1425  * specification for the Level and Version in use, libSBML will not allow the
1426  * identifier to be set, nor will it read or write 'id' attributes for those
1427  * objects.
1428  *
1429  *
1430  *
1431  *
1432  * @return integer value indicating success/failure of the
1433  * function.  @if clike The value is drawn from the
1434  * enumeration #OperationReturnValues_t. @endif The possible values
1435  * returned by this function are:
1436  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1437  * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1438  *
1439  * @see getIdAttribute()
1440  * @see setIdAttribute(string sid)
1441  * @see isSetIdAttribute()
1442  * @see unsetIdAttribute()
1443  *
1444  *
1445    */ public new
unsetId()1446  int unsetId() {
1447     int ret = libsbmlPINVOKE.Model_unsetId(swigCPtr);
1448     return ret;
1449   }
1450 
1451 
1452 /**
1453    * Unsets the value of the 'name' attribute of this Model.
1454    *
1455    *
1456  *
1457  *
1458  * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
1459  * moved to SBase directly, instead of being defined individually for many
1460  * (but not all) objects.  LibSBML has for a long time provided functions
1461  * defined on SBase itself to get, set, and unset those attributes, which
1462  * would fail or otherwise return empty strings if executed on any object
1463  * for which those attributes were not defined.  Now that all SBase objects
1464  * define those attributes, those functions now succeed for any object with
1465  * the appropriate level and version.
1466  *
1467  * The 'name' attribute is
1468  * optional and is not intended to be used for cross-referencing purposes
1469  * within a model.  Its purpose instead is to provide a human-readable
1470  * label for the component.  The data type of 'name' is the type
1471  * <code>string</code> defined in XML Schema.  SBML imposes no
1472  * restrictions as to the content of 'name' attributes beyond those
1473  * restrictions defined by the <code>string</code> type in XML Schema.
1474  *
1475  * The recommended practice for handling 'name' is as follows.  If a
1476  * software tool has the capability for displaying the content of 'name'
1477  * attributes, it should display this content to the user as a
1478  * component's label instead of the component's 'id'.  If the user
1479  * interface does not have this capability (e.g., because it cannot
1480  * display or use special characters in symbol names), or if the 'name'
1481  * attribute is missing on a given component, then the user interface
1482  * should display the value of the 'id' attribute instead.  (Script
1483  * language interpreters are especially likely to display 'id' instead of
1484  * 'name'.)
1485  *
1486  * As a consequence of the above, authors of systems that automatically
1487  * generate the values of 'id' attributes should be aware some systems
1488  * may display the 'id''s to the user.  Authors therefore may wish to
1489  * take some care to have their software create 'id' values that are: (a)
1490  * reasonably easy for humans to type and read; and (b) likely to be
1491  * meaningful, for example by making the 'id' attribute be an abbreviated
1492  * form of the name attribute value.
1493  *
1494  * An additional point worth mentioning is although there are
1495  * restrictions on the uniqueness of 'id' values, there are no
1496  * restrictions on the uniqueness of 'name' values in a model.  This
1497  * allows software applications leeway in assigning component identifiers.
1498  *
1499  * Regardless of the level and version of the SBML, these functions allow
1500  * client applications to use more generalized code in some situations
1501  * (for instance, when manipulating objects that are all known to have
1502  * names).  If the object in question does not posess a 'name' attribute
1503  * according to the SBML specification for the Level and Version in use,
1504  * libSBML will not allow the name to be set, nor will it read or
1505  * write 'name' attributes for those objects.
1506  *
1507  *
1508  *
1509  *
1510  * @return integer value indicating success/failure of the
1511  * function.  @if clike The value is drawn from the
1512  * enumeration #OperationReturnValues_t. @endif The possible values
1513  * returned by this function are:
1514  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1515  * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1516  *
1517  * @see getName()
1518  * @see setName(string sid)
1519  * @see isSetName()
1520  *
1521  *
1522    */ public new
unsetName()1523  int unsetName() {
1524     int ret = libsbmlPINVOKE.Model_unsetName(swigCPtr);
1525     return ret;
1526   }
1527 
1528 
1529 /**
1530    * Unsets the value of the 'substanceUnits' attribute of this Model.
1531    *
1532    *
1533  * @return integer value indicating success/failure of the
1534  * function.  @if clike The value is drawn from the
1535  * enumeration #OperationReturnValues_t. @endif The possible values
1536  * returned by this function are:
1537  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1538    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1539    *
1540    * @note The 'substanceUnits' attribute is available in
1541    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1542    */ public
unsetSubstanceUnits()1543  int unsetSubstanceUnits() {
1544     int ret = libsbmlPINVOKE.Model_unsetSubstanceUnits(swigCPtr);
1545     return ret;
1546   }
1547 
1548 
1549 /**
1550    * Unsets the value of the 'timeUnits' attribute of this Model.
1551    *
1552    *
1553  * @return integer value indicating success/failure of the
1554  * function.  @if clike The value is drawn from the
1555  * enumeration #OperationReturnValues_t. @endif The possible values
1556  * returned by this function are:
1557  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1558    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1559    *
1560    * @note The 'timeUnits' attribute is available in
1561    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1562    */ public
unsetTimeUnits()1563  int unsetTimeUnits() {
1564     int ret = libsbmlPINVOKE.Model_unsetTimeUnits(swigCPtr);
1565     return ret;
1566   }
1567 
1568 
1569 /**
1570    * Unsets the value of the 'volumeUnits' attribute of this Model.
1571    *
1572    *
1573  * @return integer value indicating success/failure of the
1574  * function.  @if clike The value is drawn from the
1575  * enumeration #OperationReturnValues_t. @endif The possible values
1576  * returned by this function are:
1577  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1578    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1579    *
1580    * @note The 'volumeUnits' attribute is available in
1581    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1582    */ public
unsetVolumeUnits()1583  int unsetVolumeUnits() {
1584     int ret = libsbmlPINVOKE.Model_unsetVolumeUnits(swigCPtr);
1585     return ret;
1586   }
1587 
1588 
1589 /**
1590    * Unsets the value of the 'areaUnits' attribute of this Model.
1591    *
1592    *
1593  * @return integer value indicating success/failure of the
1594  * function.  @if clike The value is drawn from the
1595  * enumeration #OperationReturnValues_t. @endif The possible values
1596  * returned by this function are:
1597  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1598    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1599    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1600    *
1601    * @note The 'areaUnits' attribute is available in
1602    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1603    */ public
unsetAreaUnits()1604  int unsetAreaUnits() {
1605     int ret = libsbmlPINVOKE.Model_unsetAreaUnits(swigCPtr);
1606     return ret;
1607   }
1608 
1609 
1610 /**
1611    * Unsets the value of the 'lengthUnits' attribute of this Model.
1612    *
1613    *
1614  * @return integer value indicating success/failure of the
1615  * function.  @if clike The value is drawn from the
1616  * enumeration #OperationReturnValues_t. @endif The possible values
1617  * returned by this function are:
1618  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1619    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1620    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1621    *
1622    * @note The 'lengthUnits' attribute is available in
1623    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1624    */ public
unsetLengthUnits()1625  int unsetLengthUnits() {
1626     int ret = libsbmlPINVOKE.Model_unsetLengthUnits(swigCPtr);
1627     return ret;
1628   }
1629 
1630 
1631 /**
1632    * Unsets the value of the 'extentUnits' attribute of this Model.
1633    *
1634    *
1635  * @return integer value indicating success/failure of the
1636  * function.  @if clike The value is drawn from the
1637  * enumeration #OperationReturnValues_t. @endif The possible values
1638  * returned by this function are:
1639  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1640    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1641    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1642    *
1643    * @note The 'extentUnits' attribute is available in
1644    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1645    */ public
unsetExtentUnits()1646  int unsetExtentUnits() {
1647     int ret = libsbmlPINVOKE.Model_unsetExtentUnits(swigCPtr);
1648     return ret;
1649   }
1650 
1651 
1652 /**
1653    * Unsets the value of the 'conversionFactor' attribute of this Model.
1654    *
1655    *
1656  * @return integer value indicating success/failure of the
1657  * function.  @if clike The value is drawn from the
1658  * enumeration #OperationReturnValues_t. @endif The possible values
1659  * returned by this function are:
1660  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1661    * @li @link libsbml#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE@endlink
1662    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1663    *
1664    * @note The 'conversionFactor' attribute is available in
1665    * SBML Level&nbsp;3 but is not present on Model in lower Levels of SBML.
1666    */ public
unsetConversionFactor()1667  int unsetConversionFactor() {
1668     int ret = libsbmlPINVOKE.Model_unsetConversionFactor(swigCPtr);
1669     return ret;
1670   }
1671 
1672 
1673 /**
1674    * Adds a copy of the given FunctionDefinition object to this Model.
1675    *
1676    * @param fd the FunctionDefinition to add.
1677    *
1678    *
1679  * @return integer value indicating success/failure of the
1680  * function.  @if clike The value is drawn from the
1681  * enumeration #OperationReturnValues_t. @endif The possible values
1682  * returned by this function are:
1683  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1684    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1685    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1686    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1687    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1688    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1689    *
1690    *
1691  * @note This method should be used with some caution.  The fact that this
1692  * method @em copies the object passed to it means that the caller will be
1693  * left holding a physically different object instance than the one contained
1694  * inside this object.  Changes made to the original object instance (such as
1695  * resetting attribute values) will <em>not affect the instance in this
1696  * object</em>.  In addition, the caller should make sure to free the
1697  * original object if it is no longer being used, or else a memory leak will
1698  * result.  Please see other methods on this class (particularly a
1699  * corresponding method whose name begins with the word <code>create</code>)
1700  * for alternatives that do not lead to these issues.
1701  *
1702  *
1703    *
1704    * @see createFunctionDefinition()
1705    */ public
addFunctionDefinition(FunctionDefinition fd)1706  int addFunctionDefinition(FunctionDefinition fd) {
1707     int ret = libsbmlPINVOKE.Model_addFunctionDefinition(swigCPtr, FunctionDefinition.getCPtr(fd));
1708     return ret;
1709   }
1710 
1711 
1712 /**
1713    * Adds a copy of the given UnitDefinition object to this Model.
1714    *
1715    * @param ud the UnitDefinition object to add.
1716    *
1717    *
1718  * @return integer value indicating success/failure of the
1719  * function.  @if clike The value is drawn from the
1720  * enumeration #OperationReturnValues_t. @endif The possible values
1721  * returned by this function are:
1722  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1723    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1724    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1725    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1726    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1727    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1728    *
1729    *
1730  * @note This method should be used with some caution.  The fact that this
1731  * method @em copies the object passed to it means that the caller will be
1732  * left holding a physically different object instance than the one contained
1733  * inside this object.  Changes made to the original object instance (such as
1734  * resetting attribute values) will <em>not affect the instance in this
1735  * object</em>.  In addition, the caller should make sure to free the
1736  * original object if it is no longer being used, or else a memory leak will
1737  * result.  Please see other methods on this class (particularly a
1738  * corresponding method whose name begins with the word <code>create</code>)
1739  * for alternatives that do not lead to these issues.
1740  *
1741  *
1742    *
1743    * @see createUnitDefinition()
1744    */ public
addUnitDefinition(UnitDefinition ud)1745  int addUnitDefinition(UnitDefinition ud) {
1746     int ret = libsbmlPINVOKE.Model_addUnitDefinition(swigCPtr, UnitDefinition.getCPtr(ud));
1747     return ret;
1748   }
1749 
1750 
1751 /**
1752    * Adds a copy of the given CompartmentType object to this Model.
1753    *
1754    * @param ct the CompartmentType object to add.
1755    *
1756    *
1757  * @return integer value indicating success/failure of the
1758  * function.  @if clike The value is drawn from the
1759  * enumeration #OperationReturnValues_t. @endif The possible values
1760  * returned by this function are:
1761  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1762    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1763    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1764    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1765    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1766    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1767    *
1768    *
1769  * @note This method should be used with some caution.  The fact that this
1770  * method @em copies the object passed to it means that the caller will be
1771  * left holding a physically different object instance than the one contained
1772  * inside this object.  Changes made to the original object instance (such as
1773  * resetting attribute values) will <em>not affect the instance in this
1774  * object</em>.  In addition, the caller should make sure to free the
1775  * original object if it is no longer being used, or else a memory leak will
1776  * result.  Please see other methods on this class (particularly a
1777  * corresponding method whose name begins with the word <code>create</code>)
1778  * for alternatives that do not lead to these issues.
1779  *
1780  *
1781    *
1782    * @note The CompartmentType object class is only available in SBML
1783    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
1784    * Level&nbsp;1 nor Level&nbsp;3.
1785    *
1786    * @see createCompartmentType()
1787    */ public
addCompartmentType(CompartmentType ct)1788  int addCompartmentType(CompartmentType ct) {
1789     int ret = libsbmlPINVOKE.Model_addCompartmentType(swigCPtr, CompartmentType.getCPtr(ct));
1790     return ret;
1791   }
1792 
1793 
1794 /**
1795    * Adds a copy of the given SpeciesType object to this Model.
1796    *
1797    * @param st the SpeciesType object to add.
1798    *
1799    *
1800  * @return integer value indicating success/failure of the
1801  * function.  @if clike The value is drawn from the
1802  * enumeration #OperationReturnValues_t. @endif The possible values
1803  * returned by this function are:
1804  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1805    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1806    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1807    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1808    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1809    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1810    *
1811    *
1812  * @note This method should be used with some caution.  The fact that this
1813  * method @em copies the object passed to it means that the caller will be
1814  * left holding a physically different object instance than the one contained
1815  * inside this object.  Changes made to the original object instance (such as
1816  * resetting attribute values) will <em>not affect the instance in this
1817  * object</em>.  In addition, the caller should make sure to free the
1818  * original object if it is no longer being used, or else a memory leak will
1819  * result.  Please see other methods on this class (particularly a
1820  * corresponding method whose name begins with the word <code>create</code>)
1821  * for alternatives that do not lead to these issues.
1822  *
1823  *
1824    *
1825    * @note The SpeciesType object class is only available in SBML
1826    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
1827    * Level&nbsp;1 nor Level&nbsp;3.
1828    *
1829    * @see createSpeciesType()
1830    */ public
addSpeciesType(SpeciesType st)1831  int addSpeciesType(SpeciesType st) {
1832     int ret = libsbmlPINVOKE.Model_addSpeciesType(swigCPtr, SpeciesType.getCPtr(st));
1833     return ret;
1834   }
1835 
1836 
1837 /**
1838    * Adds a copy of the given Compartment object to this Model.
1839    *
1840    * @param c the Compartment object to add.
1841    *
1842    *
1843  * @return integer value indicating success/failure of the
1844  * function.  @if clike The value is drawn from the
1845  * enumeration #OperationReturnValues_t. @endif The possible values
1846  * returned by this function are:
1847  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1848    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1849    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1850    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1851    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1852    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1853    *
1854    *
1855  * @note This method should be used with some caution.  The fact that this
1856  * method @em copies the object passed to it means that the caller will be
1857  * left holding a physically different object instance than the one contained
1858  * inside this object.  Changes made to the original object instance (such as
1859  * resetting attribute values) will <em>not affect the instance in this
1860  * object</em>.  In addition, the caller should make sure to free the
1861  * original object if it is no longer being used, or else a memory leak will
1862  * result.  Please see other methods on this class (particularly a
1863  * corresponding method whose name begins with the word <code>create</code>)
1864  * for alternatives that do not lead to these issues.
1865  *
1866  *
1867    *
1868    * @see createCompartment()
1869    */ public
addCompartment(Compartment c)1870  int addCompartment(Compartment c) {
1871     int ret = libsbmlPINVOKE.Model_addCompartment(swigCPtr, Compartment.getCPtr(c));
1872     return ret;
1873   }
1874 
1875 
1876 /**
1877    * Adds a copy of the given Species object to this Model.
1878    *
1879    * @param s the Species object to add.
1880    *
1881    *
1882  * @return integer value indicating success/failure of the
1883  * function.  @if clike The value is drawn from the
1884  * enumeration #OperationReturnValues_t. @endif The possible values
1885  * returned by this function are:
1886  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1887    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1888    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1889    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1890    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1891    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1892    *
1893    *
1894  * @note This method should be used with some caution.  The fact that this
1895  * method @em copies the object passed to it means that the caller will be
1896  * left holding a physically different object instance than the one contained
1897  * inside this object.  Changes made to the original object instance (such as
1898  * resetting attribute values) will <em>not affect the instance in this
1899  * object</em>.  In addition, the caller should make sure to free the
1900  * original object if it is no longer being used, or else a memory leak will
1901  * result.  Please see other methods on this class (particularly a
1902  * corresponding method whose name begins with the word <code>create</code>)
1903  * for alternatives that do not lead to these issues.
1904  *
1905  *
1906    *
1907    * @see createSpecies()
1908    */ public
addSpecies(Species s)1909  int addSpecies(Species s) {
1910     int ret = libsbmlPINVOKE.Model_addSpecies(swigCPtr, Species.getCPtr(s));
1911     return ret;
1912   }
1913 
1914 
1915 /**
1916    * Adds a copy of the given Parameter object to this Model.
1917    *
1918    * @param p the Parameter object to add.
1919    *
1920    *
1921  * @return integer value indicating success/failure of the
1922  * function.  @if clike The value is drawn from the
1923  * enumeration #OperationReturnValues_t. @endif The possible values
1924  * returned by this function are:
1925  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1926    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1927    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1928    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1929    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1930    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1931    *
1932    *
1933  * @note This method should be used with some caution.  The fact that this
1934  * method @em copies the object passed to it means that the caller will be
1935  * left holding a physically different object instance than the one contained
1936  * inside this object.  Changes made to the original object instance (such as
1937  * resetting attribute values) will <em>not affect the instance in this
1938  * object</em>.  In addition, the caller should make sure to free the
1939  * original object if it is no longer being used, or else a memory leak will
1940  * result.  Please see other methods on this class (particularly a
1941  * corresponding method whose name begins with the word <code>create</code>)
1942  * for alternatives that do not lead to these issues.
1943  *
1944  *
1945    *
1946    * @see createParameter()
1947    */ public
addParameter(Parameter p)1948  int addParameter(Parameter p) {
1949     int ret = libsbmlPINVOKE.Model_addParameter(swigCPtr, Parameter.getCPtr(p));
1950     return ret;
1951   }
1952 
1953 
1954 /**
1955    * Adds a copy of the given InitialAssignment object to this Model.
1956    *
1957    * @param ia the InitialAssignment object to add.
1958    *
1959    *
1960  * @return integer value indicating success/failure of the
1961  * function.  @if clike The value is drawn from the
1962  * enumeration #OperationReturnValues_t. @endif The possible values
1963  * returned by this function are:
1964  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1965    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
1966    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
1967    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
1968    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1969    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1970    *
1971    *
1972  * @note This method should be used with some caution.  The fact that this
1973  * method @em copies the object passed to it means that the caller will be
1974  * left holding a physically different object instance than the one contained
1975  * inside this object.  Changes made to the original object instance (such as
1976  * resetting attribute values) will <em>not affect the instance in this
1977  * object</em>.  In addition, the caller should make sure to free the
1978  * original object if it is no longer being used, or else a memory leak will
1979  * result.  Please see other methods on this class (particularly a
1980  * corresponding method whose name begins with the word <code>create</code>)
1981  * for alternatives that do not lead to these issues.
1982  *
1983  *
1984    *
1985    * @see createInitialAssignment()
1986    */ public
addInitialAssignment(InitialAssignment ia)1987  int addInitialAssignment(InitialAssignment ia) {
1988     int ret = libsbmlPINVOKE.Model_addInitialAssignment(swigCPtr, InitialAssignment.getCPtr(ia));
1989     return ret;
1990   }
1991 
1992 
1993 /**
1994    * Adds a copy of the given Rule object to this Model.
1995    *
1996    * @param r the Rule object to add.
1997    *
1998    *
1999  * @return integer value indicating success/failure of the
2000  * function.  @if clike The value is drawn from the
2001  * enumeration #OperationReturnValues_t. @endif The possible values
2002  * returned by this function are:
2003  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2004    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
2005    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
2006    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
2007    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
2008    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
2009    *
2010    *
2011  * @note This method should be used with some caution.  The fact that this
2012  * method @em copies the object passed to it means that the caller will be
2013  * left holding a physically different object instance than the one contained
2014  * inside this object.  Changes made to the original object instance (such as
2015  * resetting attribute values) will <em>not affect the instance in this
2016  * object</em>.  In addition, the caller should make sure to free the
2017  * original object if it is no longer being used, or else a memory leak will
2018  * result.  Please see other methods on this class (particularly a
2019  * corresponding method whose name begins with the word <code>create</code>)
2020  * for alternatives that do not lead to these issues.
2021  *
2022  *
2023    *
2024    * @see createAlgebraicRule()
2025    * @see createAssignmentRule()
2026    * @see createRateRule()
2027    */ public
addRule(Rule r)2028  int addRule(Rule r) {
2029     int ret = libsbmlPINVOKE.Model_addRule(swigCPtr, Rule.getCPtr(r));
2030     return ret;
2031   }
2032 
2033 
2034 /**
2035    * Adds a copy of the given Constraint object to this Model.
2036    *
2037    * @param c the Constraint object to add.
2038    *
2039    *
2040  * @return integer value indicating success/failure of the
2041  * function.  @if clike The value is drawn from the
2042  * enumeration #OperationReturnValues_t. @endif The possible values
2043  * returned by this function are:
2044  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2045    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
2046    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
2047    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
2048    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
2049    *
2050    *
2051  * @note This method should be used with some caution.  The fact that this
2052  * method @em copies the object passed to it means that the caller will be
2053  * left holding a physically different object instance than the one contained
2054  * inside this object.  Changes made to the original object instance (such as
2055  * resetting attribute values) will <em>not affect the instance in this
2056  * object</em>.  In addition, the caller should make sure to free the
2057  * original object if it is no longer being used, or else a memory leak will
2058  * result.  Please see other methods on this class (particularly a
2059  * corresponding method whose name begins with the word <code>create</code>)
2060  * for alternatives that do not lead to these issues.
2061  *
2062  *
2063    *
2064    * @see createConstraint()
2065    */ public
addConstraint(Constraint c)2066  int addConstraint(Constraint c) {
2067     int ret = libsbmlPINVOKE.Model_addConstraint(swigCPtr, Constraint.getCPtr(c));
2068     return ret;
2069   }
2070 
2071 
2072 /**
2073    * Adds a copy of the given Reaction object to this Model.
2074    *
2075    * @param r the Reaction object to add.
2076    *
2077    *
2078  * @return integer value indicating success/failure of the
2079  * function.  @if clike The value is drawn from the
2080  * enumeration #OperationReturnValues_t. @endif The possible values
2081  * returned by this function are:
2082  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2083    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
2084    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
2085    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
2086    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
2087    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
2088    *
2089    *
2090  * @note This method should be used with some caution.  The fact that this
2091  * method @em copies the object passed to it means that the caller will be
2092  * left holding a physically different object instance than the one contained
2093  * inside this object.  Changes made to the original object instance (such as
2094  * resetting attribute values) will <em>not affect the instance in this
2095  * object</em>.  In addition, the caller should make sure to free the
2096  * original object if it is no longer being used, or else a memory leak will
2097  * result.  Please see other methods on this class (particularly a
2098  * corresponding method whose name begins with the word <code>create</code>)
2099  * for alternatives that do not lead to these issues.
2100  *
2101  *
2102    *
2103    * @see createReaction()
2104    */ public
addReaction(Reaction r)2105  int addReaction(Reaction r) {
2106     int ret = libsbmlPINVOKE.Model_addReaction(swigCPtr, Reaction.getCPtr(r));
2107     return ret;
2108   }
2109 
2110 
2111 /**
2112    * Adds a copy of the given Event object to this Model.
2113    *
2114    * @param e the Event object to add.
2115    *
2116    *
2117  * @return integer value indicating success/failure of the
2118  * function.  @if clike The value is drawn from the
2119  * enumeration #OperationReturnValues_t. @endif The possible values
2120  * returned by this function are:
2121  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2122    * @li @link libsbml#LIBSBML_LEVEL_MISMATCH LIBSBML_LEVEL_MISMATCH@endlink
2123    * @li @link libsbml#LIBSBML_VERSION_MISMATCH LIBSBML_VERSION_MISMATCH@endlink
2124    * @li @link libsbml#LIBSBML_DUPLICATE_OBJECT_ID LIBSBML_DUPLICATE_OBJECT_ID@endlink
2125    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
2126    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
2127    *
2128    *
2129  * @note This method should be used with some caution.  The fact that this
2130  * method @em copies the object passed to it means that the caller will be
2131  * left holding a physically different object instance than the one contained
2132  * inside this object.  Changes made to the original object instance (such as
2133  * resetting attribute values) will <em>not affect the instance in this
2134  * object</em>.  In addition, the caller should make sure to free the
2135  * original object if it is no longer being used, or else a memory leak will
2136  * result.  Please see other methods on this class (particularly a
2137  * corresponding method whose name begins with the word <code>create</code>)
2138  * for alternatives that do not lead to these issues.
2139  *
2140  *
2141    *
2142    * @see createEvent()
2143    */ public
addEvent(Event e)2144  int addEvent(Event e) {
2145     int ret = libsbmlPINVOKE.Model_addEvent(swigCPtr, Event.getCPtr(e));
2146     return ret;
2147   }
2148 
2149 
2150 /**
2151    * Creates a new FunctionDefinition inside this Model and returns it.
2152    *
2153    * The SBML Level and Version of the enclosing Model object, as well as
2154    * any SBML package namespaces, are used to initialize this
2155    * object's corresponding attributes.
2156    *
2157    * @return the FunctionDefinition object created.
2158    *
2159    * @see addFunctionDefinition(FunctionDefinition fd)
2160    */ public
createFunctionDefinition()2161  FunctionDefinition createFunctionDefinition() {
2162     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createFunctionDefinition(swigCPtr);
2163     FunctionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new FunctionDefinition(cPtr, false);
2164     return ret;
2165   }
2166 
2167 
2168 /**
2169    * Creates a new UnitDefinition inside this Model and returns it.
2170    *
2171    * The SBML Level and Version of the enclosing Model object, as well as
2172    * any SBML package namespaces, are used to initialize this
2173    * object's corresponding attributes.
2174    *
2175    * @return the UnitDefinition object created.
2176    *
2177    * @see addUnitDefinition(UnitDefinition ud)
2178    */ public
createUnitDefinition()2179  UnitDefinition createUnitDefinition() {
2180     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createUnitDefinition(swigCPtr);
2181     UnitDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new UnitDefinition(cPtr, false);
2182     return ret;
2183   }
2184 
2185 
2186 /**
2187    * Creates a new Unit object within the last UnitDefinition object
2188    * created in this model and returns a pointer to it.
2189    *
2190    * The SBML Level and Version of the enclosing Model object, as well as
2191    * any SBML package namespaces, are used to initialize this
2192    * object's corresponding attributes.
2193    *
2194    * The mechanism by which the UnitDefinition was created is not
2195    * significant.  If a UnitDefinition object does not exist in this model,
2196    * a new Unit is @em not created and @c null is returned instead.
2197    *
2198    * @return the Unit object created.
2199    *
2200    * @see addUnitDefinition(UnitDefinition ud)
2201    */ public
createUnit()2202  Unit createUnit() {
2203     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createUnit(swigCPtr);
2204     Unit ret = (cPtr == global::System.IntPtr.Zero) ? null : new Unit(cPtr, false);
2205     return ret;
2206   }
2207 
2208 
2209 /**
2210    * Creates a new CompartmentType inside this Model and returns it.
2211    *
2212    * The SBML Level and Version of the enclosing Model object, as well as
2213    * any SBML package namespaces, are used to initialize this
2214    * object's corresponding attributes.
2215    *
2216    * @return the CompartmentType object created.
2217    *
2218    * @note The CompartmentType object class is only available in SBML
2219    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
2220    * Level&nbsp;1 nor Level&nbsp;3.
2221    *
2222    * @see addCompartmentType(CompartmentType ct)
2223    */ public
createCompartmentType()2224  CompartmentType createCompartmentType() {
2225     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createCompartmentType(swigCPtr);
2226     CompartmentType ret = (cPtr == global::System.IntPtr.Zero) ? null : new CompartmentType(cPtr, false);
2227     return ret;
2228   }
2229 
2230 
2231 /**
2232    * Creates a new SpeciesType inside this Model and returns it.
2233    *
2234    * The SBML Level and Version of the enclosing Model object, as well as
2235    * any SBML package namespaces, are used to initialize this
2236    * object's corresponding attributes.
2237    *
2238    * @return the SpeciesType object created.
2239    *
2240    * @note The SpeciesType object class is only available in SBML
2241    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
2242    * Level&nbsp;1 nor Level&nbsp;3.
2243    *
2244    * @see addSpeciesType(SpeciesType st)
2245    */ public
createSpeciesType()2246  SpeciesType createSpeciesType() {
2247     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createSpeciesType(swigCPtr);
2248     SpeciesType ret = (cPtr == global::System.IntPtr.Zero) ? null : new SpeciesType(cPtr, false);
2249     return ret;
2250   }
2251 
2252 
2253 /**
2254    * Creates a new Compartment inside this Model and returns it.
2255    *
2256    * The SBML Level and Version of the enclosing Model object, as well as
2257    * any SBML package namespaces, are used to initialize this
2258    * object's corresponding attributes.
2259    *
2260    * @return the Compartment object created.
2261    *
2262    * @see addCompartment(Compartment c)
2263    */ public
createCompartment()2264  Compartment createCompartment() {
2265     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createCompartment(swigCPtr);
2266     Compartment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Compartment(cPtr, false);
2267     return ret;
2268   }
2269 
2270 
2271 /**
2272    * Creates a new Species inside this Model and returns it.
2273    *
2274    * The SBML Level and Version of the enclosing Model object, as well as
2275    * any SBML package namespaces, are used to initialize this
2276    * object's corresponding attributes.
2277    *
2278    * @return the Species object created.
2279    *
2280    * @see addSpecies(Species s)
2281    */ public
createSpecies()2282  Species createSpecies() {
2283     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createSpecies(swigCPtr);
2284     Species ret = (cPtr == global::System.IntPtr.Zero) ? null : new Species(cPtr, false);
2285     return ret;
2286   }
2287 
2288 
2289 /**
2290    * Creates a new Parameter inside this Model and returns it.
2291    *
2292    * The SBML Level and Version of the enclosing Model object, as well as
2293    * any SBML package namespaces, are used to initialize this
2294    * object's corresponding attributes.
2295    *
2296    * @return the Parameter object created.
2297    *
2298    * @see addParameter(Parameter p)
2299    */ public
createParameter()2300  Parameter createParameter() {
2301     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createParameter(swigCPtr);
2302     Parameter ret = (cPtr == global::System.IntPtr.Zero) ? null : new Parameter(cPtr, false);
2303     return ret;
2304   }
2305 
2306 
2307 /**
2308    * Creates a new InitialAssignment inside this Model and returns it.
2309    *
2310    * The SBML Level and Version of the enclosing Model object, as well as
2311    * any SBML package namespaces, are used to initialize this
2312    * object's corresponding attributes.
2313    *
2314    * @return the InitialAssignment object created.
2315    *
2316    * @see addInitialAssignment(InitialAssignment ia)
2317    */ public
createInitialAssignment()2318  InitialAssignment createInitialAssignment() {
2319     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createInitialAssignment(swigCPtr);
2320     InitialAssignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new InitialAssignment(cPtr, false);
2321     return ret;
2322   }
2323 
2324 
2325 /**
2326    * Creates a new AlgebraicRule inside this Model and returns it.
2327    *
2328    * The SBML Level and Version of the enclosing Model object, as well as
2329    * any SBML package namespaces, are used to initialize this
2330    * object's corresponding attributes.
2331    *
2332    * @return the AlgebraicRule object created.
2333    *
2334    * @see addRule(Rule r)
2335    */ public
createAlgebraicRule()2336  AlgebraicRule createAlgebraicRule() {
2337     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createAlgebraicRule(swigCPtr);
2338     AlgebraicRule ret = (cPtr == global::System.IntPtr.Zero) ? null : new AlgebraicRule(cPtr, false);
2339     return ret;
2340   }
2341 
2342 
2343 /**
2344    * Creates a new AssignmentRule inside this Model and returns it.
2345    *
2346    * The SBML Level and Version of the enclosing Model object, as well as
2347    * any SBML package namespaces, are used to initialize this
2348    * object's corresponding attributes.
2349    *
2350    * @return the AssignmentRule object created.
2351    *
2352    * @see addRule(Rule r)
2353    */ public
createAssignmentRule()2354  AssignmentRule createAssignmentRule() {
2355     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createAssignmentRule(swigCPtr);
2356     AssignmentRule ret = (cPtr == global::System.IntPtr.Zero) ? null : new AssignmentRule(cPtr, false);
2357     return ret;
2358   }
2359 
2360 
2361 /**
2362    * Creates a new RateRule inside this Model and returns it.
2363    *
2364    * The SBML Level and Version of the enclosing Model object, as well as
2365    * any SBML package namespaces, are used to initialize this
2366    * object's corresponding attributes.
2367    *
2368    * @return the RateRule object created.
2369    *
2370    * @see addRule(Rule r)
2371    */ public
createRateRule()2372  RateRule createRateRule() {
2373     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createRateRule(swigCPtr);
2374     RateRule ret = (cPtr == global::System.IntPtr.Zero) ? null : new RateRule(cPtr, false);
2375     return ret;
2376   }
2377 
2378 
2379 /**
2380    * Creates a new Constraint inside this Model and returns it.
2381    *
2382    * The SBML Level and Version of the enclosing Model object, as well as
2383    * any SBML package namespaces, are used to initialize this
2384    * object's corresponding attributes.
2385    *
2386    * @return the Constraint object created.
2387    *
2388    * @see addConstraint(Constraint c)
2389    */ public
createConstraint()2390  Constraint createConstraint() {
2391     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createConstraint(swigCPtr);
2392     Constraint ret = (cPtr == global::System.IntPtr.Zero) ? null : new Constraint(cPtr, false);
2393     return ret;
2394   }
2395 
2396 
2397 /**
2398    * Creates a new Reaction inside this Model and returns it.
2399    *
2400    * The SBML Level and Version of the enclosing Model object, as well as
2401    * any SBML package namespaces, are used to initialize this
2402    * object's corresponding attributes.
2403    *
2404    * @return the Reaction object created.
2405    *
2406    * @see addReaction(Reaction r)
2407    */ public
createReaction()2408  Reaction createReaction() {
2409 	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_createReaction(swigCPtr), false);
2410 	return ret;
2411 }
2412 
2413 
2414 /**
2415    * Creates a new SpeciesReference object for a reactant inside the last
2416    * Reaction object in this Model, and returns a pointer to it.
2417    *
2418    * The SBML Level and Version of the enclosing Model object, as well as
2419    * any SBML package namespaces, are used to initialize this
2420    * object's corresponding attributes.
2421    *
2422    *
2423  *
2424  * The mechanism by which the last Reaction object was created and added
2425  * to this Model is not significant.  It could have been created in a
2426  * variety of ways, for example using createReaction().  If a Reaction
2427  * does not exist for this model, a new SpeciesReference is @em not
2428  * created and @c null is returned instead.
2429  *
2430  *
2431    *
2432    * @return the SpeciesReference object created.  If a Reaction does not
2433    * exist for this model, a new SpeciesReference is @em not created and
2434    * @c null is returned.
2435    */ public
createReactant()2436  SpeciesReference createReactant() {
2437 	SpeciesReference ret
2438 	    = (SpeciesReference) libsbml.DowncastSBase(libsbmlPINVOKE.Model_createReactant(swigCPtr), false);
2439 	return ret;
2440 }
2441 
2442 
2443 /**
2444    * Creates a new SpeciesReference object for a product inside the last
2445    * Reaction object in this Model, and returns a pointer to it.
2446    *
2447    * The SBML Level and Version of the enclosing Model object, as well as
2448    * any SBML package namespaces, are used to initialize this
2449    * object's corresponding attributes.
2450    *
2451    *
2452  *
2453  * The mechanism by which the last Reaction object was created and added
2454  * to this Model is not significant.  It could have been created in a
2455  * variety of ways, for example using createReaction().  If a Reaction
2456  * does not exist for this model, a new SpeciesReference is @em not
2457  * created and @c null is returned instead.
2458  *
2459  *
2460    *
2461    * @return the SpeciesReference object created. If a Reaction does not
2462    * exist for this model, a new SpeciesReference is @em not created and
2463    * @c null is returned.
2464    */ public
createProduct()2465  SpeciesReference createProduct() {
2466 	SpeciesReference ret
2467 	    = (SpeciesReference) libsbml.DowncastSBase(libsbmlPINVOKE.Model_createProduct(swigCPtr), false);
2468 	return ret;
2469 }
2470 
2471 
2472 /**
2473    * Creates a new ModifierSpeciesReference object for a modifier species
2474    * inside the last Reaction object in this Model, and returns a pointer
2475    * to it.
2476    *
2477    * The SBML Level and Version of the enclosing Model object, as well as
2478    * any SBML package namespaces, are used to initialize this
2479    * object's corresponding attributes.
2480    *
2481    *
2482  *
2483  * The mechanism by which the last Reaction object was created and added
2484  * to this Model is not significant.  It could have been created in a
2485  * variety of ways, for example using createReaction().  If a Reaction
2486  * does not exist for this model, a new SpeciesReference is @em not
2487  * created and @c null is returned instead.
2488  *
2489  *
2490    *
2491    * @return the SpeciesReference object created.  If a Reaction does not
2492    * exist for this model, a new SpeciesReference is @em not created and
2493    * @c null is returned.
2494    */ public
createModifier()2495  ModifierSpeciesReference createModifier() {
2496     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createModifier(swigCPtr);
2497     ModifierSpeciesReference ret = (cPtr == global::System.IntPtr.Zero) ? null : new ModifierSpeciesReference(cPtr, false);
2498     return ret;
2499   }
2500 
2501 
2502 /**
2503    * Creates a new KineticLaw inside the last Reaction object created in
2504    * this Model, and returns a pointer to it.
2505    *
2506    * The SBML Level and Version of the enclosing Model object, as well as
2507    * any SBML package namespaces, are used to initialize this
2508    * object's corresponding attributes.
2509    *
2510    *
2511  *
2512  * The mechanism by which the last Reaction object was created and added
2513  * to this Model is not significant.  It could have been created in a
2514  * variety of ways, for example using createReaction().  If a Reaction
2515  * does not exist for this model, a new SpeciesReference is @em not
2516  * created and @c null is returned instead.
2517  *
2518  *
2519    *
2520    * @return the KineticLaw object created.  If a Reaction does not exist for
2521    * this model, or a Reaction does exist but already has a KineticLaw, a new
2522    * KineticLaw is @em not created and @c null is returned.
2523    */ public
createKineticLaw()2524  KineticLaw createKineticLaw() {
2525     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createKineticLaw(swigCPtr);
2526     KineticLaw ret = (cPtr == global::System.IntPtr.Zero) ? null : new KineticLaw(cPtr, false);
2527     return ret;
2528   }
2529 
2530 
2531 /**
2532    * Creates a new local Parameter inside the KineticLaw object of the last
2533    * Reaction created inside this Model, and returns a pointer to it.
2534    *
2535    * The SBML Level and Version of the enclosing Model object, as well as
2536    * any SBML package namespaces, are used to initialize this
2537    * object's corresponding attributes.
2538    *
2539    *
2540  *
2541  * The last KineticLaw object in this Model could have been created in a
2542  * variety of ways.  For example, it could have been added using
2543  * createKineticLaw(), or it could be the result of using
2544  * Reaction::createKineticLaw() on the Reaction object created by a
2545  * createReaction().  If a Reaction does not exist for this model, or the
2546  * last Reaction does not contain a KineticLaw object, a new Parameter is
2547  * @em not created and @c null is returned instead.
2548  *
2549  *
2550    *
2551    * @return the Parameter object created.  If a Reaction does not exist for
2552    * this model, or a KineticLaw for the Reaction does not exist, a new
2553    * Parameter is @em not created and @c null is returned.
2554    */ public
createKineticLawParameter()2555  Parameter createKineticLawParameter() {
2556     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createKineticLawParameter(swigCPtr);
2557     Parameter ret = (cPtr == global::System.IntPtr.Zero) ? null : new Parameter(cPtr, false);
2558     return ret;
2559   }
2560 
2561 
2562 /**
2563    * Creates a new LocalParameter inside the KineticLaw object of the last
2564    * Reaction created inside this Model, and returns a pointer to it.
2565    *
2566    * The SBML Level and Version of the enclosing Model object, as well as
2567    * any SBML package namespaces, are used to initialize this
2568    * object's corresponding attributes.
2569    *
2570    *
2571  *
2572  * The last KineticLaw object in this Model could have been created in a
2573  * variety of ways.  For example, it could have been added using
2574  * createKineticLaw(), or it could be the result of using
2575  * Reaction::createKineticLaw() on the Reaction object created by a
2576  * createReaction().  If a Reaction does not exist for this model, or the
2577  * last Reaction does not contain a KineticLaw object, a new Parameter is
2578  * @em not created and @c null is returned instead.
2579  *
2580  *
2581    *
2582    * @return the Parameter object created.  If a Reaction does not exist for
2583    * this model, or a KineticLaw for the Reaction does not exist, a new
2584    * Parameter is @em not created and @c null is returned.
2585    */ public
createKineticLawLocalParameter()2586  LocalParameter createKineticLawLocalParameter() {
2587     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createKineticLawLocalParameter(swigCPtr);
2588     LocalParameter ret = (cPtr == global::System.IntPtr.Zero) ? null : new LocalParameter(cPtr, false);
2589     return ret;
2590   }
2591 
2592 
2593 /**
2594    * Creates a new Event inside this Model and returns it.
2595    *
2596    * The SBML Level and Version of the enclosing Model object, as well as
2597    * any SBML package namespaces, are used to initialize this
2598    * object's corresponding attributes.
2599    *
2600    * @return the Event object created.
2601    */ public
createEvent()2602  Event createEvent() {
2603     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createEvent(swigCPtr);
2604     Event ret = (cPtr == global::System.IntPtr.Zero) ? null : new Event(cPtr, false);
2605     return ret;
2606   }
2607 
2608 
2609 /**
2610    * Creates a new EventAssignment inside the last Event object created in
2611    * this Model, and returns a pointer to it.
2612    *
2613    * The SBML Level and Version of the enclosing Model object, as well as
2614    * any SBML package namespaces, are used to initialize this
2615    * object's corresponding attributes.
2616    *
2617    *
2618  *
2619  * The mechanism by which the last Event object in this model was created
2620  * is not significant.  It could have been created in a variety of ways,
2621  * for example by using createEvent().  If no Event object exists in this
2622  * Model object, a new EventAssignment is @em not created and @c null is
2623  * returned instead.
2624    *
2625    * @return the EventAssignment object created.
2626    */ public
createEventAssignment()2627  EventAssignment createEventAssignment() {
2628     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createEventAssignment(swigCPtr);
2629     EventAssignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new EventAssignment(cPtr, false);
2630     return ret;
2631   }
2632 
2633 
2634 /**
2635    * Creates a new Trigger inside the last Event object created in
2636    * this Model, and returns a pointer to it.
2637    *
2638    * The SBML Level and Version of the enclosing Model object, as well as
2639    * any SBML package namespaces, are used to initialize this
2640    * object's corresponding attributes.
2641    *
2642    *
2643  *
2644  * The mechanism by which the last Event object in this model was created
2645  * is not significant.  It could have been created in a variety of ways,
2646  * for example by using createEvent().  If no Event object exists in this
2647  * Model object, a new EventAssignment is @em not created and @c null is
2648  * returned instead.
2649    *
2650    * @return the Trigger object created.
2651    */ public
createTrigger()2652  Trigger createTrigger() {
2653     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createTrigger(swigCPtr);
2654     Trigger ret = (cPtr == global::System.IntPtr.Zero) ? null : new Trigger(cPtr, false);
2655     return ret;
2656   }
2657 
2658 
2659 /**
2660    * Creates a new Delay inside the last Event object created in
2661    * this Model, and returns a pointer to it.
2662    *
2663    * The SBML Level and Version of the enclosing Model object, as well as
2664    * any SBML package namespaces, are used to initialize this
2665    * object's corresponding attributes.
2666    *
2667    *
2668  *
2669  * The mechanism by which the last Event object in this model was created
2670  * is not significant.  It could have been created in a variety of ways,
2671  * for example by using createEvent().  If no Event object exists in this
2672  * Model object, a new EventAssignment is @em not created and @c null is
2673  * returned instead.
2674    *
2675    * @return the Delay object created.
2676    */ public
createDelay()2677  Delay createDelay() {
2678     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_createDelay(swigCPtr);
2679     Delay ret = (cPtr == global::System.IntPtr.Zero) ? null : new Delay(cPtr, false);
2680     return ret;
2681   }
2682 
2683 
2684 /**
2685    * Sets the value of the 'annotation' subelement of this SBML object to a
2686    * copy of @p annotation.
2687    *
2688    * Any existing content of the 'annotation' subelement is discarded.
2689    * Unless you have taken steps to first copy and reconstitute any
2690    * existing annotations into the @p annotation that is about to be
2691    * assigned, it is likely that performing such wholesale replacement is
2692    * unfriendly towards other software applications whose annotations are
2693    * discarded.  An alternative may be to use appendAnnotation().
2694    *
2695    * @param annotation an XML structure that is to be used as the content
2696    * of the 'annotation' subelement of this object.
2697    *
2698    *
2699  * @return integer value indicating success/failure of the
2700  * function.  @if clike The value is drawn from the
2701  * enumeration #OperationReturnValues_t. @endif This particular
2702  * function only does one thing irrespective of user input or
2703  * object state, and thus will only return a single value:
2704  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2705    *
2706    * @see appendAnnotation(XMLNode annotation)
2707    */ public new
setAnnotation(XMLNode annotation)2708  int setAnnotation(XMLNode annotation) {
2709     int ret = libsbmlPINVOKE.Model_setAnnotation__SWIG_0(swigCPtr, XMLNode.getCPtr(annotation));
2710     return ret;
2711   }
2712 
2713 
2714 /**
2715    * Sets the value of the 'annotation' subelement of this SBML object to a
2716    * copy of @p annotation.
2717    *
2718    * Any existing content of the 'annotation' subelement is discarded.
2719    * Unless you have taken steps to first copy and reconstitute any
2720    * existing annotations into the @p annotation that is about to be
2721    * assigned, it is likely that performing such wholesale replacement is
2722    * unfriendly towards other software applications whose annotations are
2723    * discarded.  An alternative may be to use appendAnnotation().
2724    *
2725    * @param annotation an XML string that is to be used as the content
2726    * of the 'annotation' subelement of this object.
2727    *
2728    *
2729  * @return integer value indicating success/failure of the
2730  * function.  @if clike The value is drawn from the
2731  * enumeration #OperationReturnValues_t. @endif The possible values
2732  * returned by this function are:
2733  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2734    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
2735    *
2736    * @see appendAnnotation(string annotation)
2737    */ public new
setAnnotation(string annotation)2738  int setAnnotation(string annotation) {
2739     int ret = libsbmlPINVOKE.Model_setAnnotation__SWIG_1(swigCPtr, annotation);
2740     return ret;
2741   }
2742 
2743 
2744 /**
2745    * Appends annotation content to any existing content in the 'annotation'
2746    * subelement of this object.
2747    *
2748    * The content in @p annotation is copied.  Unlike setAnnotation(), this
2749    * method allows other annotations to be preserved when an application
2750    * adds its own data.
2751    *
2752    * @param annotation an XML structure that is to be copied and appended
2753    * to the content of the 'annotation' subelement of this object.
2754    *
2755    *
2756  * @return integer value indicating success/failure of the
2757  * function.  @if clike The value is drawn from the
2758  * enumeration #OperationReturnValues_t. @endif The possible values
2759  * returned by this function are:
2760  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2761    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
2762    *
2763    * @see setAnnotation(XMLNode annotation)
2764    */ public new
appendAnnotation(XMLNode annotation)2765  int appendAnnotation(XMLNode annotation) {
2766     int ret = libsbmlPINVOKE.Model_appendAnnotation__SWIG_0(swigCPtr, XMLNode.getCPtr(annotation));
2767     return ret;
2768   }
2769 
2770 
2771 /**
2772    * Appends annotation content to any existing content in the 'annotation'
2773    * subelement of this object.
2774    *
2775    * The content in @p annotation is copied.  Unlike setAnnotation(), this
2776    * method allows other annotations to be preserved when an application
2777    * adds its own data.
2778    *
2779    * @param annotation an XML string that is to be copied and appended
2780    * to the content of the 'annotation' subelement of this object.
2781    *
2782    *
2783  * @return integer value indicating success/failure of the
2784  * function.  @if clike The value is drawn from the
2785  * enumeration #OperationReturnValues_t. @endif The possible values
2786  * returned by this function are:
2787  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
2788    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
2789    *
2790    * @see setAnnotation(string annotation)
2791    */ public new
appendAnnotation(string annotation)2792  int appendAnnotation(string annotation) {
2793     int ret = libsbmlPINVOKE.Model_appendAnnotation__SWIG_1(swigCPtr, annotation);
2794     return ret;
2795   }
2796 
2797 
2798 /**
2799    * Get the ListOfFunctionDefinitions object in this Model.
2800    *
2801    * @return the list of FunctionDefinitions for this Model.
2802    */ public
getListOfFunctionDefinitions()2803  ListOfFunctionDefinitions getListOfFunctionDefinitions() {
2804     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfFunctionDefinitions__SWIG_0(swigCPtr);
2805     ListOfFunctionDefinitions ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfFunctionDefinitions(cPtr, false);
2806     return ret;
2807   }
2808 
2809 
2810 /**
2811    * Get the ListOfUnitDefinitions object in this Model.
2812    *
2813    * @return the list of UnitDefinitions for this Model.
2814    */ public
getListOfUnitDefinitions()2815  ListOfUnitDefinitions getListOfUnitDefinitions() {
2816     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfUnitDefinitions__SWIG_0(swigCPtr);
2817     ListOfUnitDefinitions ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfUnitDefinitions(cPtr, false);
2818     return ret;
2819   }
2820 
2821 
2822 /**
2823    * Get the ListOfCompartmentTypes object in this Model.
2824    *
2825    * @return the list of CompartmentTypes for this Model.
2826    *
2827    * @note The CompartmentType object class is only available in SBML
2828    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
2829    * Level&nbsp;1 nor Level&nbsp;3.
2830    */ public
getListOfCompartmentTypes()2831  ListOfCompartmentTypes getListOfCompartmentTypes() {
2832     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfCompartmentTypes__SWIG_0(swigCPtr);
2833     ListOfCompartmentTypes ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfCompartmentTypes(cPtr, false);
2834     return ret;
2835   }
2836 
2837 
2838 /**
2839    * Get the ListOfSpeciesTypes object in this Model.
2840    *
2841    * @return the list of SpeciesTypes for this Model.
2842    *
2843    * @note The SpeciesType object class is only available in SBML
2844    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
2845    * Level&nbsp;1 nor Level&nbsp;3.
2846    */ public
getListOfSpeciesTypes()2847  ListOfSpeciesTypes getListOfSpeciesTypes() {
2848     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfSpeciesTypes__SWIG_0(swigCPtr);
2849     ListOfSpeciesTypes ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfSpeciesTypes(cPtr, false);
2850     return ret;
2851   }
2852 
2853 
2854 /**
2855    * Get the ListOfCompartments object in this Model.
2856    *
2857    * @return the list of Compartments for this Model.
2858    */ public
getListOfCompartments()2859  ListOfCompartments getListOfCompartments() {
2860     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfCompartments__SWIG_0(swigCPtr);
2861     ListOfCompartments ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfCompartments(cPtr, false);
2862     return ret;
2863   }
2864 
2865 
2866 /**
2867    * Get the ListOfSpecies object in this Model.
2868    *
2869    * @return the list of Species for this Model.
2870    */ public
getListOfSpecies()2871  ListOfSpecies getListOfSpecies() {
2872     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfSpecies__SWIG_0(swigCPtr);
2873     ListOfSpecies ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfSpecies(cPtr, false);
2874     return ret;
2875   }
2876 
2877 
2878 /**
2879    * Get the ListOfParameters object in this Model.
2880    *
2881    * @return the list of Parameters for this Model.
2882    */ public
getListOfParameters()2883  ListOfParameters getListOfParameters() {
2884     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfParameters__SWIG_0(swigCPtr);
2885     ListOfParameters ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfParameters(cPtr, false);
2886     return ret;
2887   }
2888 
2889 
2890 /**
2891    * Get the ListOfInitialAssignments object in this Model.
2892    *
2893    * @return the list of InitialAssignments for this Model.
2894    */ public
getListOfInitialAssignments()2895  ListOfInitialAssignments getListOfInitialAssignments() {
2896     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfInitialAssignments__SWIG_0(swigCPtr);
2897     ListOfInitialAssignments ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfInitialAssignments(cPtr, false);
2898     return ret;
2899   }
2900 
2901 
2902 /**
2903    * Get the ListOfRules object in this Model.
2904    *
2905    * @return the list of Rules for this Model.
2906    */ public
getListOfRules()2907  ListOfRules getListOfRules() {
2908     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfRules__SWIG_0(swigCPtr);
2909     ListOfRules ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfRules(cPtr, false);
2910     return ret;
2911   }
2912 
2913 
2914 /**
2915    * Get the ListOfConstraints object in this Model.
2916    *
2917    * @return the list of Constraints for this Model.
2918    */ public
getListOfConstraints()2919  ListOfConstraints getListOfConstraints() {
2920     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfConstraints__SWIG_0(swigCPtr);
2921     ListOfConstraints ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfConstraints(cPtr, false);
2922     return ret;
2923   }
2924 
2925 
2926 /**
2927    * Get the ListOfReactions object in this Model.
2928    *
2929    * @return the list of Reactions for this Model.
2930    */ public
getListOfReactions()2931  ListOfReactions getListOfReactions() {
2932     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfReactions__SWIG_0(swigCPtr);
2933     ListOfReactions ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfReactions(cPtr, false);
2934     return ret;
2935   }
2936 
2937 
2938 /**
2939    * Get the ListOfEvents object in this Model.
2940    *
2941    * @return the list of Events for this Model.
2942    */ public
getListOfEvents()2943  ListOfEvents getListOfEvents() {
2944     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getListOfEvents__SWIG_0(swigCPtr);
2945     ListOfEvents ret = (cPtr == global::System.IntPtr.Zero) ? null : new ListOfEvents(cPtr, false);
2946     return ret;
2947   }
2948 
2949 
2950 /**
2951    * Get the nth FunctionDefinitions object in this Model.
2952    *
2953    * @param n the index of the object to return.
2954    *
2955    * @return the nth FunctionDefinition of this Model.
2956    * If the index @p n is invalid, @c null is returned.
2957    */ public
getFunctionDefinition(long n)2958  FunctionDefinition getFunctionDefinition(long n) {
2959     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getFunctionDefinition__SWIG_0(swigCPtr, n);
2960     FunctionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new FunctionDefinition(cPtr, false);
2961     return ret;
2962   }
2963 
2964 
2965 /**
2966    * Get a FunctionDefinition object based on its identifier.
2967    *
2968    * @param sid the identifier to search for.
2969    *
2970    * @return the FunctionDefinition in this Model with the identifier
2971    * @p sid or @c null if no such FunctionDefinition exists.
2972    */ public
getFunctionDefinition(string sid)2973  FunctionDefinition getFunctionDefinition(string sid) {
2974     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getFunctionDefinition__SWIG_2(swigCPtr, sid);
2975     FunctionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new FunctionDefinition(cPtr, false);
2976     return ret;
2977   }
2978 
2979 
2980 /**
2981    * Get the nth UnitDefinition object in this Model.
2982    *
2983    * @param n the index of the object to return.
2984    *
2985    * @return the nth UnitDefinition of this Model.
2986    * If the index @p n is invalid, @c null is returned.
2987    */ public
getUnitDefinition(long n)2988  UnitDefinition getUnitDefinition(long n) {
2989     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getUnitDefinition__SWIG_0(swigCPtr, n);
2990     UnitDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new UnitDefinition(cPtr, false);
2991     return ret;
2992   }
2993 
2994 
2995 /**
2996    * Get a UnitDefinition based on its identifier.
2997    *
2998    * @param sid the identifier to search for.
2999    *
3000    * @return the UnitDefinition in this Model with the identifier @p sid or
3001    * @c null if no such UnitDefinition exists.
3002    */ public
getUnitDefinition(string sid)3003  UnitDefinition getUnitDefinition(string sid) {
3004     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getUnitDefinition__SWIG_2(swigCPtr, sid);
3005     UnitDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new UnitDefinition(cPtr, false);
3006     return ret;
3007   }
3008 
3009 
3010 /**
3011    * Get the nth CompartmentType object in this Model.
3012    *
3013    * @param n the index of the object to return.
3014    *
3015    * @return the nth CompartmentType of this Model.
3016    * If the index @p n is invalid, @c null is returned.
3017    *
3018    * @note The CompartmentType object class is only available in SBML
3019    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
3020    * Level&nbsp;1 nor Level&nbsp;3.
3021    */ public
getCompartmentType(long n)3022  CompartmentType getCompartmentType(long n) {
3023     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getCompartmentType__SWIG_0(swigCPtr, n);
3024     CompartmentType ret = (cPtr == global::System.IntPtr.Zero) ? null : new CompartmentType(cPtr, false);
3025     return ret;
3026   }
3027 
3028 
3029 /**
3030    * Get a CompartmentType object based on its identifier.
3031    *
3032    * @param sid the identifier to search for.
3033    *
3034    * @return the CompartmentType in this Model with the identifier @p sid
3035    * or @c null if no such CompartmentType exists.
3036    *
3037    * @note The CompartmentType object class is only available in SBML
3038    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
3039    * Level&nbsp;1 nor Level&nbsp;3.
3040    */ public
getCompartmentType(string sid)3041  CompartmentType getCompartmentType(string sid) {
3042     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getCompartmentType__SWIG_2(swigCPtr, sid);
3043     CompartmentType ret = (cPtr == global::System.IntPtr.Zero) ? null : new CompartmentType(cPtr, false);
3044     return ret;
3045   }
3046 
3047 
3048 /**
3049    * Get the nth SpeciesType object in this Model.
3050    *
3051    * @param n the index of the object to return.
3052    *
3053    * @return the nth SpeciesType of this Model.
3054    * If the index @p n is invalid, @c null is returned.
3055    *
3056    * @note The SpeciesType object class is only available in SBML
3057    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
3058    * Level&nbsp;1 nor Level&nbsp;3.
3059    */ public
getSpeciesType(long n)3060  SpeciesType getSpeciesType(long n) {
3061     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getSpeciesType__SWIG_0(swigCPtr, n);
3062     SpeciesType ret = (cPtr == global::System.IntPtr.Zero) ? null : new SpeciesType(cPtr, false);
3063     return ret;
3064   }
3065 
3066 
3067 /**
3068    * Get a SpeciesType object based on its identifier.
3069    *
3070    * @param sid the identifier to search for.
3071    *
3072    * @return the SpeciesType in this Model with the identifier @p sid or
3073    * @c null if no such SpeciesType exists.
3074    *
3075    * @note The SpeciesType object class is only available in SBML
3076    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
3077    * Level&nbsp;1 nor Level&nbsp;3.
3078    */ public
getSpeciesType(string sid)3079  SpeciesType getSpeciesType(string sid) {
3080     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getSpeciesType__SWIG_2(swigCPtr, sid);
3081     SpeciesType ret = (cPtr == global::System.IntPtr.Zero) ? null : new SpeciesType(cPtr, false);
3082     return ret;
3083   }
3084 
3085 
3086 /**
3087    * Get the nth Compartment object in this Model.
3088    *
3089    * @param n the index of the object to return.
3090    *
3091    * @return the nth Compartment of this Model.
3092    * If the index @p n is invalid, @c null is returned.
3093    */ public
getCompartment(long n)3094  Compartment getCompartment(long n) {
3095     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getCompartment__SWIG_0(swigCPtr, n);
3096     Compartment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Compartment(cPtr, false);
3097     return ret;
3098   }
3099 
3100 
3101 /**
3102    * Get a Compartment object based on its identifier.
3103    *
3104    * @param sid the identifier to search for.
3105    *
3106    * @return the Compartment in this Model with the identifier @p sid or
3107    * @c null if no such Compartment exists.
3108    */ public
getCompartment(string sid)3109  Compartment getCompartment(string sid) {
3110     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getCompartment__SWIG_2(swigCPtr, sid);
3111     Compartment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Compartment(cPtr, false);
3112     return ret;
3113   }
3114 
3115 
3116 /**
3117    * Get the nth Species object in this Model.
3118    *
3119    * @param n the index of the object to return.
3120    *
3121    * @return the nth Species of this Model.
3122    * If the index @p n is invalid, @c null is returned.
3123    */ public
getSpecies(long n)3124  Species getSpecies(long n) {
3125     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getSpecies__SWIG_0(swigCPtr, n);
3126     Species ret = (cPtr == global::System.IntPtr.Zero) ? null : new Species(cPtr, false);
3127     return ret;
3128   }
3129 
3130 
3131 /**
3132    * Get a Species object based on its identifier.
3133    *
3134    * @param sid the identifier to search for.
3135    *
3136    * @return the Species in this Model with the identifier @p sid or @c null
3137    * if no such Species exists.
3138    */ public
getSpecies(string sid)3139  Species getSpecies(string sid) {
3140     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getSpecies__SWIG_2(swigCPtr, sid);
3141     Species ret = (cPtr == global::System.IntPtr.Zero) ? null : new Species(cPtr, false);
3142     return ret;
3143   }
3144 
3145 
3146 /**
3147    * Get the nth Parameter object in this Model.
3148    *
3149    * @param n the index of the object to return.
3150    *
3151    * @return the nth Parameter of this Model.
3152    * If the index @p n is invalid, @c null is returned.
3153    */ public
getParameter(long n)3154  Parameter getParameter(long n) {
3155     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getParameter__SWIG_0(swigCPtr, n);
3156     Parameter ret = (cPtr == global::System.IntPtr.Zero) ? null : new Parameter(cPtr, false);
3157     return ret;
3158   }
3159 
3160 
3161 /**
3162    * Get a Parameter object based on its identifier.
3163    *
3164    * @param sid the identifier to search for.
3165    *
3166    * @return the Parameter in this Model with the identifier @p sid or @c null
3167    * if no such Parameter exists.
3168    */ public
getParameter(string sid)3169  Parameter getParameter(string sid) {
3170     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getParameter__SWIG_2(swigCPtr, sid);
3171     Parameter ret = (cPtr == global::System.IntPtr.Zero) ? null : new Parameter(cPtr, false);
3172     return ret;
3173   }
3174 
3175 
3176 /**
3177    * Get the nth InitialAssignment object in this Model.
3178    *
3179    * @param n the index of the object to return.
3180    *
3181    * @return the nth InitialAssignment of this Model.
3182    * If the index @p n is invalid, @c null is returned.
3183    */ public
getInitialAssignment(long n)3184  InitialAssignment getInitialAssignment(long n) {
3185     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getInitialAssignment__SWIG_0(swigCPtr, n);
3186     InitialAssignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new InitialAssignment(cPtr, false);
3187     return ret;
3188   }
3189 
3190 
3191 /**
3192    * Get an InitialAssignment object based on the symbol to which it
3193    * assigns a value.
3194    *
3195    * @param symbol the symbol to search for.
3196    *
3197    * @return the InitialAssignment in this Model with the given 'symbol'
3198    * attribute value or @c null if no such InitialAssignment exists.
3199    */ public
getInitialAssignment(string symbol)3200  InitialAssignment getInitialAssignment(string symbol) {
3201     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getInitialAssignment__SWIG_2(swigCPtr, symbol);
3202     InitialAssignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new InitialAssignment(cPtr, false);
3203     return ret;
3204   }
3205 
3206 
3207 /**
3208    * Get an InitialAssignment object based on the symbol to which it
3209    * assigns a value.
3210    *
3211    * @param symbol the symbol to search for.
3212    *
3213    * @return the InitialAssignment in this Model with the given 'symbol'
3214    * attribute value or @c null if no such InitialAssignment exists.
3215    */ public
getInitialAssignmentBySymbol(string symbol)3216  InitialAssignment getInitialAssignmentBySymbol(string symbol) {
3217     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getInitialAssignmentBySymbol__SWIG_0(swigCPtr, symbol);
3218     InitialAssignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new InitialAssignment(cPtr, false);
3219     return ret;
3220   }
3221 
3222 
3223 /**
3224    * Get the nth Rule object in this Model.
3225    *
3226    * @param n the index of the object to return.
3227    *
3228    * @return the nth Rule of this Model.
3229    * If the index @p n is invalid, @c null is returned.
3230    */ public
getRule(long n)3231  Rule getRule(long n) {
3232         Rule ret = (Rule) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getRule__SWIG_0(swigCPtr, n), false);
3233 	return ret;
3234 }
3235 
3236 
3237 /**
3238    * Get a Rule object based on the variable to which it assigns a value.
3239    *
3240    * @param variable the variable to search for.
3241    *
3242    * @return the Rule in this Model with the given 'variable' attribute
3243    * value or @c null if no such Rule exists.
3244    */ public
getRule(string variable)3245  Rule getRule(string variable) {
3246         Rule ret = (Rule) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getRule__SWIG_2(swigCPtr, variable), false);
3247 	return ret;
3248 }
3249 
3250 
3251 /**
3252    * Get a Rule object based on the variable to which it assigns a value.
3253    *
3254    * @param variable the variable to search for.
3255    *
3256    * @return the Rule in this Model with the given 'variable' attribute
3257    * value or @c null if no such Rule exists.
3258    */ public
getRuleByVariable(string variable)3259  Rule getRuleByVariable(string variable) {
3260         Rule ret = (Rule) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getRuleByVariable__SWIG_0(swigCPtr, variable), false);
3261 	return ret;
3262 }
3263 
3264 
3265 /**
3266    * Get a Rule object based on the variable to which it assigns a value.
3267    *
3268    * @param variable the variable to search for.
3269    *
3270    * @return the Rule in this Model with the given 'variable' attribute
3271    * value or @c null if no such Rule exists.
3272    */ public
getAssignmentRule(string variable)3273  AssignmentRule getAssignmentRule(string variable) {
3274     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getAssignmentRule__SWIG_0(swigCPtr, variable);
3275     AssignmentRule ret = (cPtr == global::System.IntPtr.Zero) ? null : new AssignmentRule(cPtr, false);
3276     return ret;
3277   }
3278 
3279 
3280 /**
3281    * Get a Rule object based on the variable to which it assigns a value.
3282    *
3283    * @param variable the symbol to search for.
3284    *
3285    * @return the Rule in this Model with the given 'variable' attribute
3286    * value or @c null if no such Rule exists.
3287    */ public
getRateRule(string variable)3288  RateRule getRateRule(string variable) {
3289     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getRateRule__SWIG_0(swigCPtr, variable);
3290     RateRule ret = (cPtr == global::System.IntPtr.Zero) ? null : new RateRule(cPtr, false);
3291     return ret;
3292   }
3293 
3294 
3295 /**
3296    * Get a Rule object based on the variable to which it assigns a value.
3297    *
3298    * @param variable the variable to search for.
3299    *
3300    * @return the Rule in this Model with the given 'variable' attribute
3301    * value or @c null if no such Rule exists.
3302    */ public
getAssignmentRuleByVariable(string variable)3303  AssignmentRule getAssignmentRuleByVariable(string variable) {
3304     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getAssignmentRuleByVariable__SWIG_0(swigCPtr, variable);
3305     AssignmentRule ret = (cPtr == global::System.IntPtr.Zero) ? null : new AssignmentRule(cPtr, false);
3306     return ret;
3307   }
3308 
3309 
3310 /**
3311    * Get a Rule object based on the variable to which it assigns a value.
3312    *
3313    * @param variable the variable to search for.
3314    *
3315    * @return the Rule in this Model with the given 'variable' attribute
3316    * value or @c null if no such Rule exists.
3317    */ public
getRateRuleByVariable(string variable)3318  RateRule getRateRuleByVariable(string variable) {
3319     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getRateRuleByVariable__SWIG_0(swigCPtr, variable);
3320     RateRule ret = (cPtr == global::System.IntPtr.Zero) ? null : new RateRule(cPtr, false);
3321     return ret;
3322   }
3323 
3324 
3325 /**
3326    * Get the nth Constraint object in this Model.
3327    *
3328    * @param n the index of the object to return.
3329    *
3330    * @return the nth Constraint of this Model.
3331    * If the index @p n is invalid, @c null is returned.
3332    */ public
getConstraint(long n)3333  Constraint getConstraint(long n) {
3334     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getConstraint__SWIG_0(swigCPtr, n);
3335     Constraint ret = (cPtr == global::System.IntPtr.Zero) ? null : new Constraint(cPtr, false);
3336     return ret;
3337   }
3338 
3339 
3340 /**
3341    * Get the nth Reaction object in this Model.
3342    *
3343    * @param n the index of the object to return.
3344    *
3345    * @return the nth Reaction of this Model.
3346    * If the index @p n is invalid, @c null is returned.
3347    */ public
getReaction(long n)3348  Reaction getReaction(long n) {
3349 	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getReaction__SWIG_0(swigCPtr, n), false);
3350 	return ret;
3351 }
3352 
3353 
3354 /**
3355    * Get a Reaction object based on its identifier.
3356    *
3357    * @param sid the identifier to search for.
3358    *
3359    * @return the Reaction in this Model with the identifier @p sid or @c null
3360    * if no such Reaction exists.
3361    */ public
getReaction(string sid)3362  Reaction getReaction(string sid) {
3363 	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getReaction__SWIG_2(swigCPtr, sid), false);
3364 	return ret;
3365 }
3366 
3367 
3368 /**
3369    * Get a SpeciesReference object based on its identifier.
3370    *
3371    * @param sid the identifier to search for.
3372    *
3373    * @return the SpeciesReference in this Model with the identifier @p sid or @c null
3374    * if no such SpeciesReference exists.
3375    */ public
getSpeciesReference(string sid)3376  SpeciesReference getSpeciesReference(string sid) {
3377 	SpeciesReference ret
3378 	    = (SpeciesReference) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getSpeciesReference__SWIG_0(swigCPtr, sid), false);
3379 	return ret;
3380 }
3381 
3382 
3383 /**
3384    * Get a ModifierSpeciesReference object based on its identifier.
3385    *
3386    * @param sid the identifier to search for.
3387    *
3388    * @return the ModifierSpeciesReference in this Model with the
3389    * identifier @p sid or @c null
3390    * if no such ModifierSpeciesReference exists.
3391    */ public
getModifierSpeciesReference(string sid)3392  ModifierSpeciesReference getModifierSpeciesReference(string sid) {
3393     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getModifierSpeciesReference__SWIG_0(swigCPtr, sid);
3394     ModifierSpeciesReference ret = (cPtr == global::System.IntPtr.Zero) ? null : new ModifierSpeciesReference(cPtr, false);
3395     return ret;
3396   }
3397 
3398 
3399 /**
3400    * Get the nth Event object in this Model.
3401    *
3402    * @param n the index of the object to return.
3403    *
3404    * @return the nth Event of this Model.
3405    * If the index @p n is invalid, @c null is returned.
3406    */ public
getEvent(long n)3407  Event getEvent(long n) {
3408     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getEvent__SWIG_0(swigCPtr, n);
3409     Event ret = (cPtr == global::System.IntPtr.Zero) ? null : new Event(cPtr, false);
3410     return ret;
3411   }
3412 
3413 
3414 /**
3415    * Get an Event object based on its identifier.
3416    *
3417    * @param sid the identifier to search for.
3418    *
3419    * @return the Event in this Model with the identifier @p sid or @c null if
3420    * no such Event exists.
3421    */ public
getEvent(string sid)3422  Event getEvent(string sid) {
3423     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getEvent__SWIG_2(swigCPtr, sid);
3424     Event ret = (cPtr == global::System.IntPtr.Zero) ? null : new Event(cPtr, false);
3425     return ret;
3426   }
3427 
3428 
3429 /**
3430    * Get the number of FunctionDefinition objects in this Model.
3431    *
3432    * @return the number of FunctionDefinitions in this Model.
3433    */ public
getNumFunctionDefinitions()3434  long getNumFunctionDefinitions() { return (long)libsbmlPINVOKE.Model_getNumFunctionDefinitions(swigCPtr); }
3435 
3436 
3437 /**
3438    * Get the number of UnitDefinition objects in this Model.
3439    *
3440    * @return the number of UnitDefinitions in this Model.
3441    */ public
getNumUnitDefinitions()3442  long getNumUnitDefinitions() { return (long)libsbmlPINVOKE.Model_getNumUnitDefinitions(swigCPtr); }
3443 
3444 
3445 /**
3446    * Get the number of CompartmentType objects in this Model.
3447    *
3448    * @return the number of CompartmentTypes in this Model.
3449    *
3450    * @note The CompartmentType object class is only available in SBML
3451    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
3452    * Level&nbsp;1 nor Level&nbsp;3.
3453    */ public
getNumCompartmentTypes()3454  long getNumCompartmentTypes() { return (long)libsbmlPINVOKE.Model_getNumCompartmentTypes(swigCPtr); }
3455 
3456 
3457 /**
3458    * Get the number of SpeciesType objects in this Model.
3459    *
3460    * @return the number of SpeciesTypes in this Model.
3461    *
3462    * @note The SpeciesType object class is only available in SBML
3463    * Level&nbsp;2 Versions&nbsp;2&ndash;4.  It is not available in
3464    * Level&nbsp;1 nor Level&nbsp;3.
3465    */ public
getNumSpeciesTypes()3466  long getNumSpeciesTypes() { return (long)libsbmlPINVOKE.Model_getNumSpeciesTypes(swigCPtr); }
3467 
3468 
3469 /**
3470    * Get the number of Compartment objects in this Model.
3471    *
3472    * @return the number of Compartments in this Model.
3473    */ public
getNumCompartments()3474  long getNumCompartments() { return (long)libsbmlPINVOKE.Model_getNumCompartments(swigCPtr); }
3475 
3476 
3477 /**
3478    * Get the number of Species objects in this Model.
3479    *
3480    * @return the number of Species in this Model.
3481    */ public
getNumSpecies()3482  long getNumSpecies() { return (long)libsbmlPINVOKE.Model_getNumSpecies(swigCPtr); }
3483 
3484 
3485 /**
3486    * Get the number of Species in this Model having their
3487    * 'boundaryCondition' attribute value set to @c true.
3488    *
3489    * @return the number of Species in this Model with boundaryCondition set
3490    * to true.
3491    */ public
getNumSpeciesWithBoundaryCondition()3492  long getNumSpeciesWithBoundaryCondition() { return (long)libsbmlPINVOKE.Model_getNumSpeciesWithBoundaryCondition(swigCPtr); }
3493 
3494 
3495 /**
3496    * Get the number of Parameter objects in this Model.
3497    *
3498    * @return the number of Parameters in this Model.  Parameters defined in
3499    * KineticLaws are not included.
3500    */ public
getNumParameters()3501  long getNumParameters() { return (long)libsbmlPINVOKE.Model_getNumParameters(swigCPtr); }
3502 
3503 
3504 /**
3505    * Get the number of InitialAssignment objects in this Model.
3506    *
3507    * @return the number of InitialAssignments in this Model.
3508    */ public
getNumInitialAssignments()3509  long getNumInitialAssignments() { return (long)libsbmlPINVOKE.Model_getNumInitialAssignments(swigCPtr); }
3510 
3511 
3512 /**
3513    * Get the number of Rule objects in this Model.
3514    *
3515    * @return the number of Rules in this Model.
3516    */ public
getNumRules()3517  long getNumRules() { return (long)libsbmlPINVOKE.Model_getNumRules(swigCPtr); }
3518 
3519 
3520 /**
3521    * Get the number of Constraint objects in this Model.
3522    *
3523    * @return the number of Constraints in this Model.
3524    */ public
getNumConstraints()3525  long getNumConstraints() { return (long)libsbmlPINVOKE.Model_getNumConstraints(swigCPtr); }
3526 
3527 
3528 /**
3529    * Get the number of Reaction objects in this Model.
3530    *
3531    * @return the number of Reactions in this Model.
3532    */ public
getNumReactions()3533  long getNumReactions() { return (long)libsbmlPINVOKE.Model_getNumReactions(swigCPtr); }
3534 
3535 
3536 /**
3537    * Get the number of Event objects in this Model.
3538    *
3539    * @return the number of Events in this Model.
3540    */ public
getNumEvents()3541  long getNumEvents() { return (long)libsbmlPINVOKE.Model_getNumEvents(swigCPtr); }
3542 
3543 
3544 /**
3545    * Remove this Model from its parent SBMLDocument object.
3546    *
3547    * This works by finding this Model's parent SBMLDocument and then calling
3548    * <code>setModel(null)</code> on it, indirectly deleting itself.
3549    * Overridden from the SBase function since the parent is not a ListOf.
3550    *
3551    *
3552  * @return integer value indicating success/failure of the
3553  * function.  @if clike The value is drawn from the
3554  * enumeration #OperationReturnValues_t. @endif The possible values
3555  * returned by this function are:
3556  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
3557    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
3558    */ public new
removeFromParentAndDelete()3559  int removeFromParentAndDelete() {
3560     int ret = libsbmlPINVOKE.Model_removeFromParentAndDelete(swigCPtr);
3561     return ret;
3562   }
3563 
3564 
3565 /** */ /* libsbml-internal */ public new
renameAllIds(IdentifierTransformer idTransformer, ElementFilter filter)3566  int renameAllIds(IdentifierTransformer idTransformer, ElementFilter filter) {
3567     int ret = libsbmlPINVOKE.Model_renameAllIds__SWIG_0(swigCPtr, IdentifierTransformer.getCPtr(idTransformer), ElementFilter.getCPtr(filter));
3568     return ret;
3569   }
3570 
3571 
3572 /** */ /* libsbml-internal */ public new
renameAllIds(IdentifierTransformer idTransformer)3573  int renameAllIds(IdentifierTransformer idTransformer) {
3574     int ret = libsbmlPINVOKE.Model_renameAllIds__SWIG_1(swigCPtr, IdentifierTransformer.getCPtr(idTransformer));
3575     return ret;
3576   }
3577 
3578 
3579 /**
3580    *
3581  * Replaces all uses of a given @c SIdRef type attribute value with another
3582  * value.
3583  *
3584  *
3585  *
3586 
3587  * In SBML, object identifiers are of a data type called <code>SId</code>.
3588  * In SBML Level&nbsp;3, an explicit data type called <code>SIdRef</code> was
3589  * introduced for attribute values that refer to <code>SId</code> values; in
3590  * previous Levels of SBML, this data type did not exist and attributes were
3591  * simply described to as 'referring to an identifier', but the effective
3592  * data type was the same as <code>SIdRef</code> in Level&nbsp;3.  These and
3593  * other methods of libSBML refer to the type <code>SIdRef</code> for all
3594  * Levels of SBML, even if the corresponding SBML specification did not
3595  * explicitly name the data type.
3596  *
3597  *
3598  *
3599  * This method works by looking at all attributes and (if appropriate)
3600  * mathematical formulas in MathML content, comparing the referenced
3601  * identifiers to the value of @p oldid.  If any matches are found, the
3602  * matching values are replaced with @p newid.  The method does @em not
3603  * descend into child elements.
3604  *
3605  * @param oldid the old identifier.
3606  * @param newid the new identifier.
3607  *
3608  *
3609    */ public new
renameSIdRefs(string oldid, string newid)3610  void renameSIdRefs(string oldid, string newid) {
3611     libsbmlPINVOKE.Model_renameSIdRefs(swigCPtr, oldid, newid);
3612   }
3613 
3614 
3615 /**
3616    *
3617  * Replaces all uses of a given @c UnitSIdRef type attribute value with
3618  * another value.
3619  *
3620  *
3621  *
3622  * In SBML, unit definitions have identifiers of type <code>UnitSId</code>.  In
3623  * SBML Level&nbsp;3, an explicit data type called <code>UnitSIdRef</code> was
3624  * introduced for attribute values that refer to <code>UnitSId</code> values; in
3625  * previous Levels of SBML, this data type did not exist and attributes were
3626  * simply described to as 'referring to a unit identifier', but the effective
3627  * data type was the same as <code>UnitSIdRef</code> in Level&nbsp;3.  These and
3628  * other methods of libSBML refer to the type <code>UnitSIdRef</code> for all
3629  * Levels of SBML, even if the corresponding SBML specification did not
3630  * explicitly name the data type.
3631  *
3632  *
3633  *
3634  * This method works by looking at all unit identifier attribute values
3635  * (including, if appropriate, inside mathematical formulas), comparing the
3636  * referenced unit identifiers to the value of @p oldid.  If any matches
3637  * are found, the matching values are replaced with @p newid.  The method
3638  * does @em not descend into child elements.
3639  *
3640  * @param oldid the old identifier.
3641  * @param newid the new identifier.
3642  *
3643  *
3644    */ public new
renameUnitSIdRefs(string oldid, string newid)3645  void renameUnitSIdRefs(string oldid, string newid) {
3646     libsbmlPINVOKE.Model_renameUnitSIdRefs(swigCPtr, oldid, newid);
3647   }
3648 
3649 
3650 /** */ /* libsbml-internal */ public
convertL1ToL2()3651  void convertL1ToL2() {
3652     libsbmlPINVOKE.Model_convertL1ToL2(swigCPtr);
3653   }
3654 
3655 
3656 /** */ /* libsbml-internal */ public
convertL1ToL3(bool addDefaultUnits)3657  void convertL1ToL3(bool addDefaultUnits) {
3658     libsbmlPINVOKE.Model_convertL1ToL3__SWIG_0(swigCPtr, addDefaultUnits);
3659   }
3660 
3661 
3662 /** */ /* libsbml-internal */ public
convertL1ToL3()3663  void convertL1ToL3() {
3664     libsbmlPINVOKE.Model_convertL1ToL3__SWIG_1(swigCPtr);
3665   }
3666 
3667 
3668 /** */ /* libsbml-internal */ public
convertL2ToL3(bool strict, bool addDefaultUnits)3669  void convertL2ToL3(bool strict, bool addDefaultUnits) {
3670     libsbmlPINVOKE.Model_convertL2ToL3__SWIG_0(swigCPtr, strict, addDefaultUnits);
3671   }
3672 
3673 
3674 /** */ /* libsbml-internal */ public
convertL2ToL3(bool strict)3675  void convertL2ToL3(bool strict) {
3676     libsbmlPINVOKE.Model_convertL2ToL3__SWIG_1(swigCPtr, strict);
3677   }
3678 
3679 
3680 /** */ /* libsbml-internal */ public
convertL2ToL3()3681  void convertL2ToL3() {
3682     libsbmlPINVOKE.Model_convertL2ToL3__SWIG_2(swigCPtr);
3683   }
3684 
3685 
3686 /** */ /* libsbml-internal */ public
convertL2ToL1(bool strict)3687  void convertL2ToL1(bool strict) {
3688     libsbmlPINVOKE.Model_convertL2ToL1__SWIG_0(swigCPtr, strict);
3689   }
3690 
3691 
3692 /** */ /* libsbml-internal */ public
convertL2ToL1()3693  void convertL2ToL1() {
3694     libsbmlPINVOKE.Model_convertL2ToL1__SWIG_1(swigCPtr);
3695   }
3696 
3697 
3698 /** */ /* libsbml-internal */ public
convertL3ToL1(bool strict)3699  void convertL3ToL1(bool strict) {
3700     libsbmlPINVOKE.Model_convertL3ToL1__SWIG_0(swigCPtr, strict);
3701   }
3702 
3703 
3704 /** */ /* libsbml-internal */ public
convertL3ToL1()3705  void convertL3ToL1() {
3706     libsbmlPINVOKE.Model_convertL3ToL1__SWIG_1(swigCPtr);
3707   }
3708 
3709 
3710 /** */ /* libsbml-internal */ public
convertL3ToL2(bool strict)3711  void convertL3ToL2(bool strict) {
3712     libsbmlPINVOKE.Model_convertL3ToL2__SWIG_0(swigCPtr, strict);
3713   }
3714 
3715 
3716 /** */ /* libsbml-internal */ public
convertL3ToL2()3717  void convertL3ToL2() {
3718     libsbmlPINVOKE.Model_convertL3ToL2__SWIG_1(swigCPtr);
3719   }
3720 
3721 
3722 /** */ /* libsbml-internal */ public
convertFromL3V2(bool strict)3723  void convertFromL3V2(bool strict) {
3724     libsbmlPINVOKE.Model_convertFromL3V2__SWIG_0(swigCPtr, strict);
3725   }
3726 
3727 
3728 /** */ /* libsbml-internal */ public
convertFromL3V2()3729  void convertFromL3V2() {
3730     libsbmlPINVOKE.Model_convertFromL3V2__SWIG_1(swigCPtr);
3731   }
3732 
3733 
3734 /** */ /* libsbml-internal */ public
dealWithFast()3735  void dealWithFast() {
3736     libsbmlPINVOKE.Model_dealWithFast(swigCPtr);
3737   }
3738 
3739 
3740 /** */ /* libsbml-internal */ public
dealWithL3Fast(long targetVersion)3741  void dealWithL3Fast(long targetVersion) {
3742     libsbmlPINVOKE.Model_dealWithL3Fast(swigCPtr, targetVersion);
3743   }
3744 
3745 
3746 /** */ /* libsbml-internal */ public
addModifiers()3747  void addModifiers() {
3748     libsbmlPINVOKE.Model_addModifiers(swigCPtr);
3749   }
3750 
3751 
3752 /** */ /* libsbml-internal */ public
addConstantAttribute()3753  void addConstantAttribute() {
3754     libsbmlPINVOKE.Model_addConstantAttribute(swigCPtr);
3755   }
3756 
3757 
3758 /** */ /* libsbml-internal */ public
setSpatialDimensions(double dims)3759  void setSpatialDimensions(double dims) {
3760     libsbmlPINVOKE.Model_setSpatialDimensions__SWIG_0(swigCPtr, dims);
3761   }
3762 
3763 
3764 /** */ /* libsbml-internal */ public
setSpatialDimensions()3765  void setSpatialDimensions() {
3766     libsbmlPINVOKE.Model_setSpatialDimensions__SWIG_1(swigCPtr);
3767   }
3768 
3769 
3770 /** */ /* libsbml-internal */ public
addDefinitionsForDefaultUnits()3771  void addDefinitionsForDefaultUnits() {
3772     libsbmlPINVOKE.Model_addDefinitionsForDefaultUnits(swigCPtr);
3773   }
3774 
3775 
3776 /** */ /* libsbml-internal */ public
dealWithDefaultValues()3777  void dealWithDefaultValues() {
3778     libsbmlPINVOKE.Model_dealWithDefaultValues(swigCPtr);
3779   }
3780 
3781 
3782 /** */ /* libsbml-internal */ public
convertParametersToLocals(long level, long version)3783  void convertParametersToLocals(long level, long version) {
3784     libsbmlPINVOKE.Model_convertParametersToLocals(swigCPtr, level, version);
3785   }
3786 
3787 
3788 /** */ /* libsbml-internal */ public
setSpeciesReferenceConstantValueAndStoichiometry()3789  void setSpeciesReferenceConstantValueAndStoichiometry() {
3790     libsbmlPINVOKE.Model_setSpeciesReferenceConstantValueAndStoichiometry(swigCPtr);
3791   }
3792 
3793 
3794 /** */ /* libsbml-internal */ public
removeParameterRuleUnits(bool strict)3795  void removeParameterRuleUnits(bool strict) {
3796     libsbmlPINVOKE.Model_removeParameterRuleUnits(swigCPtr, strict);
3797   }
3798 
3799 
3800 /** */ /* libsbml-internal */ public
convertStoichiometryMath()3801  void convertStoichiometryMath() {
3802     libsbmlPINVOKE.Model_convertStoichiometryMath(swigCPtr);
3803   }
3804 
3805 
3806 /** */ /* libsbml-internal */ public
assignRequiredValues()3807  void assignRequiredValues() {
3808     libsbmlPINVOKE.Model_assignRequiredValues(swigCPtr);
3809   }
3810 
3811 
3812 /** */ /* libsbml-internal */ public
dealWithModelUnits(bool strict)3813  void dealWithModelUnits(bool strict) {
3814     libsbmlPINVOKE.Model_dealWithModelUnits__SWIG_0(swigCPtr, strict);
3815   }
3816 
3817 
3818 /** */ /* libsbml-internal */ public
dealWithModelUnits()3819  void dealWithModelUnits() {
3820     libsbmlPINVOKE.Model_dealWithModelUnits__SWIG_1(swigCPtr);
3821   }
3822 
3823 
3824 /** */ /* libsbml-internal */ public
dealWithStoichiometry()3825  void dealWithStoichiometry() {
3826     libsbmlPINVOKE.Model_dealWithStoichiometry(swigCPtr);
3827   }
3828 
3829 
3830 /** */ /* libsbml-internal */ public
dealWithEvents(bool strict)3831  void dealWithEvents(bool strict) {
3832     libsbmlPINVOKE.Model_dealWithEvents(swigCPtr, strict);
3833   }
3834 
3835 
3836 /** */ /* libsbml-internal */ public
removeSpeciesTypes()3837  void removeSpeciesTypes() {
3838     libsbmlPINVOKE.Model_removeSpeciesTypes(swigCPtr);
3839   }
3840 
3841 
3842 /** */ /* libsbml-internal */ public
removeCompartmentTypes()3843  void removeCompartmentTypes() {
3844     libsbmlPINVOKE.Model_removeCompartmentTypes(swigCPtr);
3845   }
3846 
connectToChild()3847   public override void connectToChild() {
3848     libsbmlPINVOKE.Model_connectToChild(swigCPtr);
3849   }
3850 
3851 
3852 /**
3853    * Returns the libSBML type code for this %SBML object.
3854    *
3855    *
3856  *
3857  * LibSBML attaches an identifying code to every kind of SBML object.  These
3858  * are integer constants known as <em>SBML type codes</em>.  The names of all
3859  * the codes begin with the characters <code>SBML_</code>.
3860  * @if clike The set of possible type codes for core elements is defined in
3861  * the enumeration #SBMLTypeCode_t, and in addition, libSBML plug-ins for
3862  * SBML Level&nbsp;3 packages define their own extra enumerations of type
3863  * codes (e.g., #SBMLLayoutTypeCode_t for the Level&nbsp;3 Layout
3864  * package).@endif@if java In the Java language interface for libSBML, the
3865  * type codes are defined as static integer constants in the interface class
3866  * {@link libsbmlConstants}.  @endif@if python In the Python language
3867  * interface for libSBML, the type codes are defined as static integer
3868  * constants in the interface class @link libsbml@endlink.@endif@if csharp In
3869  * the C# language interface for libSBML, the type codes are defined as
3870  * static integer constants in the interface class
3871  * @link libsbmlcs.libsbml@endlink.@endif  Note that different Level&nbsp;3
3872  * package plug-ins may use overlapping type codes; to identify the package
3873  * to which a given object belongs, call the
3874  * <code>@if conly SBase_getPackageName()
3875  * @else SBase::getPackageName()
3876  * @endif</code>
3877  * method on the object.
3878  *
3879  * The exception to this is lists:  all SBML-style list elements have the type
3880  * @link libsbml#SBML_LIST_OF SBML_LIST_OF@endlink, regardless of what package they
3881  * are from.
3882  *
3883  *
3884    *
3885    * @return the SBML type code for this object:
3886    * @link libsbml#SBML_MODEL SBML_MODEL@endlink (default).
3887    *
3888    *
3889  * @warning <span class='warning'>The specific integer values of the possible
3890  * type codes may be reused by different libSBML plug-ins for SBML Level&nbsp;3.
3891  * packages,  To fully identify the correct code, <strong>it is necessary to
3892  * invoke both getPackageName() and getTypeCode()</strong> (or
3893  * ListOf::getItemTypeCode()).</span>
3894  *
3895  *
3896    *
3897    * @see getElementName()
3898    * @see getPackageName()
3899    */ public new
getTypeCode()3900  int getTypeCode() {
3901     int ret = libsbmlPINVOKE.Model_getTypeCode(swigCPtr);
3902     return ret;
3903   }
3904 
3905 
3906 /**
3907    * Returns the XML element name of this object, which for Model, is
3908    * always @c 'model'.
3909    *
3910    * @return the name of this element, i.e., @c 'model'.
3911    */ public new
getElementName()3912  string getElementName() {
3913     string ret = libsbmlPINVOKE.Model_getElementName(swigCPtr);
3914     return ret;
3915   }
3916 
3917 
3918 /**
3919    * Populates the internal list of derived units for this Model object.
3920    *
3921    * This method tells libSBML to (re)calculate all units for all components
3922    * of the enclosing Model object.  The result is stored in an internal list
3923    * of unit data.  Users can access the resulting data by calling the method
3924    * SBase::getDerivedUnitDefinition() available on most objects.  (The name
3925    * 'formula units data' is drawn from the name of the internal objects
3926    * libSBML uses to store the data; note that these internal objects are not
3927    * exposed to callers, because callers can interact with the results using
3928    * the ordinary SBML unit objects.)
3929    *
3930    * This method is used by libSBML itself in the validator concerned with
3931    * unit consistency.  The unit consistency validator (like all other
3932    * validators in libSBML) is invoked by using
3933    * SBMLDocument::checkConsistency(), with the consistency checks for the
3934    * category @link libsbml#LIBSBML_CAT_UNITS_CONSISTENCY LIBSBML_CAT_UNITS_CONSISTENCY@endlink turned on.  The method
3935    * populateListFormulaUnitsData() does not need to be called prior to
3936    * invoking the validator if unit consistency checking has not been turned
3937    * off.  This method is only provided for cases when callers have a special
3938    * need to force the unit data to be recalculated.  For instance, during
3939    * construction of a model, a caller may want to interrogate libSBML's
3940    * inferred units without invoking full-blown model validation; this is a
3941    * scenario in which calling populateListFormulaUnitsData() may be useful.
3942    *
3943    * @warning Computing and inferring units is a time-consuming operation.
3944    * Callers may want to call isPopulatedListFormulaUnitsData() to determine
3945    * whether the units may already have been computed, to save themselves the
3946    * need of invoking unit inference unnecessarily.
3947    *
3948    * @see isPopulatedListFormulaUnitsData()
3949    */ public
populateListFormulaUnitsData()3950  void populateListFormulaUnitsData() {
3951     libsbmlPINVOKE.Model_populateListFormulaUnitsData(swigCPtr);
3952   }
3953 
3954 
3955 /**
3956    * Predicate returning @c true if libSBML has derived units for the
3957    * components of this model.
3958    *
3959    * LibSBML can infer the units of measurement associated with different
3960    * elements of a model.  When libSBML does that, it builds a complex
3961    * internal structure during a resource-intensive operation.  This is done
3962    * automatically only when callers invoke validation (via
3963    * SBMLDocument::checkConsistency()) and have not turned off the unit
3964    * validation option.
3965    *
3966    * Callers can force units to be recalculated by calling
3967    * populateListFormulaUnitsData().  To avoid calling that method
3968    * unnecessarily, calling programs may first want to invoke this method
3969    * (isPopulatedListFormulaUnitsData()) to determine whether it is even
3970    * necessary.
3971    *
3972    * @return @c true if the units have already been computed, @c false
3973    * otherwise.
3974    */ public
isPopulatedListFormulaUnitsData()3975  bool isPopulatedListFormulaUnitsData() {
3976     bool ret = libsbmlPINVOKE.Model_isPopulatedListFormulaUnitsData(swigCPtr);
3977     return ret;
3978   }
3979 
3980 
3981 /** */ /* libsbml-internal */ public
getFormulaUnitsDataForVariable(string sid)3982  SWIGTYPE_p_FormulaUnitsData getFormulaUnitsDataForVariable(string sid) {
3983     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getFormulaUnitsDataForVariable(swigCPtr, sid);
3984     SWIGTYPE_p_FormulaUnitsData ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_FormulaUnitsData(cPtr, false);
3985     return ret;
3986   }
3987 
3988 
3989 /** */ /* libsbml-internal */ public
getFormulaUnitsDataForAssignment(string sid)3990  SWIGTYPE_p_FormulaUnitsData getFormulaUnitsDataForAssignment(string sid) {
3991     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_getFormulaUnitsDataForAssignment(swigCPtr, sid);
3992     SWIGTYPE_p_FormulaUnitsData ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_FormulaUnitsData(cPtr, false);
3993     return ret;
3994   }
3995 
3996 
3997 /**
3998    * Populates the internal list of the identifiers of all elements within this Model object.
3999    *
4000    * This method tells libSBML to retrieve the identifiers of all elements
4001    * of the enclosing Model object.  The result is stored in an internal list
4002    * of ids.  Users can access the resulting data by calling the method
4003    * getAllElementIdList().
4004    *
4005    * @warning Retrieving all elements within a model is a time-consuming operation.
4006    * Callers may want to call isPopulatedAllElementIdList() to determine
4007    * whether the id list may already have been populated.
4008    *
4009    * @see isPopulatedAllElementIdList()
4010    */ public
populateAllElementIdList()4011  void populateAllElementIdList() {
4012     libsbmlPINVOKE.Model_populateAllElementIdList(swigCPtr);
4013   }
4014 
4015 
4016 /**
4017    * Predicate returning @c true if libSBML has a list of the ids of all
4018    * components of this model.
4019    *
4020    * @return @c true if the id list has already been populated, @c false
4021    * otherwise.
4022    */ public
isPopulatedAllElementIdList()4023  bool isPopulatedAllElementIdList() {
4024     bool ret = libsbmlPINVOKE.Model_isPopulatedAllElementIdList(swigCPtr);
4025     return ret;
4026   }
4027 
4028 
4029 /**
4030    * Returns the internal list of the identifiers of all elements within this Model object.
4031    *
4032    * @return an IdList of all the identifiers in the model.
4033    *
4034    * @see populateAllElementIdList()
4035    * @see isPopulatedAllElementIdList()
4036    */ public
getAllElementIdList()4037  IdList getAllElementIdList() {
4038     IdList ret = new IdList(libsbmlPINVOKE.Model_getAllElementIdList(swigCPtr), true);
4039     return ret;
4040   }
4041 
4042 
4043 /**
4044    * Clears the internal list of the identifiers of all elements within this Model object.
4045    *
4046    * @see populateAllElementIdList()
4047    * @see isPopulatedAllElementIdList()
4048    */ public
clearAllElementIdList()4049  void clearAllElementIdList() {
4050     libsbmlPINVOKE.Model_clearAllElementIdList(swigCPtr);
4051   }
4052 
4053 
4054 /**
4055    * Populates the internal list of the metaids of all elements within this Model object.
4056    *
4057    * This method tells libSBML to retrieve the identifiers of all elements
4058    * of the enclosing Model object.  The result is stored in an internal list
4059    * of metaids.  Users can access the resulting data by calling the method
4060    * getAllElementMetaIdList().
4061    *
4062    * @warning Retrieving all elements within a model is a time-consuming operation.
4063    * Callers may want to call isPopulatedAllElementMetaIdList() to determine
4064    * whether the metaid list may already have been populated.
4065    *
4066    * @see isPopulatedAllElementMetaIdList()
4067    */ public
populateAllElementMetaIdList()4068  void populateAllElementMetaIdList() {
4069     libsbmlPINVOKE.Model_populateAllElementMetaIdList(swigCPtr);
4070   }
4071 
4072 
4073 /**
4074    * Predicate returning @c true if libSBML has a list of the metaids of all
4075    * components of this model.
4076    *
4077    * @return @c true if the metaid list has already been populated, @c false
4078    * otherwise.
4079    */ public
isPopulatedAllElementMetaIdList()4080  bool isPopulatedAllElementMetaIdList() {
4081     bool ret = libsbmlPINVOKE.Model_isPopulatedAllElementMetaIdList(swigCPtr);
4082     return ret;
4083   }
4084 
4085 
4086 /**
4087    * Returns the internal list of the metaids of all elements within this Model object.
4088    *
4089    * @return an IdList of all the metaids in the model.
4090    *
4091    * @see populateAllElementMetaIdList()
4092    * @see isPopulatedAllElementMetaIdList()
4093    */ public
getAllElementMetaIdList()4094  IdList getAllElementMetaIdList() {
4095     IdList ret = new IdList(libsbmlPINVOKE.Model_getAllElementMetaIdList(swigCPtr), true);
4096     return ret;
4097   }
4098 
4099 
4100 /**
4101    * Clears the internal list of the metaids of all elements within this Model object.
4102    *
4103    * @see populateAllElementMetaIdList()
4104    * @see isPopulatedAllElementMetaIdList()
4105    */ public
clearAllElementMetaIdList()4106  void clearAllElementMetaIdList() {
4107     libsbmlPINVOKE.Model_clearAllElementMetaIdList(swigCPtr);
4108   }
4109 
4110 
4111 /**
4112    * Predicate returning @c true if all the required elements for this Model
4113    * object have been set.
4114    *
4115    * @return a boolean value indicating whether all the required
4116    * elements for this object have been defined.
4117    */ public new
hasRequiredElements()4118  bool hasRequiredElements() {
4119     bool ret = libsbmlPINVOKE.Model_hasRequiredElements(swigCPtr);
4120     return ret;
4121   }
4122 
4123 
4124 /**
4125    * Removes the nth FunctionDefinition object from this Model object and
4126    * returns a pointer to it.
4127    *
4128    * The caller owns the returned object and is responsible for deleting it.
4129    *
4130    * @param n the index of the FunctionDefinition object to remove.
4131    *
4132    * @return the FunctionDefinition object removed, or @c null if the given
4133    * index is out of range.
4134    *
4135    */ public
removeFunctionDefinition(long n)4136  FunctionDefinition removeFunctionDefinition(long n) {
4137     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeFunctionDefinition__SWIG_0(swigCPtr, n);
4138     FunctionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new FunctionDefinition(cPtr, true);
4139     return ret;
4140   }
4141 
4142 
4143 /**
4144    * Removes the FunctionDefinition object with the given identifier from this Model
4145    * object and returns a pointer to it.
4146    *
4147    * The caller owns the returned object and is responsible for deleting it.
4148    *
4149    * @param sid the identifier of the FunctionDefinition object to remove.
4150    *
4151    * @return the FunctionDefinition object removed, or @c null if no
4152    * FunctionDefinition object with the identifier exists in this Model
4153    * object.
4154    */ public
removeFunctionDefinition(string sid)4155  FunctionDefinition removeFunctionDefinition(string sid) {
4156     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeFunctionDefinition__SWIG_1(swigCPtr, sid);
4157     FunctionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new FunctionDefinition(cPtr, true);
4158     return ret;
4159   }
4160 
4161 
4162 /**
4163    * Removes the nth UnitDefinition object from this Model object and
4164    * returns a pointer to it.
4165    *
4166    * The caller owns the returned object and is responsible for deleting it.
4167    *
4168    * @param n the index of the UnitDefinition object to remove.
4169    *
4170    * @return the UnitDefinition object removed., or @c null if the given
4171    * index is out of range.
4172    *
4173    */ public
removeUnitDefinition(long n)4174  UnitDefinition removeUnitDefinition(long n) {
4175     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeUnitDefinition__SWIG_0(swigCPtr, n);
4176     UnitDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new UnitDefinition(cPtr, true);
4177     return ret;
4178   }
4179 
4180 
4181 /**
4182    * Removes the UnitDefinition object with the given identifier from this Model
4183    * object and returns a pointer to it.
4184    *
4185    * The caller owns the returned object and is responsible for deleting it.
4186    *
4187    * @param sid the identifier of the UnitDefinition object to remove.
4188    *
4189    * @return the UnitDefinition object removed, or @c null if no
4190    * UnitDefinition object with the identifier exists in this Model object.
4191    */ public
removeUnitDefinition(string sid)4192  UnitDefinition removeUnitDefinition(string sid) {
4193     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeUnitDefinition__SWIG_1(swigCPtr, sid);
4194     UnitDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new UnitDefinition(cPtr, true);
4195     return ret;
4196   }
4197 
4198 
4199 /**
4200    * Removes the nth CompartmentType object from this Model object and
4201    * returns a pointer to it.
4202    *
4203    * The caller owns the returned object and is responsible for deleting it.
4204    *
4205    * @param n the index of the CompartmentType object to remove.
4206    *
4207    * @return the ComapartmentType object removed, or @c null if the given
4208    * index is out of range.
4209    *
4210    */ public
removeCompartmentType(long n)4211  CompartmentType removeCompartmentType(long n) {
4212     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeCompartmentType__SWIG_0(swigCPtr, n);
4213     CompartmentType ret = (cPtr == global::System.IntPtr.Zero) ? null : new CompartmentType(cPtr, true);
4214     return ret;
4215   }
4216 
4217 
4218 /**
4219    * Removes the CompartmentType object with the given identifier from this Model
4220    * object and returns a pointer to it.
4221    *
4222    * The caller owns the returned object and is responsible for deleting it.
4223    *
4224    * @param sid the identifier of the object to remove.
4225    *
4226    * @return the CompartmentType object removed, or @c null if no
4227    * CompartmentType object with the identifier exists in this Model object.
4228    */ public
removeCompartmentType(string sid)4229  CompartmentType removeCompartmentType(string sid) {
4230     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeCompartmentType__SWIG_1(swigCPtr, sid);
4231     CompartmentType ret = (cPtr == global::System.IntPtr.Zero) ? null : new CompartmentType(cPtr, true);
4232     return ret;
4233   }
4234 
4235 
4236 /**
4237    * Removes the nth SpeciesType object from this Model object and
4238    * returns a pointer to it.
4239    *
4240    * The caller owns the returned object and is responsible for deleting it.
4241    *
4242    * @param n the index of the SpeciesType object to remove.
4243    *
4244    * @return the SpeciesType object removed, or @c null if the given index is
4245    * out of range.
4246    *
4247    */ public
removeSpeciesType(long n)4248  SpeciesType removeSpeciesType(long n) {
4249     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeSpeciesType__SWIG_0(swigCPtr, n);
4250     SpeciesType ret = (cPtr == global::System.IntPtr.Zero) ? null : new SpeciesType(cPtr, true);
4251     return ret;
4252   }
4253 
4254 
4255 /**
4256    * Removes the SpeciesType object with the given identifier from this Model
4257    * object and returns a pointer to it.
4258    *
4259    * The caller owns the returned object and is responsible for deleting it.
4260    *
4261    * @param sid the identifier of the SpeciesType object to remove.
4262    *
4263    * @return the SpeciesType object removed, or @c null if no SpeciesType
4264    * object with the identifier exists in this Model object.
4265    *
4266    */ public
removeSpeciesType(string sid)4267  SpeciesType removeSpeciesType(string sid) {
4268     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeSpeciesType__SWIG_1(swigCPtr, sid);
4269     SpeciesType ret = (cPtr == global::System.IntPtr.Zero) ? null : new SpeciesType(cPtr, true);
4270     return ret;
4271   }
4272 
4273 
4274 /**
4275    * Removes the nth Compartment object from this Model object and
4276    * returns a pointer to it.
4277    *
4278    * The caller owns the returned object and is responsible for deleting it.
4279    *
4280    * @param n the index of the Compartment object to remove.
4281    *
4282    * @return the Compartment object removed, or @c null if the given index is
4283    * out of range.
4284    *
4285    */ public
removeCompartment(long n)4286  Compartment removeCompartment(long n) {
4287     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeCompartment__SWIG_0(swigCPtr, n);
4288     Compartment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Compartment(cPtr, true);
4289     return ret;
4290   }
4291 
4292 
4293 /**
4294    * Removes the Compartment object with the given identifier from this Model
4295    * object and returns a pointer to it.
4296    *
4297    * The caller owns the returned object and is responsible for deleting it.
4298    *
4299    * @param sid the identifier of the Compartment object to remove.
4300    *
4301    * @return the Compartment object removed, or @c null if no Compartment
4302    * object with the identifier exists in this Model object.
4303    */ public
removeCompartment(string sid)4304  Compartment removeCompartment(string sid) {
4305     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeCompartment__SWIG_1(swigCPtr, sid);
4306     Compartment ret = (cPtr == global::System.IntPtr.Zero) ? null : new Compartment(cPtr, true);
4307     return ret;
4308   }
4309 
4310 
4311 /**
4312    * Removes the nth Species object from this Model object and
4313    * returns a pointer to it.
4314    *
4315    * The caller owns the returned object and is responsible for deleting it.
4316    *
4317    * @param n the index of the Species object to remove.
4318    *
4319    * @return the Species object removed, or @c null if the given index is out
4320    * of range.
4321    *
4322    */ public
removeSpecies(long n)4323  Species removeSpecies(long n) {
4324     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeSpecies__SWIG_0(swigCPtr, n);
4325     Species ret = (cPtr == global::System.IntPtr.Zero) ? null : new Species(cPtr, true);
4326     return ret;
4327   }
4328 
4329 
4330 /**
4331    * Removes the Species object with the given identifier from this Model
4332    * object and returns a pointer to it.
4333    *
4334    * The caller owns the returned object and is responsible for deleting it.
4335    *
4336    * @param sid the identifier of the Species object to remove.
4337    *
4338    * @return the Species object removed, or @c null if no Species object with
4339    * the identifier exists in this Model object.
4340    *
4341    */ public
removeSpecies(string sid)4342  Species removeSpecies(string sid) {
4343     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeSpecies__SWIG_1(swigCPtr, sid);
4344     Species ret = (cPtr == global::System.IntPtr.Zero) ? null : new Species(cPtr, true);
4345     return ret;
4346   }
4347 
4348 
4349 /**
4350    * Removes the nth Parameter object from this Model object and
4351    * returns a pointer to it.
4352    *
4353    * The caller owns the returned object and is responsible for deleting it.
4354    *
4355    * @param n the index of the Parameter object to remove.
4356    *
4357    * @return the Parameter object removed, or @c null if the given index is
4358    * out of range.
4359    *
4360    */ public
removeParameter(long n)4361  Parameter removeParameter(long n) {
4362     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeParameter__SWIG_0(swigCPtr, n);
4363     Parameter ret = (cPtr == global::System.IntPtr.Zero) ? null : new Parameter(cPtr, true);
4364     return ret;
4365   }
4366 
4367 
4368 /**
4369    * Removes the Parameter object with the given identifier from this Model
4370    * object and returns a pointer to it.
4371    *
4372    * The caller owns the returned object and is responsible for deleting it.
4373    *
4374    * @param sid the identifier of the Parameter object to remove.
4375    *
4376    * @return the Parameter object removed, or @c null if no Parameter object
4377    * with the identifier exists in this Model object.
4378    */ public
removeParameter(string sid)4379  Parameter removeParameter(string sid) {
4380     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeParameter__SWIG_1(swigCPtr, sid);
4381     Parameter ret = (cPtr == global::System.IntPtr.Zero) ? null : new Parameter(cPtr, true);
4382     return ret;
4383   }
4384 
4385 
4386 /**
4387    * Removes the nth InitialAssignment object from this Model object and
4388    * returns a pointer to it.
4389    *
4390    * The caller owns the returned object and is responsible for deleting it.
4391    *
4392    * @param n the index of the InitialAssignment object to remove.
4393    *
4394    * @return the InitialAssignment object removed, or @c null if the given
4395    * index is out of range.
4396    *
4397    */ public
removeInitialAssignment(long n)4398  InitialAssignment removeInitialAssignment(long n) {
4399     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeInitialAssignment__SWIG_0(swigCPtr, n);
4400     InitialAssignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new InitialAssignment(cPtr, true);
4401     return ret;
4402   }
4403 
4404 
4405 /**
4406    * Removes the InitialAssignment object with the given 'symbol' attribute
4407    * from this Model object and returns a pointer to it.
4408    *
4409    * The caller owns the returned object and is responsible for deleting it.
4410    *
4411    * @param symbol the 'symbol' attribute of the InitialAssignment object to remove.
4412    *
4413    * @return the InitialAssignment object removed, or @c null if no
4414    * InitialAssignment object with the 'symbol' attribute exists in this
4415    * Model object.
4416    */ public
removeInitialAssignment(string symbol)4417  InitialAssignment removeInitialAssignment(string symbol) {
4418     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeInitialAssignment__SWIG_1(swigCPtr, symbol);
4419     InitialAssignment ret = (cPtr == global::System.IntPtr.Zero) ? null : new InitialAssignment(cPtr, true);
4420     return ret;
4421   }
4422 
4423 
4424 /**
4425    * Removes the nth Rule object from this Model object and
4426    * returns a pointer to it.
4427    *
4428    * The caller owns the returned object and is responsible for deleting it.
4429    *
4430    * @param n the index of the Rule object to remove.
4431    *
4432    * @return the Rule object removed, or @c null if the given index is out of
4433    * range.
4434    *
4435    */ public
removeRule(long n)4436  Rule removeRule(long n) {
4437         Rule ret = (Rule) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeRule__SWIG_0(swigCPtr, n), true);
4438 	return ret;
4439 }
4440 
4441 
4442 /**
4443    * Removes the Rule object with the given 'variable' attribute from this Model
4444    * object and returns a pointer to it.
4445    *
4446    * The caller owns the returned object and is responsible for deleting it.
4447    *
4448    * @param variable the 'variable' attribute of the Rule object to remove.
4449    *
4450    * @return the Rule object removed, or @c null if no Rule object with the
4451    * 'variable' attribute exists in this Model object.
4452    */ public
removeRule(string variable)4453  Rule removeRule(string variable) {
4454         Rule ret = (Rule) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeRule__SWIG_1(swigCPtr, variable), true);
4455 	return ret;
4456 }
4457 
4458 
4459 /**
4460    * Removes the Rule object with the given 'variable' attribute from this Model
4461    * object and returns a pointer to it.
4462    *
4463    * The caller owns the returned object and is responsible for deleting it.
4464    *
4465    * @param variable the 'variable' attribute of the Rule object to remove.
4466    *
4467    * @return the Rule object removed, or @c null if no Rule object with the
4468    * 'variable' attribute exists in this Model object.
4469    */ public
removeRuleByVariable(string variable)4470  Rule removeRuleByVariable(string variable) {
4471         Rule ret = (Rule) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeRuleByVariable(swigCPtr, variable), true);
4472 	return ret;
4473 }
4474 
4475 
4476 /**
4477    * Removes the nth Constraint object from this Model object and
4478    * returns a pointer to it.
4479    *
4480    * The caller owns the returned object and is responsible for deleting it.
4481    *
4482    * @param n the index of the Constraint object to remove.
4483    *
4484    * @return the Constraint object removed, or @c null if the given index is
4485    * out of range.
4486    *
4487    */ public
removeConstraint(long n)4488  Constraint removeConstraint(long n) {
4489     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeConstraint(swigCPtr, n);
4490     Constraint ret = (cPtr == global::System.IntPtr.Zero) ? null : new Constraint(cPtr, true);
4491     return ret;
4492   }
4493 
4494 
4495 /**
4496    * Removes the nth Reaction object from this Model object and
4497    * returns a pointer to it.
4498    *
4499    * The caller owns the returned object and is responsible for deleting it.
4500    *
4501    * @param n the index of the Reaction object to remove.
4502    *
4503    * @return the Reaction object removed, or @c null if the given index is
4504    * out of range.
4505    *
4506    */ public
removeReaction(long n)4507  Reaction removeReaction(long n) {
4508 	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeReaction__SWIG_0(swigCPtr, n), true);
4509 	return ret;
4510 }
4511 
4512 
4513 /**
4514    * Removes the Reaction object with the given identifier from this Model
4515    * object and returns a pointer to it.
4516    *
4517    * The caller owns the returned object and is responsible for deleting it.
4518    *
4519    * @param sid the identifier of the Reaction object to remove.
4520    *
4521    * @return the Reaction object removed, or @c null if no Reaction object
4522    * with the identifier exists in this Model object.
4523    *
4524    */ public
removeReaction(string sid)4525  Reaction removeReaction(string sid) {
4526 	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeReaction__SWIG_1(swigCPtr, sid), true);
4527 	return ret;
4528 }
4529 
4530 
4531 /**
4532    * Removes the nth Event object from this Model object and
4533    * returns a pointer to it.
4534    *
4535    * The caller owns the returned object and is responsible for deleting it.
4536    *
4537    * @param n the index of the Event object to remove.
4538    *
4539    * @return the Event object removed, or @c null if the given index is out
4540    * of range.
4541    *
4542    */ public
removeEvent(long n)4543  Event removeEvent(long n) {
4544     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeEvent__SWIG_0(swigCPtr, n);
4545     Event ret = (cPtr == global::System.IntPtr.Zero) ? null : new Event(cPtr, true);
4546     return ret;
4547   }
4548 
4549 
4550 /**
4551    * Removes the Event object with the given identifier from this Model
4552    * object and returns a pointer to it.
4553    *
4554    * The caller owns the returned object and is responsible for deleting it.
4555    *
4556    * @param sid the identifier of the Event object to remove.
4557    *
4558    * @return the Event object removed, or @c null if no Event object with the
4559    * identifier exists in this Model object.
4560    *
4561    */ public
removeEvent(string sid)4562  Event removeEvent(string sid) {
4563     global::System.IntPtr cPtr = libsbmlPINVOKE.Model_removeEvent__SWIG_1(swigCPtr, sid);
4564     Event ret = (cPtr == global::System.IntPtr.Zero) ? null : new Event(cPtr, true);
4565     return ret;
4566   }
4567 
4568 
4569 /**
4570    * Copies a given Model object's subcomponents and appends the copies to
4571    * the appropriate places in this Model.
4572    *
4573    * This method also calls the <code>appendFrom</code> method on all libSBML
4574    * plug-in objects.
4575    *
4576    *
4577  *
4578  * SBML Level&nbsp;3 consists of a <em>Core</em> definition that can be extended
4579  * via optional SBML Level&nbsp;3 <em>packages</em>.  A given model may indicate
4580  * that it uses one or more SBML packages, and likewise, a software tool may be
4581  * able to support one or more packages.  LibSBML does not come preconfigured
4582  * with all possible packages included and enabled, in part because not all
4583  * package specifications have been finalized.  To support the ability for
4584  * software systems to enable support for the Level&nbsp;3 packages they choose,
4585  * libSBML features a <em>plug-in</em> mechanism.  Each SBML Level&nbsp;3
4586  * package is implemented in a separate code plug-in that can be enabled by the
4587  * application to support working with that SBML package.  A given SBML model
4588  * may thus contain not only objects defined by SBML Level&nbsp;3 Core, but also
4589  * objects created by libSBML plug-ins supporting additional Level&nbsp;3
4590  * packages.
4591  *
4592  *
4593    *
4594    * @param model the Model to merge with this one.
4595    *
4596    */ public new
appendFrom(Model model)4597  int appendFrom(Model model) {
4598     int ret = libsbmlPINVOKE.Model_appendFrom(swigCPtr, Model.getCPtr(model));
4599     return ret;
4600   }
4601 
4602 
4603 /** */ /* libsbml-internal */ public new
enablePackageInternal(string pkgURI, string pkgPrefix, bool flag)4604  void enablePackageInternal(string pkgURI, string pkgPrefix, bool flag) {
4605     libsbmlPINVOKE.Model_enablePackageInternal(swigCPtr, pkgURI, pkgPrefix, flag);
4606   }
4607 
4608 
4609 /** */ /* libsbml-internal */ public new
updateSBMLNamespace(string package, long level, long version)4610  void updateSBMLNamespace(string package, long level, long version) {
4611     libsbmlPINVOKE.Model_updateSBMLNamespace(swigCPtr, package, level, version);
4612   }
4613 
renameIDs(SBaseList elements, IdentifierTransformer idTransformer)4614   public void renameIDs(SBaseList elements, IdentifierTransformer idTransformer) {
4615     libsbmlPINVOKE.Model_renameIDs(swigCPtr, SBaseList.getCPtr(elements), IdentifierTransformer.getCPtr(idTransformer));
4616     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
4617   }
4618 
4619 }
4620 
4621 }
4622