001/* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (http://www.swig.org).
003 * Version 3.0.10
004 *
005 * Do not make changes to this file unless you know what you are doing--modify
006 * the SWIG interface file instead.
007 * ----------------------------------------------------------------------------- */
008
009package org.sbml.libsbml;
010
011/** 
012 * <span class="pkg-marker pkg-color-qual"><a href="group__qual.html">qual</a></span>
013
014 Extension of {@link Species}.
015 <p>
016 * Similarly to the {@link Species} in SBML, the components of qualitative models
017 * refer to pools of entities that are considered indistinguishable and are
018 * each located in a specific {@link Compartment}. However, here components are
019 * characterised by their qualitative influences rather than by taking part
020 * in reactions. Therefore, we define the {@link QualitativeSpecies} element to
021 * represent such pools of entities.
022 <p>
023 * In a Petri net, qualitative species refer to the places of the model,
024 * while in a logical model, they refer to the variables of this model
025 * (i.e. nodes of the influence graph).
026 <p>
027 * A {@link QualitativeSpecies} describes a pool of indistinguishable entities in a
028 * {@link Compartment}. It is associated with a level (an integer representing
029 * e.g. an activity state, or a functional level of concentration, etc.)
030 */
031
032public class QualitativeSpecies extends SBase {
033   private long swigCPtr;
034
035   protected QualitativeSpecies(long cPtr, boolean cMemoryOwn)
036   {
037     super(libsbmlJNI.QualitativeSpecies_SWIGUpcast(cPtr), cMemoryOwn);
038     swigCPtr = cPtr;
039   }
040
041   protected static long getCPtr(QualitativeSpecies obj)
042   {
043     return (obj == null) ? 0 : obj.swigCPtr;
044   }
045
046   protected static long getCPtrAndDisown (QualitativeSpecies obj)
047   {
048     long ptr = 0;
049
050     if (obj != null)
051     {
052       ptr             = obj.swigCPtr;
053       obj.swigCMemOwn = false;
054     }
055
056     return ptr;
057   }
058
059  protected void finalize() {
060    delete();
061  }
062
063  public synchronized void delete() {
064    if (swigCPtr != 0) {
065      if (swigCMemOwn) {
066        swigCMemOwn = false;
067        libsbmlJNI.delete_QualitativeSpecies(swigCPtr);
068      }
069      swigCPtr = 0;
070    }
071    super.delete();
072  }
073
074  
075/**
076   * Creates a new {@link QualitativeSpecies} with the given level, version, and package version.
077   <p>
078   * @param level a long integer, the SBML Level to assign to this {@link QualitativeSpecies}.
079   <p>
080   * @param version a long integer, the SBML Version to assign to this {@link QualitativeSpecies}.
081   <p>
082   * @param pkgVersion a long integer, the SBML Qual Version to assign to this {@link QualitativeSpecies}.
083   <p>
084   * <p>
085 * @note Attempting to add an object to an {@link SBMLDocument} having a different
086 * combination of SBML Level, Version and XML namespaces than the object
087 * itself will result in an error at the time a caller attempts to make the
088 * addition.  A parent object must have compatible Level, Version and XML
089 * namespaces.  (Strictly speaking, a parent may also have more XML
090 * namespaces than a child, but the reverse is not permitted.)  The
091 * restriction is necessary to ensure that an SBML model has a consistent
092 * overall structure.  This requires callers to manage their objects
093 * carefully, but the benefit is increased flexibility in how models can be
094 * created by permitting callers to create objects bottom-up if desired.  In
095 * situations where objects are not yet attached to parents (e.g.,
096 * {@link SBMLDocument}), knowledge of the intented SBML Level and Version help
097 * libSBML determine such things as whether it is valid to assign a
098 * particular value to an attribute.  For packages, this means that the 
099 * parent object to which this package element is being added must have
100 * been created with the package namespace, or that the package namespace
101 * was added to it, even if that parent is not a package object itself.
102   */ public
103 QualitativeSpecies(long level, long version, long pkgVersion) throws org.sbml.libsbml.SBMLConstructorException {
104    this(libsbmlJNI.new_QualitativeSpecies__SWIG_0(level, version, pkgVersion), true);
105  }
106
107  
108/**
109   * Creates a new {@link QualitativeSpecies} with the given level, version, and package version.
110   <p>
111   * @param level a long integer, the SBML Level to assign to this {@link QualitativeSpecies}.
112   <p>
113   * @param version a long integer, the SBML Version to assign to this {@link QualitativeSpecies}.
114   <p>
115   * @param pkgVersion a long integer, the SBML Qual Version to assign to this {@link QualitativeSpecies}.
116   <p>
117   * <p>
118 * @note Attempting to add an object to an {@link SBMLDocument} having a different
119 * combination of SBML Level, Version and XML namespaces than the object
120 * itself will result in an error at the time a caller attempts to make the
121 * addition.  A parent object must have compatible Level, Version and XML
122 * namespaces.  (Strictly speaking, a parent may also have more XML
123 * namespaces than a child, but the reverse is not permitted.)  The
124 * restriction is necessary to ensure that an SBML model has a consistent
125 * overall structure.  This requires callers to manage their objects
126 * carefully, but the benefit is increased flexibility in how models can be
127 * created by permitting callers to create objects bottom-up if desired.  In
128 * situations where objects are not yet attached to parents (e.g.,
129 * {@link SBMLDocument}), knowledge of the intented SBML Level and Version help
130 * libSBML determine such things as whether it is valid to assign a
131 * particular value to an attribute.  For packages, this means that the 
132 * parent object to which this package element is being added must have
133 * been created with the package namespace, or that the package namespace
134 * was added to it, even if that parent is not a package object itself.
135   */ public
136 QualitativeSpecies(long level, long version) throws org.sbml.libsbml.SBMLConstructorException {
137    this(libsbmlJNI.new_QualitativeSpecies__SWIG_1(level, version), true);
138  }
139
140  
141/**
142   * Creates a new {@link QualitativeSpecies} with the given level, version, and package version.
143   <p>
144   * @param level a long integer, the SBML Level to assign to this {@link QualitativeSpecies}.
145   <p>
146   * @param version a long integer, the SBML Version to assign to this {@link QualitativeSpecies}.
147   <p>
148   * @param pkgVersion a long integer, the SBML Qual Version to assign to this {@link QualitativeSpecies}.
149   <p>
150   * <p>
151 * @note Attempting to add an object to an {@link SBMLDocument} having a different
152 * combination of SBML Level, Version and XML namespaces than the object
153 * itself will result in an error at the time a caller attempts to make the
154 * addition.  A parent object must have compatible Level, Version and XML
155 * namespaces.  (Strictly speaking, a parent may also have more XML
156 * namespaces than a child, but the reverse is not permitted.)  The
157 * restriction is necessary to ensure that an SBML model has a consistent
158 * overall structure.  This requires callers to manage their objects
159 * carefully, but the benefit is increased flexibility in how models can be
160 * created by permitting callers to create objects bottom-up if desired.  In
161 * situations where objects are not yet attached to parents (e.g.,
162 * {@link SBMLDocument}), knowledge of the intented SBML Level and Version help
163 * libSBML determine such things as whether it is valid to assign a
164 * particular value to an attribute.  For packages, this means that the 
165 * parent object to which this package element is being added must have
166 * been created with the package namespace, or that the package namespace
167 * was added to it, even if that parent is not a package object itself.
168   */ public
169 QualitativeSpecies(long level) throws org.sbml.libsbml.SBMLConstructorException {
170    this(libsbmlJNI.new_QualitativeSpecies__SWIG_2(level), true);
171  }
172
173  
174/**
175   * Creates a new {@link QualitativeSpecies} with the given level, version, and package version.
176   <p>
177   * @param level a long integer, the SBML Level to assign to this {@link QualitativeSpecies}.
178   <p>
179   * @param version a long integer, the SBML Version to assign to this {@link QualitativeSpecies}.
180   <p>
181   * @param pkgVersion a long integer, the SBML Qual Version to assign to this {@link QualitativeSpecies}.
182   <p>
183   * <p>
184 * @note Attempting to add an object to an {@link SBMLDocument} having a different
185 * combination of SBML Level, Version and XML namespaces than the object
186 * itself will result in an error at the time a caller attempts to make the
187 * addition.  A parent object must have compatible Level, Version and XML
188 * namespaces.  (Strictly speaking, a parent may also have more XML
189 * namespaces than a child, but the reverse is not permitted.)  The
190 * restriction is necessary to ensure that an SBML model has a consistent
191 * overall structure.  This requires callers to manage their objects
192 * carefully, but the benefit is increased flexibility in how models can be
193 * created by permitting callers to create objects bottom-up if desired.  In
194 * situations where objects are not yet attached to parents (e.g.,
195 * {@link SBMLDocument}), knowledge of the intented SBML Level and Version help
196 * libSBML determine such things as whether it is valid to assign a
197 * particular value to an attribute.  For packages, this means that the 
198 * parent object to which this package element is being added must have
199 * been created with the package namespace, or that the package namespace
200 * was added to it, even if that parent is not a package object itself.
201   */ public
202 QualitativeSpecies() throws org.sbml.libsbml.SBMLConstructorException {
203    this(libsbmlJNI.new_QualitativeSpecies__SWIG_3(), true);
204  }
205
206  
207/**
208   * Creates a new {@link QualitativeSpecies} with the given {@link QualPkgNamespaces} object.
209   <p>
210   * <p>
211 * The package namespaces object used in this constructor is derived from a
212 * {@link SBMLNamespaces} object, which encapsulates SBML Level/Version/namespaces
213 * information.  It is used to communicate the SBML Level, Version, and 
214 * package version and name information used in addition to SBML Level&nbsp;3 Core.  A
215 * common approach to using libSBML's {@link SBMLNamespaces} facilities is to create an
216 * package namespace object somewhere in a program once, then hand that object
217 * as needed to object constructors of that package that accept it as and
218 * argument, such as this one.
219   <p>
220   * @param qualns the {@link QualPkgNamespaces} object.
221   <p>
222   * <p>
223 * @note Attempting to add an object to an {@link SBMLDocument} having a different
224 * combination of SBML Level, Version and XML namespaces than the object
225 * itself will result in an error at the time a caller attempts to make the
226 * addition.  A parent object must have compatible Level, Version and XML
227 * namespaces.  (Strictly speaking, a parent may also have more XML
228 * namespaces than a child, but the reverse is not permitted.)  The
229 * restriction is necessary to ensure that an SBML model has a consistent
230 * overall structure.  This requires callers to manage their objects
231 * carefully, but the benefit is increased flexibility in how models can be
232 * created by permitting callers to create objects bottom-up if desired.  In
233 * situations where objects are not yet attached to parents (e.g.,
234 * {@link SBMLDocument}), knowledge of the intented SBML Level and Version help
235 * libSBML determine such things as whether it is valid to assign a
236 * particular value to an attribute.  For packages, this means that the 
237 * parent object to which this package element is being added must have
238 * been created with the package namespace, or that the package namespace
239 * was added to it, even if that parent is not a package object itself.
240   */ public
241 QualitativeSpecies(QualPkgNamespaces qualns) throws org.sbml.libsbml.SBMLConstructorException {
242    this(libsbmlJNI.new_QualitativeSpecies__SWIG_4(QualPkgNamespaces.getCPtr(qualns), qualns), true);
243  }
244
245  
246/**
247   * Copy constructor for {@link QualitativeSpecies}.
248   <p>
249   * @param orig the {@link QualitativeSpecies} instance to copy.
250   */ public
251 QualitativeSpecies(QualitativeSpecies orig) throws org.sbml.libsbml.SBMLConstructorException {
252    this(libsbmlJNI.new_QualitativeSpecies__SWIG_5(QualitativeSpecies.getCPtr(orig), orig), true);
253  }
254
255  
256/**
257   * Creates and returns a deep copy of this {@link QualitativeSpecies} object.
258   <p>
259   * @return a (deep) copy of this {@link QualitativeSpecies} object.
260   */ public
261 QualitativeSpecies cloneObject() {
262    long cPtr = libsbmlJNI.QualitativeSpecies_cloneObject(swigCPtr, this);
263    return (cPtr == 0) ? null : new QualitativeSpecies(cPtr, true);
264  }
265
266  
267/**
268   * Returns the value of the 'id' attribute of this {@link QualitativeSpecies}.
269   <p>
270   * @note Because of the inconsistent behavior of this function with 
271   * respect to assignments and rules, it is now recommended to
272   * use the getIdAttribute() function instead.
273   <p>
274   * <p>
275 * The identifier given by an object's 'id' attribute value
276 * is used to identify the object within the SBML model definition.
277 * Other objects can refer to the component using this identifier.  The
278 * data type of 'id' is always <code>SId</code> or a type derived
279 * from that, such as <code>UnitSId</code>, depending on the object in 
280 * question.  All data types are defined as follows:
281 * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
282 *   letter .= 'a'..'z','A'..'Z'
283 *   digit  .= '0'..'9'
284 *   idChar .= letter | digit | '_'
285 *   SId    .= ( letter | '_' ) idChar*
286 * </pre>
287 <p>
288 * The characters <code>(</code> and <code>)</code> are used for grouping, the
289 * character <code>*</code> 'zero or more times', and the character
290 * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers is
291 * determined by an exact character sequence match; i.e., comparisons must be
292 * performed in a case-sensitive manner.  This applies to all uses of <code>SId</code>, 
293 * <code>SIdRef</code>, and derived types.
294 <p>
295 * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
296 * moved to {@link SBase} directly, instead of being defined individually for many
297 * (but not all) objects.  Libsbml has for a long time provided functions
298 * defined on {@link SBase} itself to get, set, check, and unset those attributes, which 
299 * would fail or otherwise return empty strings if executed on any object 
300 * for which those attributes were not defined.  Now that all {@link SBase} objects 
301 * define those attributes, those functions now succeed for any object with 
302 * the appropriate level and version.
303 <p>
304 * The exception to this rule is that for {@link InitialAssignment}, {@link EventAssignment}, 
305 * {@link AssignmentRule}, and {@link RateRule} objects, the getId() function and the isSetId() 
306 * functions (though not the setId() or unsetId() functions) would instead 
307 * reference the value of the 'variable' attribute (for the rules and event 
308 * assignments) or the 'symbol' attribute (for initial assignments).  
309 * The {@link AlgebraicRule} fell into this category as well, though because it 
310 * contained neither a 'variable' nor a 'symbol' attribute, getId() would 
311 * always return an empty string, and isSetId() would always return <code>false.</code>
312 * For this reason, four new functions are now provided 
313 * (getIdAttribute(), setIdAttribute(String), 
314 * isSetIdAttribute(), and unsetIdAttribute()) that will always
315 * act on the actual 'id' attribute, regardless of the object's type.  The
316 * new functions should be used instead of the old ones unless the old behavior
317 * is somehow necessary.
318 <p>
319 * Regardless of the level and version of the SBML, these functions allow
320 * client applications to use more generalized code in some situations 
321 * (for instance, when manipulating objects that are all known to have 
322 * identifiers).  If the object in question does not posess an 'id' attribute 
323 * according to the SBML specification for the Level and Version in use,
324 * libSBML will not allow the identifier to be set, nor will it read or 
325 * write 'id' attributes for those objects.
326   <p>
327   * @return the id of this {@link QualitativeSpecies}.
328   <p>
329   * @see #getIdAttribute()
330   * @see #setIdAttribute(String sid)
331   * @see #isSetIdAttribute()
332   * @see #unsetIdAttribute()
333   */ public
334 String getId() {
335    return libsbmlJNI.QualitativeSpecies_getId(swigCPtr, this);
336  }
337
338  
339/**
340   * Returns the value of the 'compartment' attribute of this {@link QualitativeSpecies}.
341   <p>
342   * @return the value of the 'compartment' attribute of this {@link QualitativeSpecies} as a string.
343   */ public
344 String getCompartment() {
345    return libsbmlJNI.QualitativeSpecies_getCompartment(swigCPtr, this);
346  }
347
348  
349/**
350   * Returns the value of the 'constant' attribute of this {@link QualitativeSpecies}.
351   <p>
352   * @return the value of the 'constant' attribute of this {@link QualitativeSpecies} as a boolean.
353   */ public
354 boolean getConstant() {
355    return libsbmlJNI.QualitativeSpecies_getConstant(swigCPtr, this);
356  }
357
358  
359/**
360   * Returns the value of the 'name' attribute of this {@link QualitativeSpecies} object.
361   <p>
362   * <p>
363 * <p>
364 * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
365 * moved to {@link SBase} directly, instead of being defined individually for many
366 * (but not all) objects.  Libsbml has for a long time provided functions
367 * defined on {@link SBase} itself to get, set, and unset those attributes, which 
368 * would fail or otherwise return empty strings if executed on any object 
369 * for which those attributes were not defined.  Now that all {@link SBase} objects 
370 * define those attributes, those functions now succeed for any object with 
371 * the appropriate level and version.
372 <p>
373 * The 'name' attribute is
374 * optional and is not intended to be used for cross-referencing purposes
375 * within a model.  Its purpose instead is to provide a human-readable
376 * label for the component.  The data type of 'name' is the type
377 * <code>string</code> defined in XML Schema.  SBML imposes no
378 * restrictions as to the content of 'name' attributes beyond those
379 * restrictions defined by the <code>string</code> type in XML Schema.
380 <p>
381 * The recommended practice for handling 'name' is as follows.  If a
382 * software tool has the capability for displaying the content of 'name'
383 * attributes, it should display this content to the user as a
384 * component's label instead of the component's 'id'.  If the user
385 * interface does not have this capability (e.g., because it cannot
386 * display or use special characters in symbol names), or if the 'name'
387 * attribute is missing on a given component, then the user interface
388 * should display the value of the 'id' attribute instead.  (Script
389 * language interpreters are especially likely to display 'id' instead of
390 * 'name'.)
391 <p>
392 * As a consequence of the above, authors of systems that automatically
393 * generate the values of 'id' attributes should be aware some systems
394 * may display the 'id''s to the user.  Authors therefore may wish to
395 * take some care to have their software create 'id' values that are: (a)
396 * reasonably easy for humans to type and read; and (b) likely to be
397 * meaningful, for example by making the 'id' attribute be an abbreviated
398 * form of the name attribute value.
399 <p>
400 * An additional point worth mentioning is although there are
401 * restrictions on the uniqueness of 'id' values, there are no
402 * restrictions on the uniqueness of 'name' values in a model.  This
403 * allows software applications leeway in assigning component identifiers.
404 <p>
405 * Regardless of the level and version of the SBML, these functions allow
406 * client applications to use more generalized code in some situations 
407 * (for instance, when manipulating objects that are all known to have 
408 * names).  If the object in question does not posess a 'name' attribute 
409 * according to the SBML specification for the Level and Version in use,
410 * libSBML will not allow the name to be set, nor will it read or 
411 * write 'name' attributes for those objects.
412 <p>
413 * @return the name of this SBML object, or the empty string if not set or unsettable.
414 <p>
415 * @see #getIdAttribute()
416 * @see #isSetName()
417 * @see #setName(String sid)
418 * @see #unsetName()
419   */ public
420 String getName() {
421    return libsbmlJNI.QualitativeSpecies_getName(swigCPtr, this);
422  }
423
424  
425/**
426   * Returns the value of the 'initialLevel' attribute of this {@link QualitativeSpecies}.
427   <p>
428   * @return the value of the 'initialLevel' attribute of this {@link QualitativeSpecies} as a integer.
429   */ public
430 int getInitialLevel() {
431    return libsbmlJNI.QualitativeSpecies_getInitialLevel(swigCPtr, this);
432  }
433
434  
435/**
436   * Returns the value of the 'maxLevel' attribute of this {@link QualitativeSpecies}.
437   <p>
438   * @return the value of the 'maxLevel' attribute of this {@link QualitativeSpecies} as a integer.
439   */ public
440 int getMaxLevel() {
441    return libsbmlJNI.QualitativeSpecies_getMaxLevel(swigCPtr, this);
442  }
443
444  
445/**
446   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
447   * {@link QualitativeSpecies}'s 'id' attribute has been set.
448   <p>
449   * <p>
450 * @note Because of the inconsistent behavior of this function with 
451 * respect to assignments and rules, it is now recommended to
452 * use the isSetIdAttribute() function instead.
453 <p>
454 * <p>
455 * The identifier given by an object's 'id' attribute value
456 * is used to identify the object within the SBML model definition.
457 * Other objects can refer to the component using this identifier.  The
458 * data type of 'id' is always <code>SId</code> or a type derived
459 * from that, such as <code>UnitSId</code>, depending on the object in 
460 * question.  All data types are defined as follows:
461 * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
462 *   letter .= 'a'..'z','A'..'Z'
463 *   digit  .= '0'..'9'
464 *   idChar .= letter | digit | '_'
465 *   SId    .= ( letter | '_' ) idChar*
466 * </pre>
467 <p>
468 * The characters <code>(</code> and <code>)</code> are used for grouping, the
469 * character <code>*</code> 'zero or more times', and the character
470 * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers is
471 * determined by an exact character sequence match; i.e., comparisons must be
472 * performed in a case-sensitive manner.  This applies to all uses of <code>SId</code>, 
473 * <code>SIdRef</code>, and derived types.
474 <p>
475 * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
476 * moved to {@link SBase} directly, instead of being defined individually for many
477 * (but not all) objects.  Libsbml has for a long time provided functions
478 * defined on {@link SBase} itself to get, set, check, and unset those attributes, which 
479 * would fail or otherwise return empty strings if executed on any object 
480 * for which those attributes were not defined.  Now that all {@link SBase} objects 
481 * define those attributes, those functions now succeed for any object with 
482 * the appropriate level and version.
483 <p>
484 * The exception to this rule is that for {@link InitialAssignment}, {@link EventAssignment}, 
485 * {@link AssignmentRule}, and {@link RateRule} objects, the getId() function and the isSetId() 
486 * functions (though not the setId() or unsetId() functions) would instead 
487 * reference the value of the 'variable' attribute (for the rules and event 
488 * assignments) or the 'symbol' attribute (for initial assignments).  
489 * The {@link AlgebraicRule} fell into this category as well, though because it 
490 * contained neither a 'variable' nor a 'symbol' attribute, getId() would 
491 * always return an empty string, and isSetId() would always return <code>false.</code>
492 * For this reason, four new functions are now provided 
493 * (getIdAttribute(), setIdAttribute(String), 
494 * isSetIdAttribute(), and unsetIdAttribute()) that will always
495 * act on the actual 'id' attribute, regardless of the object's type.  The
496 * new functions should be used instead of the old ones unless the old behavior
497 * is somehow necessary.
498 <p>
499 * Regardless of the level and version of the SBML, these functions allow
500 * client applications to use more generalized code in some situations 
501 * (for instance, when manipulating objects that are all known to have 
502 * identifiers).  If the object in question does not posess an 'id' attribute 
503 * according to the SBML specification for the Level and Version in use,
504 * libSBML will not allow the identifier to be set, nor will it read or 
505 * write 'id' attributes for those objects.
506 <p>
507 * @return <code>true</code> if the 'id' attribute of this SBML object is
508 * set, <code>false</code> otherwise.
509 <p>
510 * @see #getIdAttribute()
511 * @see #setIdAttribute(String sid)
512 * @see #unsetIdAttribute()
513 * @see #isSetIdAttribute()
514   */ public
515 boolean isSetId() {
516    return libsbmlJNI.QualitativeSpecies_isSetId(swigCPtr, this);
517  }
518
519  
520/**
521   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
522   * {@link QualitativeSpecies}'s 'compartment' attribute has been set.
523   <p>
524   * @return <code>true</code> if this {@link QualitativeSpecies}'s 'compartment' attribute has been set,
525   * otherwise <code>false</code> is returned.
526   */ public
527 boolean isSetCompartment() {
528    return libsbmlJNI.QualitativeSpecies_isSetCompartment(swigCPtr, this);
529  }
530
531  
532/**
533   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
534   * {@link QualitativeSpecies}'s 'constant' attribute has been set.
535   <p>
536   * @return <code>true</code> if this {@link QualitativeSpecies}'s 'constant' attribute has been set,
537   * otherwise <code>false</code> is returned.
538   */ public
539 boolean isSetConstant() {
540    return libsbmlJNI.QualitativeSpecies_isSetConstant(swigCPtr, this);
541  }
542
543  
544/**
545   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
546   * {@link QualitativeSpecies}'s 'name' attribute has been set.
547   <p>
548   * <p>
549 * <p>
550 * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
551 * moved to {@link SBase} directly, instead of being defined individually for many
552 * (but not all) objects.  Libsbml has for a long time provided functions
553 * defined on {@link SBase} itself to get, set, and unset those attributes, which 
554 * would fail or otherwise return empty strings if executed on any object 
555 * for which those attributes were not defined.  Now that all {@link SBase} objects 
556 * define those attributes, those functions now succeed for any object with 
557 * the appropriate level and version.
558 <p>
559 * The 'name' attribute is
560 * optional and is not intended to be used for cross-referencing purposes
561 * within a model.  Its purpose instead is to provide a human-readable
562 * label for the component.  The data type of 'name' is the type
563 * <code>string</code> defined in XML Schema.  SBML imposes no
564 * restrictions as to the content of 'name' attributes beyond those
565 * restrictions defined by the <code>string</code> type in XML Schema.
566 <p>
567 * The recommended practice for handling 'name' is as follows.  If a
568 * software tool has the capability for displaying the content of 'name'
569 * attributes, it should display this content to the user as a
570 * component's label instead of the component's 'id'.  If the user
571 * interface does not have this capability (e.g., because it cannot
572 * display or use special characters in symbol names), or if the 'name'
573 * attribute is missing on a given component, then the user interface
574 * should display the value of the 'id' attribute instead.  (Script
575 * language interpreters are especially likely to display 'id' instead of
576 * 'name'.)
577 <p>
578 * As a consequence of the above, authors of systems that automatically
579 * generate the values of 'id' attributes should be aware some systems
580 * may display the 'id''s to the user.  Authors therefore may wish to
581 * take some care to have their software create 'id' values that are: (a)
582 * reasonably easy for humans to type and read; and (b) likely to be
583 * meaningful, for example by making the 'id' attribute be an abbreviated
584 * form of the name attribute value.
585 <p>
586 * An additional point worth mentioning is although there are
587 * restrictions on the uniqueness of 'id' values, there are no
588 * restrictions on the uniqueness of 'name' values in a model.  This
589 * allows software applications leeway in assigning component identifiers.
590 <p>
591 * Regardless of the level and version of the SBML, these functions allow
592 * client applications to use more generalized code in some situations 
593 * (for instance, when manipulating objects that are all known to have 
594 * names).  If the object in question does not posess a 'name' attribute 
595 * according to the SBML specification for the Level and Version in use,
596 * libSBML will not allow the name to be set, nor will it read or 
597 * write 'name' attributes for those objects.
598 <p>
599 * @return <code>true</code> if the 'name' attribute of this SBML object is
600 * set, <code>false</code> otherwise.
601 <p>
602 * @see #getName()
603 * @see #setName(String sid)
604 * @see #unsetName()
605   */ public
606 boolean isSetName() {
607    return libsbmlJNI.QualitativeSpecies_isSetName(swigCPtr, this);
608  }
609
610  
611/**
612   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
613   * {@link QualitativeSpecies}'s 'initialLevel' attribute has been set.
614   <p>
615   * @return <code>true</code> if this {@link QualitativeSpecies}'s 'initialLevel' attribute has been set,
616   * otherwise <code>false</code> is returned.
617   */ public
618 boolean isSetInitialLevel() {
619    return libsbmlJNI.QualitativeSpecies_isSetInitialLevel(swigCPtr, this);
620  }
621
622  
623/**
624   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
625   * {@link QualitativeSpecies}'s 'maxLevel' attribute has been set.
626   <p>
627   * @return <code>true</code> if this {@link QualitativeSpecies}'s 'maxLevel' attribute has been set,
628   * otherwise <code>false</code> is returned.
629   */ public
630 boolean isSetMaxLevel() {
631    return libsbmlJNI.QualitativeSpecies_isSetMaxLevel(swigCPtr, this);
632  }
633
634  
635/**
636   * Sets the value of the 'id' attribute of this {@link QualitativeSpecies}.
637   <p>
638   * <p>
639 * The string <code>sid</code> is copied.
640 <p>
641 * <p>
642 * The identifier given by an object's 'id' attribute value
643 * is used to identify the object within the SBML model definition.
644 * Other objects can refer to the component using this identifier.  The
645 * data type of 'id' is always <code>SId</code> or a type derived
646 * from that, such as <code>UnitSId</code>, depending on the object in 
647 * question.  All data types are defined as follows:
648 * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
649 *   letter .= 'a'..'z','A'..'Z'
650 *   digit  .= '0'..'9'
651 *   idChar .= letter | digit | '_'
652 *   SId    .= ( letter | '_' ) idChar*
653 * </pre>
654 <p>
655 * The characters <code>(</code> and <code>)</code> are used for grouping, the
656 * character <code>*</code> 'zero or more times', and the character
657 * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers is
658 * determined by an exact character sequence match; i.e., comparisons must be
659 * performed in a case-sensitive manner.  This applies to all uses of <code>SId</code>, 
660 * <code>SIdRef</code>, and derived types.
661 <p>
662 * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
663 * moved to {@link SBase} directly, instead of being defined individually for many
664 * (but not all) objects.  Libsbml has for a long time provided functions
665 * defined on {@link SBase} itself to get, set, check, and unset those attributes, which 
666 * would fail or otherwise return empty strings if executed on any object 
667 * for which those attributes were not defined.  Now that all {@link SBase} objects 
668 * define those attributes, those functions now succeed for any object with 
669 * the appropriate level and version.
670 <p>
671 * The exception to this rule is that for {@link InitialAssignment}, {@link EventAssignment}, 
672 * {@link AssignmentRule}, and {@link RateRule} objects, the getId() function and the isSetId() 
673 * functions (though not the setId() or unsetId() functions) would instead 
674 * reference the value of the 'variable' attribute (for the rules and event 
675 * assignments) or the 'symbol' attribute (for initial assignments).  
676 * The {@link AlgebraicRule} fell into this category as well, though because it 
677 * contained neither a 'variable' nor a 'symbol' attribute, getId() would 
678 * always return an empty string, and isSetId() would always return <code>false.</code>
679 * For this reason, four new functions are now provided 
680 * (getIdAttribute(), setIdAttribute(String), 
681 * isSetIdAttribute(), and unsetIdAttribute()) that will always
682 * act on the actual 'id' attribute, regardless of the object's type.  The
683 * new functions should be used instead of the old ones unless the old behavior
684 * is somehow necessary.
685 <p>
686 * Regardless of the level and version of the SBML, these functions allow
687 * client applications to use more generalized code in some situations 
688 * (for instance, when manipulating objects that are all known to have 
689 * identifiers).  If the object in question does not posess an 'id' attribute 
690 * according to the SBML specification for the Level and Version in use,
691 * libSBML will not allow the identifier to be set, nor will it read or 
692 * write 'id' attributes for those objects.
693 <p>
694 * @param sid the string to use as the identifier of this object.
695 <p>
696 * <p>
697 * @return integer value indicating success/failure of the
698 * function.   The possible values
699 * returned by this function are:
700 * <ul>
701 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
702 * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
703 * <li> {@link libsbmlConstants#LIBSBML_UNEXPECTED_ATTRIBUTE LIBSBML_UNEXPECTED_ATTRIBUTE}
704 *
705 * </ul> <p>
706 * @see #getIdAttribute()
707 * @see #setIdAttribute(String sid)
708 * @see #isSetIdAttribute()
709 * @see #unsetIdAttribute()
710   */ public
711 int setId(String sid) {
712    return libsbmlJNI.QualitativeSpecies_setId(swigCPtr, this, sid);
713  }
714
715  
716/**
717   * Sets the value of the 'compartment' attribute of this {@link QualitativeSpecies}.
718   <p>
719   * @param compartment the value of the 'compartment' attribute to be set.
720   <p>
721   * <p>
722 * @return integer value indicating success/failure of the
723 * function.   The possible values
724 * returned by this function are:
725   * <ul>
726   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
727   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
728   * </ul>
729   */ public
730 int setCompartment(String compartment) {
731    return libsbmlJNI.QualitativeSpecies_setCompartment(swigCPtr, this, compartment);
732  }
733
734  
735/**
736   * Sets the value of the 'constant' attribute of this {@link QualitativeSpecies}.
737   <p>
738   * @param constant boolean value of the 'constant' attribute to be set.
739   <p>
740   * <p>
741 * @return integer value indicating success/failure of the
742 * function.   The possible values
743 * returned by this function are:
744   * <ul>
745   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
746   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
747   * </ul>
748   */ public
749 int setConstant(boolean constant) {
750    return libsbmlJNI.QualitativeSpecies_setConstant(swigCPtr, this, constant);
751  }
752
753  
754/**
755   * Sets the value of the 'name' attribute of this {@link QualitativeSpecies}.
756   <p>
757   * <p>
758 * The string in <code>name</code> is copied.
759 <p>
760 * @param name the new name for the SBML object.
761 <p>
762 * <p>
763 * @return integer value indicating success/failure of the
764 * function.   The possible values
765 * returned by this function are:
766 * <ul>
767 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
768 * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
769 *
770 * </ul>
771   */ public
772 int setName(String name) {
773    return libsbmlJNI.QualitativeSpecies_setName(swigCPtr, this, name);
774  }
775
776  
777/**
778   * Sets the value of the 'initialLevel' attribute of this {@link QualitativeSpecies}.
779   <p>
780   * @param initialLevel int value of the 'initialLevel' attribute to be set.
781   <p>
782   * <p>
783 * @return integer value indicating success/failure of the
784 * function.   The possible values
785 * returned by this function are:
786   * <ul>
787   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
788   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
789   * </ul>
790   */ public
791 int setInitialLevel(int initialLevel) {
792    return libsbmlJNI.QualitativeSpecies_setInitialLevel(swigCPtr, this, initialLevel);
793  }
794
795  
796/**
797   * Sets the value of the 'maxLevel' attribute of this {@link QualitativeSpecies}.
798   <p>
799   * @param maxLevel int value of the 'maxLevel' attribute to be set.
800   <p>
801   * <p>
802 * @return integer value indicating success/failure of the
803 * function.   The possible values
804 * returned by this function are:
805   * <ul>
806   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
807   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
808   * </ul>
809   */ public
810 int setMaxLevel(int maxLevel) {
811    return libsbmlJNI.QualitativeSpecies_setMaxLevel(swigCPtr, this, maxLevel);
812  }
813
814  
815/**
816   * Unsets the value of the 'id' attribute of this {@link QualitativeSpecies}.
817   <p>
818   * <p>
819 * <p>
820 * The identifier given by an object's 'id' attribute value
821 * is used to identify the object within the SBML model definition.
822 * Other objects can refer to the component using this identifier.  The
823 * data type of 'id' is always <code>SId</code> or a type derived
824 * from that, such as <code>UnitSId</code>, depending on the object in 
825 * question.  All data types are defined as follows:
826 * <pre style='margin-left: 2em; border: none; font-weight: bold; color: black'>
827 *   letter .= 'a'..'z','A'..'Z'
828 *   digit  .= '0'..'9'
829 *   idChar .= letter | digit | '_'
830 *   SId    .= ( letter | '_' ) idChar*
831 * </pre>
832 <p>
833 * The characters <code>(</code> and <code>)</code> are used for grouping, the
834 * character <code>*</code> 'zero or more times', and the character
835 * <code>|</code> indicates logical 'or'.  The equality of SBML identifiers is
836 * determined by an exact character sequence match; i.e., comparisons must be
837 * performed in a case-sensitive manner.  This applies to all uses of <code>SId</code>, 
838 * <code>SIdRef</code>, and derived types.
839 <p>
840 * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
841 * moved to {@link SBase} directly, instead of being defined individually for many
842 * (but not all) objects.  Libsbml has for a long time provided functions
843 * defined on {@link SBase} itself to get, set, check, and unset those attributes, which 
844 * would fail or otherwise return empty strings if executed on any object 
845 * for which those attributes were not defined.  Now that all {@link SBase} objects 
846 * define those attributes, those functions now succeed for any object with 
847 * the appropriate level and version.
848 <p>
849 * The exception to this rule is that for {@link InitialAssignment}, {@link EventAssignment}, 
850 * {@link AssignmentRule}, and {@link RateRule} objects, the getId() function and the isSetId() 
851 * functions (though not the setId() or unsetId() functions) would instead 
852 * reference the value of the 'variable' attribute (for the rules and event 
853 * assignments) or the 'symbol' attribute (for initial assignments).  
854 * The {@link AlgebraicRule} fell into this category as well, though because it 
855 * contained neither a 'variable' nor a 'symbol' attribute, getId() would 
856 * always return an empty string, and isSetId() would always return <code>false.</code>
857 * For this reason, four new functions are now provided 
858 * (getIdAttribute(), setIdAttribute(String), 
859 * isSetIdAttribute(), and unsetIdAttribute()) that will always
860 * act on the actual 'id' attribute, regardless of the object's type.  The
861 * new functions should be used instead of the old ones unless the old behavior
862 * is somehow necessary.
863 <p>
864 * Regardless of the level and version of the SBML, these functions allow
865 * client applications to use more generalized code in some situations 
866 * (for instance, when manipulating objects that are all known to have 
867 * identifiers).  If the object in question does not posess an 'id' attribute 
868 * according to the SBML specification for the Level and Version in use,
869 * libSBML will not allow the identifier to be set, nor will it read or 
870 * write 'id' attributes for those objects.
871 <p>
872 * <p>
873 * @return integer value indicating success/failure of the
874 * function.   The possible values
875 * returned by this function are:
876 * <ul>
877 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
878 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
879 *
880 * </ul> <p>
881 * @see #getIdAttribute()
882 * @see #setIdAttribute(String sid)
883 * @see #isSetIdAttribute()
884 * @see #unsetIdAttribute()
885   */ public
886 int unsetId() {
887    return libsbmlJNI.QualitativeSpecies_unsetId(swigCPtr, this);
888  }
889
890  
891/**
892   * Unsets the value of the 'compartment' attribute of this {@link QualitativeSpecies}.
893   <p>
894   * <p>
895 * @return integer value indicating success/failure of the
896 * function.   The possible values
897 * returned by this function are:
898   * <ul>
899   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
900   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
901   * </ul>
902   */ public
903 int unsetCompartment() {
904    return libsbmlJNI.QualitativeSpecies_unsetCompartment(swigCPtr, this);
905  }
906
907  
908/**
909   * Unsets the value of the 'constant' attribute of this {@link QualitativeSpecies}.
910   <p>
911   * <p>
912 * @return integer value indicating success/failure of the
913 * function.   The possible values
914 * returned by this function are:
915   * <ul>
916   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
917   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
918   * </ul>
919   */ public
920 int unsetConstant() {
921    return libsbmlJNI.QualitativeSpecies_unsetConstant(swigCPtr, this);
922  }
923
924  
925/**
926   * Unsets the value of the 'name' attribute of this {@link QualitativeSpecies}.
927   <p>
928   * <p>
929 * <p>
930 * In SBML Level&nbsp;3 Version&nbsp;2, the 'id' and 'name' attributes were
931 * moved to {@link SBase} directly, instead of being defined individually for many
932 * (but not all) objects.  Libsbml has for a long time provided functions
933 * defined on {@link SBase} itself to get, set, and unset those attributes, which 
934 * would fail or otherwise return empty strings if executed on any object 
935 * for which those attributes were not defined.  Now that all {@link SBase} objects 
936 * define those attributes, those functions now succeed for any object with 
937 * the appropriate level and version.
938 <p>
939 * The 'name' attribute is
940 * optional and is not intended to be used for cross-referencing purposes
941 * within a model.  Its purpose instead is to provide a human-readable
942 * label for the component.  The data type of 'name' is the type
943 * <code>string</code> defined in XML Schema.  SBML imposes no
944 * restrictions as to the content of 'name' attributes beyond those
945 * restrictions defined by the <code>string</code> type in XML Schema.
946 <p>
947 * The recommended practice for handling 'name' is as follows.  If a
948 * software tool has the capability for displaying the content of 'name'
949 * attributes, it should display this content to the user as a
950 * component's label instead of the component's 'id'.  If the user
951 * interface does not have this capability (e.g., because it cannot
952 * display or use special characters in symbol names), or if the 'name'
953 * attribute is missing on a given component, then the user interface
954 * should display the value of the 'id' attribute instead.  (Script
955 * language interpreters are especially likely to display 'id' instead of
956 * 'name'.)
957 <p>
958 * As a consequence of the above, authors of systems that automatically
959 * generate the values of 'id' attributes should be aware some systems
960 * may display the 'id''s to the user.  Authors therefore may wish to
961 * take some care to have their software create 'id' values that are: (a)
962 * reasonably easy for humans to type and read; and (b) likely to be
963 * meaningful, for example by making the 'id' attribute be an abbreviated
964 * form of the name attribute value.
965 <p>
966 * An additional point worth mentioning is although there are
967 * restrictions on the uniqueness of 'id' values, there are no
968 * restrictions on the uniqueness of 'name' values in a model.  This
969 * allows software applications leeway in assigning component identifiers.
970 <p>
971 * Regardless of the level and version of the SBML, these functions allow
972 * client applications to use more generalized code in some situations 
973 * (for instance, when manipulating objects that are all known to have 
974 * names).  If the object in question does not posess a 'name' attribute 
975 * according to the SBML specification for the Level and Version in use,
976 * libSBML will not allow the name to be set, nor will it read or 
977 * write 'name' attributes for those objects.
978 <p>
979 * <p>
980 * @return integer value indicating success/failure of the
981 * function.   The possible values
982 * returned by this function are:
983 * <ul>
984 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
985 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
986 *
987 * </ul> <p>
988 * @see #getName()
989 * @see #setName(String sid)
990 * @see #isSetName()
991   */ public
992 int unsetName() {
993    return libsbmlJNI.QualitativeSpecies_unsetName(swigCPtr, this);
994  }
995
996  
997/**
998   * Unsets the value of the 'initialLevel' attribute of this {@link QualitativeSpecies}.
999   <p>
1000   * <p>
1001 * @return integer value indicating success/failure of the
1002 * function.   The possible values
1003 * returned by this function are:
1004   * <ul>
1005   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
1006   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
1007   * </ul>
1008   */ public
1009 int unsetInitialLevel() {
1010    return libsbmlJNI.QualitativeSpecies_unsetInitialLevel(swigCPtr, this);
1011  }
1012
1013  
1014/**
1015   * Unsets the value of the 'maxLevel' attribute of this {@link QualitativeSpecies}.
1016   <p>
1017   * <p>
1018 * @return integer value indicating success/failure of the
1019 * function.   The possible values
1020 * returned by this function are:
1021   * <ul>
1022   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
1023   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
1024   * </ul>
1025   */ public
1026 int unsetMaxLevel() {
1027    return libsbmlJNI.QualitativeSpecies_unsetMaxLevel(swigCPtr, this);
1028  }
1029
1030  
1031/**
1032   * <p>
1033 * Replaces all uses of a given <code>SIdRef</code> type attribute value with another
1034 * value.
1035 <p>
1036 * <p>
1037 * In SBML, object identifiers are of a data type called <code>SId</code>.
1038 * In SBML Level&nbsp;3, an explicit data type called <code>SIdRef</code> was
1039 * introduced for attribute values that refer to <code>SId</code> values; in
1040 * previous Levels of SBML, this data type did not exist and attributes were
1041 * simply described to as 'referring to an identifier', but the effective
1042 * data type was the same as <code>SIdRef</code> in Level&nbsp;3.  These and
1043 * other methods of libSBML refer to the type <code>SIdRef</code> for all
1044 * Levels of SBML, even if the corresponding SBML specification did not
1045 * explicitly name the data type.
1046 <p>
1047 * This method works by looking at all attributes and (if appropriate)
1048 * mathematical formulas in MathML content, comparing the referenced
1049 * identifiers to the value of <code>oldid</code>.  If any matches are found, the
1050 * matching values are replaced with <code>newid</code>.  The method does <em>not</em>
1051 * descend into child elements.
1052 <p>
1053 * @param oldid the old identifier.
1054 * @param newid the new identifier.
1055   */ public
1056 void renameSIdRefs(String oldid, String newid) {
1057    libsbmlJNI.QualitativeSpecies_renameSIdRefs(swigCPtr, this, oldid, newid);
1058  }
1059
1060  
1061/**
1062   * Returns the XML name of this object.
1063   <p>
1064   * @return the name of this element.
1065   */ public
1066 String getElementName() {
1067    return libsbmlJNI.QualitativeSpecies_getElementName(swigCPtr, this);
1068  }
1069
1070  
1071/**
1072   * Returns the libSBML type code of this object instance.
1073   <p>
1074   * <p>
1075 * LibSBML attaches an identifying code to every kind of SBML object.  These
1076 * are integer constants known as <em>SBML type codes</em>.  The names of all
1077 * the codes begin with the characters <code>SBML_</code>.
1078 * In the Java language interface for libSBML, the
1079 * type codes are defined as static integer constants in the interface class
1080 * {@link libsbmlConstants}.    Note that different Level&nbsp;3
1081 * package plug-ins may use overlapping type codes; to identify the package
1082 * to which a given object belongs, call the <code>getPackageName()</code>
1083 * method on the object.
1084   <p>
1085   * @return the SBML type code for this object:
1086   * {@link libsbmlConstants#SBML_QUAL_QUALITATIVE_SPECIES SBML_QUAL_QUALITATIVE_SPECIES}
1087   <p>
1088   * <p>
1089 * @warning <span class='warning'>The specific integer values of the possible
1090 * type codes may be reused by different libSBML plug-ins for SBML Level&nbsp;3.
1091 * packages,  To fully identify the correct code, <strong>it is necessary to
1092 * invoke both getTypeCode() and getPackageName()</strong>.</span>
1093   <p>
1094   * @see #getElementName()
1095   * @see #getPackageName()
1096   */ public
1097 int getTypeCode() {
1098    return libsbmlJNI.QualitativeSpecies_getTypeCode(swigCPtr, this);
1099  }
1100
1101  
1102/**
1103   * Predicate returning <code>true</code> if all the required attributes
1104   * for this {@link QualitativeSpecies} object have been set.
1105   <p>
1106   * @note The required attributes for a {@link QualitativeSpecies} object are:
1107   * <ul>
1108   * <li> 'id'
1109   * <li> 'compartment'
1110   * <li> 'constant'
1111   *
1112   * </ul> <p>
1113   * @return a boolean value indicating whether all the required
1114   * attributes for this object have been defined.
1115   */ public
1116 boolean hasRequiredAttributes() {
1117    return libsbmlJNI.QualitativeSpecies_hasRequiredAttributes(swigCPtr, this);
1118  }
1119
1120  
1121/** * @internal */ public
1122 void enablePackageInternal(String pkgURI, String pkgPrefix, boolean flag) {
1123    libsbmlJNI.QualitativeSpecies_enablePackageInternal(swigCPtr, this, pkgURI, pkgPrefix, flag);
1124  }
1125
1126}