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 A MIRIAM-compliant controlled vocabulary term.
20  *
21  * @htmlinclude not-sbml-warning.html
22  *
23  * The SBML Level&nbsp;2 and Level&nbsp;3 specifications define a simple
24  * format for annotating models when (a) referring to controlled vocabulary
25  * terms and database identifiers that define and describe biological and
26  * biochemical entities, and (b) describing the creator of a model and the
27  * model's modification history.  This SBML format is a concrete syntax that
28  * conforms to the guidelines of MIRIAM (<a target='_blank'
29  * href='http://www.nature.com/nbt/journal/v23/n12/abs/nbt1156.html'>'Minimum
30  * Information Requested in the Annotation of biochemical Models'</a>,
31  * <i>Nature Biotechnology</i>, vol. 23, no. 12, Dec. 2005).  The format uses
32  * a subset of W3C RDF (<a target='_blank'
33  * href='http://www.w3.org/RDF/'>Resource Description Format</a>).  In order
34  * to help application developers work with annotations in this format,
35  * libSBML provides several helper classes that provide higher-level
36  * interfaces to the data elements; these classes include CVTerm,
37  * ModelCreator, ModelHistory, RDFAnnotationParser, and Date.
38  *
39  * @section annotation-parts Components of an SBML annotation
40  *
41  * The SBML annotation format consists of RDF-based content placed inside an
42  * <code>&lt;annotation&gt;</code> element attached to an SBML component such
43  * as Species, Compartment, etc.  A small change was introduced in SBML
44  * Level&nbsp;2 Version&nbsp;5 and SBML Level&nbsp;3 Version&nbsp;2 to permit
45  * nested annotations: lower Versions of the SBML specifications did not
46  * explicitly allow this.  We first describe the different parts of SBML
47  * annotations in XML form for SBML Level&nbsp;2 below Version&nbsp;5 and
48  * SBML Level&nbsp;3 below Version&nbsp;2:
49  *
50  <pre class='fragment'>
51  &lt;<span style='background-color: #bbb'>SBML_ELEMENT</span> <span style='background-color: #d0eed0'>+++</span> metaid=&quot;<span style='border-bottom: 1px solid black'>meta id</span>&quot; <span style='background-color: #d0eed0'>+++</span>&gt;
52    <span style='background-color: #d0eed0'>+++</span>
53    &lt;annotation&gt;
54      <span style='background-color: #d0eed0'>+++</span>
55      &lt;rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
56               xmlns:dcterm='http://purl.org/dc/terms/'
57               xmlns:vcard='http://www.w3.org/2001/vcard-rdf/3.0#'
58               xmlns:bqbiol='http://biomodels.net/biology-qualifiers/'
59               xmlns:bqmodel='http://biomodels.net/model-qualifiers/' &gt;
60        &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
61          <span style='background-color: #e0e0e0; border-bottom: 2px dotted #888'>HISTORY</span>
62          &lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
63            &lt;rdf:Bag&gt;
64              &lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>URI</span>&quot; /&gt;
65              <span style='background-color: #edd'>...</span>
66            &lt;/rdf:Bag&gt;
67          &lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
68          <span style='background-color: #edd'>...</span>
69        &lt;/rdf:Description&gt;
70        <span style='background-color: #d0eed0'>+++</span>
71      &lt;/rdf:RDF&gt;
72      <span style='background-color: #d0eed0'>+++</span>
73    &lt;/annotation&gt;
74    <span style='background-color: #d0eed0'>+++</span>
75  &lt;/<span style='background-color: #bbb'>SBML_ELEMENT</span>&gt;
76  </pre>
77  *
78  * In the template above, the placeholder
79  * <span class='code' style='background-color: #bbb'>SBML_ELEMENT</span> stands for
80  * the XML tag name of an SBML model component (e.g., <code>model</code>,
81  * <code>reaction</code>, etc.) and the placeholder
82  * <span class='code' style='border-bottom: 1px solid black'>meta id</span>
83  * stands for the element's meta identifier, which is a field available
84  * on all SBML components derived from the SBase base object class.
85  * The <span style='border-bottom: 2px dotted #888'>dotted</span>
86  * portions are optional, the symbol
87  * <span class='code' style='background-color: #d0eed0'>+++</span> is a placeholder
88  * for either no content or valid XML content that is not defined by
89  * this annotation scheme, and the ellipses
90  * <span class='code' style='background-color: #edd'>...</span>
91  * are placeholders for zero or more elements of the same form as the
92  * immediately preceding element.  The optional content
93  * <span class='code' style='background-color: #e0e0e0; border-bottom: 2px dotted #888'>HISTORY</span>
94  * is a creation and modification history; in libSBML, this is stored
95  * using ModelHistory objects.
96  *
97  * The placeholder <span class='code' style='background-color:
98  * #bbb'>RELATION_ELEMENT</span> refers to a BioModels.net qualifier element
99  * name.  This is an element in either the XML namespace
100  * <code>'http://biomodels.net/model-qualifiers'</code> (for model
101  * qualifiers) or <code>'http://biomodels.net/biology-qualifiers'</code> (for
102  * biological qualifier).  Note that these namespace URIs are only labels,
103  * and not actual Web locations, which means you cannot visit an address such
104  * as <code>'http://biomodels.net/model-qualifiers'</code> in your browser or
105  * try to have your application access it.  @if clike Refer instead to the enumerations
106  * #ModelQualifierType_t and #BiolQualifierType_t for a list of the available
107  * relationship elements that can be used for <span class='code'
108  * style='background-color: #bbb'>RELATION_ELEMENT</span>.@endif
109  *
110  * The <span class='code' style='background-color: #d0d0ee'>URI</span> is a
111  * required data value that uniquely identifies a resource and data within
112  * that resource to which the annotation refers.  Again, being URIs, these do
113  * not refer to physical Web locations; nevertheless, applications will often
114  * want a means of finding the resource to which a given <span class='code'
115  * style='background-color: #d0d0ee'>URI</span> refers.  Providing the
116  * facilities for this task is the purpose of MIRIAM Resources, described in
117  * detail online at <a target='_blank'
118  * href='http://biomodels.net/miriam'>http://biomodels.net/miriam</a>) and
119  * also in the paper <a target='_blank'
120  * href='http://www.biomedcentral.com/1752-0509/1/58'>'MIRIAM Resources: tools to generate and
121  * resolve robust cross-references in Systems Biology'</a>, <i>BMC Systems
122  * Biology</i>, 58(1), 2007.
123  *
124  * Finally, the following is the same template as above, but this time
125  * showing the nested content permitted by the most recent SBML
126  * specifications (SBML Level&nbsp;2 Version&nbsp;5 and Level&nbsp;3
127  * Version&nbsp;2):
128  <pre class='fragment'>
129  &lt;<span style='background-color: #bbb'>SBML_ELEMENT</span> <span style='background-color: #d0eed0'>+++</span> metaid=&quot;<span style='border-bottom: 1px solid black'>meta id</span>&quot; <span style='background-color: #d0eed0'>+++</span>&gt;
130    <span style='background-color: #d0eed0'>+++</span>
131    &lt;annotation&gt;
132      <span style='background-color: #d0eed0'>+++</span>
133      &lt;rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
134               xmlns:dcterm='http://purl.org/dc/terms/'
135               xmlns:vcard='http://www.w3.org/2001/vcard-rdf/3.0#'
136               xmlns:bqbiol='http://biomodels.net/biology-qualifiers/'
137               xmlns:bqmodel='http://biomodels.net/model-qualifiers/' &gt;
138        &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
139          <span style='background-color: #e0e0e0; border-bottom: 2px dotted #888'>HISTORY</span>
140          &lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
141            &lt;rdf:Bag&gt;
142              &lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>URI</span>&quot; /&gt;
143              <span style='background-color: #fef'>NESTED_CONTENT</span>
144              <span style='background-color: #edd'>...</span>
145            &lt;/rdf:Bag&gt;
146          &lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
147          <span style='background-color: #edd'>...</span>
148        &lt;/rdf:Description&gt;
149        <span style='background-color: #d0eed0'>+++</span>
150      &lt;/rdf:RDF&gt;
151      <span style='background-color: #d0eed0'>+++</span>
152    &lt;/annotation&gt;
153    <span style='background-color: #d0eed0'>+++</span>
154  &lt;/<span style='background-color: #bbb'>SBML_ELEMENT</span>&gt;
155  </pre>
156  *
157  * The placeholder
158  * <span class='code' style='background-color: #fef'>NESTED_CONTENT</span>
159  * refers to other optional RDF elements such as
160  * <code>'bqbiol:isDescribedBy'</code> that describe a clarification or
161  * another annotation about the
162  * <span class='code' style='background-color: #bbb'>RELATION_ELEMENT</span>
163  * in which it appears.  Nested content allows one to, for example, describe
164  * protein modifications on species, or to add evidence codes for an
165  * annotation.  Nested content relates to its containing
166  * <span class='code' style='background-color: #bbb'>RELATION_ELEMENT</span>,
167  * not the other way around.  It qualifies it, but does not change its
168  * meaning.  As such, ignoring a
169  * <span class='code' style='background-color: #fef'>NESTED_CONTENT</span>
170  * does not affect the information provided by the containing
171  * <span class='code' style='background-color: #bbb'>RELATION_ELEMENT</span>.
172  *
173  * For more information about SBML annotations in general, please refer to
174  * Section&nbsp;6 in the SBML Level&nbsp;2 (Versions 2&ndash;4) or
175  * Level&nbsp;3 specification documents.
176  *
177  * @section cvterm-parts The parts of a CVTerm
178  *
179  * Annotations that refer to controlled vocabularies are managed in libSBML
180  * using CVTerm objects.  The relation-resource pairs discussed in the
181  * previous section are the 'controlled vocabulary' terms that CVTerm is
182  * designed to store and manipulate.  A set of RDF-based annotations attached
183  * to a given SBML <code>&lt;annotation&gt;</code> element are read by
184  * RDFAnnotationParser and converted into a list of these CVTerm objects.
185  * Each CVTerm object instance stores the following components of an
186  * annotation:
187  *
188  * <ul>
189  *
190  * <li>The @em qualifier, which can be a BioModels.net 'biological
191  * qualifier', a BioModels.net 'model qualifier', or an unknown qualifier
192  * (as far as the CVTerm class is concerned).  Qualifiers are used in
193  * MIRIAM to indicate the nature of the relationship between the object
194  * being annotated and the resource.  In CVTerm, the qualifiers can be
195  * manipulated using the methods CVTerm::getQualifierType(),
196  * CVTerm::setQualifierType(@if java int@endif), and related methods.
197  *
198  * <li>The @em resource, represented by a URI (which, we must remind
199  * developers, is not the same as a URL).  In the CVTerm class, the
200  * resource component can be manipulated using the methods
201  * CVTerm::addResource(@if java String@endif) and
202  * CVTerm::removeResource(@if java String@endif).
203  *
204  * </ul>
205  *
206  * Note that a CVTerm contains a single qualifier, but possibly more than
207  * one resource.  This corresponds to the possibility of an annotation that
208  * points to multiple resources, all of which are qualified by the same
209  * BioModels.net qualifier.  The CVTerm object class supports this by
210  * supporting a list of resources.
211  *
212  * Detailed explanations of the qualifiers defined by BioModels.net can be
213  * found at <a target='_blank'
214  * href='http://co.mbine.org/standards/qualifiers'>http://co.mbine.org/standards/qualifiers</a>.
215  */
216 
217 public class CVTerm : global::System.IDisposable {
218 	private HandleRef swigCPtr;
219 	protected bool swigCMemOwn;
220 
CVTerm(IntPtr cPtr, bool cMemoryOwn)221 	internal CVTerm(IntPtr cPtr, bool cMemoryOwn)
222 	{
223 		swigCMemOwn = cMemoryOwn;
224 		swigCPtr    = new HandleRef(this, cPtr);
225 	}
226 
getCPtr(CVTerm obj)227 	internal static HandleRef getCPtr(CVTerm obj)
228 	{
229 		return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
230 	}
231 
getCPtrAndDisown(CVTerm obj)232 	internal static HandleRef getCPtrAndDisown (CVTerm obj)
233 	{
234 		HandleRef ptr = new HandleRef(null, IntPtr.Zero);
235 
236 		if (obj != null)
237 		{
238 			ptr             = obj.swigCPtr;
239 			obj.swigCMemOwn = false;
240 		}
241 
242 		return ptr;
243 	}
244 
~CVTerm()245   ~CVTerm() {
246     Dispose(false);
247   }
248 
Dispose()249   public void Dispose() {
250     Dispose(true);
251     global::System.GC.SuppressFinalize(this);
252   }
253 
Dispose(bool disposing)254   protected virtual void Dispose(bool disposing) {
255     lock(this) {
256       if (swigCPtr.Handle != global::System.IntPtr.Zero) {
257         if (swigCMemOwn) {
258           swigCMemOwn = false;
259           libsbmlPINVOKE.delete_CVTerm(swigCPtr);
260         }
261         swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
262       }
263     }
264   }
265 
operator ==(CVTerm lhs, CVTerm rhs)266   public static bool operator==(CVTerm lhs, CVTerm rhs)
267   {
268     if((Object)lhs == (Object)rhs)
269     {
270       return true;
271     }
272 
273     if( ((Object)lhs == null) || ((Object)rhs == null) )
274     {
275       return false;
276     }
277 
278     return (getCPtr(lhs).Handle.ToString() == getCPtr(rhs).Handle.ToString());
279   }
280 
operator !=(CVTerm lhs, CVTerm rhs)281   public static bool operator!=(CVTerm lhs, CVTerm rhs)
282   {
283     return !(lhs == rhs);
284   }
285 
Equals(Object sb)286   public override bool Equals(Object sb)
287   {
288     if ( ! (sb is CVTerm) )
289     {
290       return false;
291     }
292 
293     return this == (CVTerm)sb;
294   }
295 
GetHashCode()296   public override int GetHashCode()
297   {
298     return swigCPtr.Handle.ToInt32();
299   }
300 
301 
302 /**
303    * Creates an empty CVTerm, optionally with the given
304    * @if clike #QualifierType_t value@else qualifier@endif @p type .
305    *
306    *
307  *
308  * The SBML Level&nbsp;2 and Level&nbsp;3 specifications define a simple
309  * format for annotating models when (a) referring to controlled
310  * vocabulary terms and database identifiers that define and describe
311  * biological and other entities, and (b) describing the creator of a
312  * model and the model's modification history.  The annotation content is
313  * stored in <code>&lt;annotation&gt;</code> elements attached to
314  * individual SBML elements.  The format for storing the content inside
315  * SBML <code>&lt;annotation&gt;</code> elements is a subset of W3C RDF
316  * (<a target='_blank' href='http://www.w3.org/RDF/'>Resource Description
317  * Format</a>) expressed in XML.  The CVTerm class provides a programming
318  * interface for working directly with controlled vocabulary term ('CV
319  * term') objects without having to deal directly with the XML form.
320  * When libSBML reads in an SBML model containing RDF annotations, it
321  * parses those annotations into a list of CVTerm objects, and when
322  * writing a model, it parses the CVTerm objects back into the
323  * appropriate SBML <code>&lt;annotation&gt;</code> structure.
324  *
325  *
326    *
327    * This method creates an empty CVTerm object.  The possible qualifier
328    * types usable as values of @p type are @link libsbml#MODEL_QUALIFIER MODEL_QUALIFIER@endlink and @link libsbml#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER@endlink.  If an explicit value for @p type is not given, this
329    * method defaults to using @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER@endlink.  The @if clike #QualifierType_t value@else qualifier
330    * type@endif can be set later using the
331    * CVTerm::setQualifierType(@if java int@endif) method.
332    *
333    * Different BioModels.net qualifier elements encode different types of
334    * relationships.  Please refer to the SBML specification or the <a
335    * target='_blank' href='http://co.mbine.org/standards/qualifiers/'>BioModels.net
336    * qualifiers web page</a> for an explanation of the meaning of these
337    * different qualifiers.
338    *
339    * @param type a @if clike #QualifierType_t value@else qualifier type@endif.
340    *
341    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif
342    */ public
CVTerm(int type)343  CVTerm(int type) : this(libsbmlPINVOKE.new_CVTerm__SWIG_0(type), true) {
344   }
345 
346 
347 /**
348    * Creates an empty CVTerm, optionally with the given
349    * @if clike #QualifierType_t value@else qualifier@endif @p type .
350    *
351    *
352  *
353  * The SBML Level&nbsp;2 and Level&nbsp;3 specifications define a simple
354  * format for annotating models when (a) referring to controlled
355  * vocabulary terms and database identifiers that define and describe
356  * biological and other entities, and (b) describing the creator of a
357  * model and the model's modification history.  The annotation content is
358  * stored in <code>&lt;annotation&gt;</code> elements attached to
359  * individual SBML elements.  The format for storing the content inside
360  * SBML <code>&lt;annotation&gt;</code> elements is a subset of W3C RDF
361  * (<a target='_blank' href='http://www.w3.org/RDF/'>Resource Description
362  * Format</a>) expressed in XML.  The CVTerm class provides a programming
363  * interface for working directly with controlled vocabulary term ('CV
364  * term') objects without having to deal directly with the XML form.
365  * When libSBML reads in an SBML model containing RDF annotations, it
366  * parses those annotations into a list of CVTerm objects, and when
367  * writing a model, it parses the CVTerm objects back into the
368  * appropriate SBML <code>&lt;annotation&gt;</code> structure.
369  *
370  *
371    *
372    * This method creates an empty CVTerm object.  The possible qualifier
373    * types usable as values of @p type are @link libsbml#MODEL_QUALIFIER MODEL_QUALIFIER@endlink and @link libsbml#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER@endlink.  If an explicit value for @p type is not given, this
374    * method defaults to using @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER@endlink.  The @if clike #QualifierType_t value@else qualifier
375    * type@endif can be set later using the
376    * CVTerm::setQualifierType(@if java int@endif) method.
377    *
378    * Different BioModels.net qualifier elements encode different types of
379    * relationships.  Please refer to the SBML specification or the <a
380    * target='_blank' href='http://co.mbine.org/standards/qualifiers/'>BioModels.net
381    * qualifiers web page</a> for an explanation of the meaning of these
382    * different qualifiers.
383    *
384    * @param type a @if clike #QualifierType_t value@else qualifier type@endif.
385    *
386    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif
387    */ public
CVTerm()388  CVTerm() : this(libsbmlPINVOKE.new_CVTerm__SWIG_1(), true) {
389   }
390 
391 
392 /**
393    * Creates a new CVTerm from the given XMLNode.
394    *
395    *
396  *
397  * The SBML Level&nbsp;2 and Level&nbsp;3 specifications define a simple
398  * format for annotating models when (a) referring to controlled
399  * vocabulary terms and database identifiers that define and describe
400  * biological and other entities, and (b) describing the creator of a
401  * model and the model's modification history.  The annotation content is
402  * stored in <code>&lt;annotation&gt;</code> elements attached to
403  * individual SBML elements.  The format for storing the content inside
404  * SBML <code>&lt;annotation&gt;</code> elements is a subset of W3C RDF
405  * (<a target='_blank' href='http://www.w3.org/RDF/'>Resource Description
406  * Format</a>) expressed in XML.  The CVTerm class provides a programming
407  * interface for working directly with controlled vocabulary term ('CV
408  * term') objects without having to deal directly with the XML form.
409  * When libSBML reads in an SBML model containing RDF annotations, it
410  * parses those annotations into a list of CVTerm objects, and when
411  * writing a model, it parses the CVTerm objects back into the
412  * appropriate SBML <code>&lt;annotation&gt;</code> structure.
413  *
414  *
415    *
416    * This method creates a CVTerm object from the given XMLNode object @p
417    * node.  XMLNode is libSBML's representation of a node in an XML tree of
418    * elements, and each such element can be placed in a namespace.  This
419    * constructor looks for the element to be in the XML namespaces
420    * <code>'http://biomodels.net/model-qualifiers'</code> (for
421    * model qualifiers) and
422    * <code>'http://biomodels.net/biology-qualifiers'</code> (for
423    * biological qualifier), and if they are, creates CVTerm objects for
424    * the result.
425    *
426    * @param node an %XMLNode representing a CVTerm.
427    *
428    * @note This method assumes that the given XMLNode object @p node is of
429    * the correct structural form.
430    */ public
CVTerm(XMLNode node)431  CVTerm(XMLNode node) : this(libsbmlPINVOKE.new_CVTerm__SWIG_2(XMLNode.getCPtr(node)), true) {
432     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
433   }
434 
435 
436 /**
437    * Copy constructor; creates a copy of a CVTerm object.
438    *
439    * @param orig the CVTerm instance to copy.
440    */ public
CVTerm(CVTerm orig)441  CVTerm(CVTerm orig) : this(libsbmlPINVOKE.new_CVTerm__SWIG_3(CVTerm.getCPtr(orig)), true) {
442     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
443   }
444 
445 
446 /**
447    * Creates and returns a deep copy of this CVTerm object.
448    *
449    * @return the (deep) copy of this CVTerm object.
450    */ public
clone()451  CVTerm clone() {
452     global::System.IntPtr cPtr = libsbmlPINVOKE.CVTerm_clone(swigCPtr);
453     CVTerm ret = (cPtr == global::System.IntPtr.Zero) ? null : new CVTerm(cPtr, true);
454     return ret;
455   }
456 
457 
458 /**
459    * Returns the qualifier type of this CVTerm object.
460    *
461    *
462  *
463  * The RDF element used in the SBML format for referring to external entities
464  * is <code>&lt;rdf:Description&gt;</code>, with a
465  * <code>&lt;rdf:Bag&gt;</code> element inside of it containing one or more
466  * <code>&lt;rdf:li&gt;</code> elements.  The following template illustrates
467  * the structure:
468  * <pre class='fragment'>
469  * &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
470  * &nbsp;&nbsp;<span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span>
471  * &nbsp;&nbsp;&lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
472  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:Bag&gt;
473  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>resource URI</span>&quot; /&gt;
474  * &nbsp;&nbsp;&nbsp;&nbsp;<span style='background-color: #edd'>...</span>
475  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/rdf:Bag&gt;
476  * &nbsp;&nbsp;&lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
477  * &nbsp;&nbsp;<span style='background-color: #edd'>...</span>
478  * &lt;/rdf:Description&gt;
479  * </pre>
480  * In the template above, the placeholder <span class='code'
481  * style='border-bottom: 1px solid black'>meta id</span> stands for the
482  * element's meta identifier, which is a field available on all SBML
483  * components derived from the SBase base object class.  The <span
484  * style='border-bottom: 2px dotted #888'>dotted</span> portions are
485  * optional, and the ellipses <span class='code' style='background-color:
486  * #edd'>...</span> are placeholders for zero or more elements of the same
487  * form as the immediately preceding element.
488  *
489    *
490    * The placeholder <span class='code' style='background-color: #bbb'>
491    * RELATION_ELEMENT</span> refers to a BioModels.net qualifier
492    * element name.  This is an element in either the XML namespace
493    * <code>'http://biomodels.net/model-qualifiers'</code> (for model
494    * qualifiers) or <code>'http://biomodels.net/biology-qualifiers'</code>
495    * (for biological qualifier).  The present method returns a code
496    * identifying which one of these two relationship namespaces is being
497    * used; any other qualifier in libSBML is considered unknown (as far as
498    * the CVTerm class is concerned).  Consequently, this method will return
499    * one of the following values:
500    *
501    * @li @link libsbml#MODEL_QUALIFIER MODEL_QUALIFIER@endlink
502    * @li @link libsbml#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER@endlink
503    * @li @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER@endlink
504    *
505    * The specific relationship of this CVTerm to the enclosing SBML object
506    * can be determined using the CVTerm methods such as
507    * CVTerm::getModelQualifierType() and
508    * CVTerm::getBiologicalQualifierType().  Callers will typically want to
509    * use the present method to find out which one of the @em other two
510    * methods to call to find out the specific relationship.
511    *
512    * @return the @if clike #QualifierType_t value@else qualifier type@endif
513    * of this object or @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER@endlink
514    * (the default).
515    *
516    * @see getResources()
517    * @see getModelQualifierType()
518    * @see getBiologicalQualifierType()
519    */ public
getQualifierType()520  int getQualifierType() {
521     int ret = libsbmlPINVOKE.CVTerm_getQualifierType__SWIG_0(swigCPtr);
522     return ret;
523   }
524 
525 
526 /**
527    * Returns the model qualifier type of this CVTerm object.
528    *
529    *
530  *
531  * The RDF element used in the SBML format for referring to external entities
532  * is <code>&lt;rdf:Description&gt;</code>, with a
533  * <code>&lt;rdf:Bag&gt;</code> element inside of it containing one or more
534  * <code>&lt;rdf:li&gt;</code> elements.  The following template illustrates
535  * the structure:
536  * <pre class='fragment'>
537  * &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
538  * &nbsp;&nbsp;<span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span>
539  * &nbsp;&nbsp;&lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
540  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:Bag&gt;
541  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>resource URI</span>&quot; /&gt;
542  * &nbsp;&nbsp;&nbsp;&nbsp;<span style='background-color: #edd'>...</span>
543  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/rdf:Bag&gt;
544  * &nbsp;&nbsp;&lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
545  * &nbsp;&nbsp;<span style='background-color: #edd'>...</span>
546  * &lt;/rdf:Description&gt;
547  * </pre>
548  * In the template above, the placeholder <span class='code'
549  * style='border-bottom: 1px solid black'>meta id</span> stands for the
550  * element's meta identifier, which is a field available on all SBML
551  * components derived from the SBase base object class.  The <span
552  * style='border-bottom: 2px dotted #888'>dotted</span> portions are
553  * optional, and the ellipses <span class='code' style='background-color:
554  * #edd'>...</span> are placeholders for zero or more elements of the same
555  * form as the immediately preceding element.
556  *
557    *
558    * The placeholder <span class='code' style='background-color: #bbb'>
559    * RELATION_ELEMENT</span> refers to a BioModels.net qualifier
560    * element name.  This is an element in either the XML namespace
561    * <code>'http://biomodels.net/model-qualifiers'</code> (for model
562    * qualifiers) or <code>'http://biomodels.net/biology-qualifiers'</code>
563    * (for biological qualifier).  Callers will typically use
564    * CVTerm::getQualifierType() to find out the type of qualifier relevant to this
565    * particular CVTerm object, then if it is a @em model qualifier, use the
566    * present method to determine the specific qualifier.
567    *
568    * Annotations with model qualifiers express a relationship between an
569    * annotation resource and the <em>modeling concept</em> represented by a
570    * given object in the model.  The diagram below illustrates the
571    * relationship in this case:
572    *
573    * @image html model-qualifiers.png 'Relationship expressed by model qualifiers'
574    * @image latex model-qualifiers.png 'Relationship expressed by model qualifiers'
575    *
576    * <br> The set of known model qualifiers is, at the time of this libSBML
577    * release, the following:
578    *
579    * @li @link libsbml#BQM_IS BQM_IS@endlink
580    * @li @link libsbml#BQM_IS_DESCRIBED_BY BQM_IS_DESCRIBED_BY@endlink
581    * @li @link libsbml#BQM_IS_DERIVED_FROM BQM_IS_DERIVED_FROM@endlink
582    * @li @link libsbml#BQM_IS_INSTANCE_OF BQM_IS_INSTANCE_OF@endlink
583    * @li @link libsbml#BQM_HAS_INSTANCE BQM_HAS_INSTANCE@endlink
584    *
585    * Any other BioModels.net qualifier found in the model is considered
586    * unknown by libSBML and reported as
587    * @link libsbml#BQM_UNKNOWN BQM_UNKNOWN@endlink.
588    *
589    * @return the @if clike #ModelQualifierType_t value@else model qualifier type@endif
590    * of this object or @link libsbml#BQM_UNKNOWN BQM_UNKNOWN@endlink
591    * (the default).
592    */ public
getModelQualifierType()593  int getModelQualifierType() {
594     int ret = libsbmlPINVOKE.CVTerm_getModelQualifierType__SWIG_0(swigCPtr);
595     return ret;
596   }
597 
598 
599 /**
600    * Returns the biological qualifier type of this CVTerm object.
601    *
602    *
603  *
604  * The RDF element used in the SBML format for referring to external entities
605  * is <code>&lt;rdf:Description&gt;</code>, with a
606  * <code>&lt;rdf:Bag&gt;</code> element inside of it containing one or more
607  * <code>&lt;rdf:li&gt;</code> elements.  The following template illustrates
608  * the structure:
609  * <pre class='fragment'>
610  * &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
611  * &nbsp;&nbsp;<span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span>
612  * &nbsp;&nbsp;&lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
613  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:Bag&gt;
614  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>resource URI</span>&quot; /&gt;
615  * &nbsp;&nbsp;&nbsp;&nbsp;<span style='background-color: #edd'>...</span>
616  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/rdf:Bag&gt;
617  * &nbsp;&nbsp;&lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
618  * &nbsp;&nbsp;<span style='background-color: #edd'>...</span>
619  * &lt;/rdf:Description&gt;
620  * </pre>
621  * In the template above, the placeholder <span class='code'
622  * style='border-bottom: 1px solid black'>meta id</span> stands for the
623  * element's meta identifier, which is a field available on all SBML
624  * components derived from the SBase base object class.  The <span
625  * style='border-bottom: 2px dotted #888'>dotted</span> portions are
626  * optional, and the ellipses <span class='code' style='background-color:
627  * #edd'>...</span> are placeholders for zero or more elements of the same
628  * form as the immediately preceding element.
629  *
630    *
631    * The placeholder <span class='code' style='background-color: #bbb'>
632    * RELATION_ELEMENT</span> refers to a BioModels.net qualifier element
633    * name.  This is an element in either the XML namespace
634    * <code>'http://biomodels.net/model-qualifiers'</code> (for model
635    * qualifiers) or <code>'http://biomodels.net/biology-qualifiers'</code>
636    * (for biological qualifier).  Callers will typically use
637    * CVTerm::getQualifierType() to find out the type of qualifier relevant to
638    * this particular CVTerm object, then if it is a @em biological qualifier,
639    * use the present method to determine the specific qualifier.
640    *
641    * Annotations with biological qualifiers express a relationship between an
642    * annotation resource and the <em>biological concept</em> represented by a
643    * given object in the model.    The diagram
644    * below illustrates the relationship in this case:
645    *
646    * @image html biology-qualifiers.png 'Relationship expressed by biological qualifiers'
647    * @image latex biology-qualifiers.png 'Relationship expressed by biological qualifiers'
648    *
649    * <br> The set of known biological qualifiers is, at the time of this
650    * libSBML release, the following:
651    *
652    * @li @link libsbml#BQB_IS BQB_IS@endlink
653    * @li @link libsbml#BQB_HAS_PART BQB_HAS_PART@endlink
654    * @li @link libsbml#BQB_IS_PART_OF BQB_IS_PART_OF@endlink
655    * @li @link libsbml#BQB_IS_VERSION_OF BQB_IS_VERSION_OF@endlink
656    * @li @link libsbml#BQB_HAS_VERSION BQB_HAS_VERSION@endlink
657    * @li @link libsbml#BQB_IS_HOMOLOG_TO BQB_IS_HOMOLOG_TO@endlink
658    * @li @link libsbml#BQB_IS_DESCRIBED_BY BQB_IS_DESCRIBED_BY@endlink
659    * @li @link libsbml#BQB_IS_ENCODED_BY BQB_IS_ENCODED_BY@endlink
660    * @li @link libsbml#BQB_ENCODES BQB_ENCODES@endlink
661    * @li @link libsbml#BQB_OCCURS_IN BQB_OCCURS_IN@endlink
662    * @li @link libsbml#BQB_HAS_PROPERTY BQB_HAS_PROPERTY@endlink
663    * @li @link libsbml#BQB_IS_PROPERTY_OF BQB_IS_PROPERTY_OF@endlink
664    * @li @link libsbml#BQB_HAS_TAXON BQB_HAS_TAXON@endlink
665    *
666    * Any other BioModels.net qualifier found in the model is considered
667    * unknown by libSBML and reported as
668    * @link libsbml#BQB_UNKNOWN BQB_UNKNOWN@endlink.
669    *
670    * @return the @if clike #BiolQualifierType_t value@else biology qualifier type@endif
671    * of this object or @link libsbml#BQB_UNKNOWN BQB_UNKNOWN@endlink
672    * (the default).
673    */ public
getBiologicalQualifierType()674  int getBiologicalQualifierType() {
675     int ret = libsbmlPINVOKE.CVTerm_getBiologicalQualifierType__SWIG_0(swigCPtr);
676     return ret;
677   }
678 
679 
680 /**
681    * Returns the resource references for this CVTerm object.
682    *
683    *
684  *
685  * The RDF element used in the SBML format for referring to external entities
686  * is <code>&lt;rdf:Description&gt;</code>, with a
687  * <code>&lt;rdf:Bag&gt;</code> element inside of it containing one or more
688  * <code>&lt;rdf:li&gt;</code> elements.  The following template illustrates
689  * the structure:
690  * <pre class='fragment'>
691  * &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
692  * &nbsp;&nbsp;<span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span>
693  * &nbsp;&nbsp;&lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
694  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:Bag&gt;
695  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>resource URI</span>&quot; /&gt;
696  * &nbsp;&nbsp;&nbsp;&nbsp;<span style='background-color: #edd'>...</span>
697  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/rdf:Bag&gt;
698  * &nbsp;&nbsp;&lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
699  * &nbsp;&nbsp;<span style='background-color: #edd'>...</span>
700  * &lt;/rdf:Description&gt;
701  * </pre>
702  * In the template above, the placeholder <span class='code'
703  * style='border-bottom: 1px solid black'>meta id</span> stands for the
704  * element's meta identifier, which is a field available on all SBML
705  * components derived from the SBase base object class.  The <span
706  * style='border-bottom: 2px dotted #888'>dotted</span> portions are
707  * optional, and the ellipses <span class='code' style='background-color:
708  * #edd'>...</span> are placeholders for zero or more elements of the same
709  * form as the immediately preceding element.
710  *
711    *
712    * The <span class='code' style='background-color: #d0d0ee'>resource
713    * URI</span> values shown in the template above are stored internally in
714    * CVTerm objects using an XMLAttributes object.  Each attribute stored
715    * inside the XMLAttributes will have the same name (specifically,
716    * &quot;<code>rdf:resource</code>&quot;) but a different value, and the
717    * value will be a <span class='code' style='background-color: #d0d0ee'>
718    * resource URI</span> shown in the XML template above.
719    *
720    * A valid CVTerm entity must always have at least one resource and
721    * a value for the relationship qualifier.
722    *
723    * @return the XMLAttributes that store the resources of this CVTerm.
724    *
725    * @see getQualifierType()
726    * @see addResource(string resource)
727    * @see getResourceURI(unsigned int n)
728    */ public
getResources()729  XMLAttributes getResources() {
730     global::System.IntPtr cPtr = libsbmlPINVOKE.CVTerm_getResources__SWIG_0(swigCPtr);
731     XMLAttributes ret = (cPtr == global::System.IntPtr.Zero) ? null : new XMLAttributes(cPtr, false);
732     return ret;
733   }
734 
735 
736 /**
737    * Returns the number of resources for this CVTerm object.
738    *
739    *
740  *
741  * The RDF element used in the SBML format for referring to external entities
742  * is <code>&lt;rdf:Description&gt;</code>, with a
743  * <code>&lt;rdf:Bag&gt;</code> element inside of it containing one or more
744  * <code>&lt;rdf:li&gt;</code> elements.  The following template illustrates
745  * the structure:
746  * <pre class='fragment'>
747  * &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
748  * &nbsp;&nbsp;<span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span>
749  * &nbsp;&nbsp;&lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
750  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:Bag&gt;
751  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>resource URI</span>&quot; /&gt;
752  * &nbsp;&nbsp;&nbsp;&nbsp;<span style='background-color: #edd'>...</span>
753  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/rdf:Bag&gt;
754  * &nbsp;&nbsp;&lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
755  * &nbsp;&nbsp;<span style='background-color: #edd'>...</span>
756  * &lt;/rdf:Description&gt;
757  * </pre>
758  * In the template above, the placeholder <span class='code'
759  * style='border-bottom: 1px solid black'>meta id</span> stands for the
760  * element's meta identifier, which is a field available on all SBML
761  * components derived from the SBase base object class.  The <span
762  * style='border-bottom: 2px dotted #888'>dotted</span> portions are
763  * optional, and the ellipses <span class='code' style='background-color:
764  * #edd'>...</span> are placeholders for zero or more elements of the same
765  * form as the immediately preceding element.
766  *
767    *
768    * The fragment above illustrates that there can be more than one
769    * resource referenced by a given relationship annotation (i.e., the
770    * <span class='code' style='background-color: #d0d0ee'>resource
771    * URI</span> values associated with a particular <span class='code'
772    * style='background-color: #bbb'>RELATION_ELEMENT</span>).  The present
773    * method returns a count of the resources stored in this CVTerm object.
774    *
775    * @return the number of resources in the set of XMLAttributes
776    * of this CVTerm.
777    *
778    * @see getResources()
779    * @see getResourceURI(unsigned int n)
780    */ public
getNumResources()781  long getNumResources() { return (long)libsbmlPINVOKE.CVTerm_getNumResources__SWIG_0(swigCPtr); }
782 
783 
784 /**
785    * Returns the value of the <em>n</em>th resource for this CVTerm object.
786    *
787    *
788  *
789  * The RDF element used in the SBML format for referring to external entities
790  * is <code>&lt;rdf:Description&gt;</code>, with a
791  * <code>&lt;rdf:Bag&gt;</code> element inside of it containing one or more
792  * <code>&lt;rdf:li&gt;</code> elements.  The following template illustrates
793  * the structure:
794  * <pre class='fragment'>
795  * &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
796  * &nbsp;&nbsp;<span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span>
797  * &nbsp;&nbsp;&lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
798  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:Bag&gt;
799  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>resource URI</span>&quot; /&gt;
800  * &nbsp;&nbsp;&nbsp;&nbsp;<span style='background-color: #edd'>...</span>
801  * &nbsp;&nbsp;&nbsp;&nbsp;&lt;/rdf:Bag&gt;
802  * &nbsp;&nbsp;&lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
803  * &nbsp;&nbsp;<span style='background-color: #edd'>...</span>
804  * &lt;/rdf:Description&gt;
805  * </pre>
806  * In the template above, the placeholder <span class='code'
807  * style='border-bottom: 1px solid black'>meta id</span> stands for the
808  * element's meta identifier, which is a field available on all SBML
809  * components derived from the SBase base object class.  The <span
810  * style='border-bottom: 2px dotted #888'>dotted</span> portions are
811  * optional, and the ellipses <span class='code' style='background-color:
812  * #edd'>...</span> are placeholders for zero or more elements of the same
813  * form as the immediately preceding element.
814  *
815    *
816    * The fragment above illustrates that there can be more than one resource
817    * referenced by a given relationship annotation (i.e., the <span
818    * class='code' style='background-color: #d0d0ee'>resource URI</span>
819    * values associated with a particular <span class='code'
820    * style='background-color: #bbb'>RELATION_ELEMENT</span>).  LibSBML stores
821    * all resource URIs in a single CVTerm object for a given relationship.
822    * Callers can use CVTerm::getNumResources() to find out how many resources
823    * are stored in this CVTerm object, then call this method to retrieve the
824    * <em>n</em>th resource URI.
825    *
826    * @param n the index of the resource to query.
827    *
828    * @return string representing the value of the nth resource
829    * in the set of XMLAttributes of this CVTerm.
830    *
831    * @see getNumResources()
832    * @see getQualifierType()
833    */ public
getResourceURI(long n)834  string getResourceURI(long n) {
835     string ret = libsbmlPINVOKE.CVTerm_getResourceURI__SWIG_0(swigCPtr, n);
836     return ret;
837   }
838 
839 
840 /**
841    * Sets the @if clike #QualifierType_t@else qualifier code@endif of this
842    * CVTerm object.
843    *
844    * @param type the @if clike #QualifierType_t value@else qualifier type@endif.
845    *
846    *
847  * @return integer value indicating success/failure of the
848  * function.  @if clike The value is drawn from the
849  * enumeration #OperationReturnValues_t. @endif This particular
850  * function only does one thing irrespective of user input or
851  * object state, and thus will only return a single value:
852  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
853    *
854    * @see getQualifierType()
855    */ public
setQualifierType(int type)856  int setQualifierType(int type) {
857     int ret = libsbmlPINVOKE.CVTerm_setQualifierType(swigCPtr, type);
858     return ret;
859   }
860 
861 
862 /**
863    * Sets the @if clike #ModelQualifierType_t value@else model qualifier type@endif
864    * of this CVTerm object.
865    *
866    * @param type the @if clike #ModelQualifierType_t value@else model qualifier type@endif.
867    *
868    *
869  * @return integer value indicating success/failure of the
870  * function.  @if clike The value is drawn from the
871  * enumeration #OperationReturnValues_t. @endif The possible values
872  * returned by this function are:
873  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
874    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
875    *
876    * @note If the @if clike #QualifierType_t value@else qualifier type@endif of this object is not
877    * @link libsbml#MODEL_QUALIFIER MODEL_QUALIFIER@endlink, then the
878    * then the @if clike #ModelQualifierType_t value@else model qualifier type@endif
879    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN@endlink.
880    *
881    * @see getQualifierType()
882    * @see setQualifierType(@if java int@endif)
883    */ public
setModelQualifierType(int type)884  int setModelQualifierType(int type) {
885     int ret = libsbmlPINVOKE.CVTerm_setModelQualifierType__SWIG_0(swigCPtr, type);
886     return ret;
887   }
888 
889 
890 /**
891    * Sets the @if clike #BiolQualifierType_t value@else biology qualifier
892    * type@endif of this CVTerm object.
893    *
894    * @param type the @if clike #BiolQualifierType_t value@else biology
895    * qualifier type@endif.
896    *
897    *
898  * @return integer value indicating success/failure of the
899  * function.  @if clike The value is drawn from the
900  * enumeration #OperationReturnValues_t. @endif The possible values
901  * returned by this function are:
902  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
903    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
904    *
905    * @note If the Qualifier Type of this object is not
906    * @link libsbml#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER@endlink,
907    * then the @if clike #BiolQualifierType_t value@else biology qualifier type@endif
908    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN@endlink.
909    *
910    * @see getQualifierType()
911    * @see setQualifierType(@if java int@endif)
912    */ public
setBiologicalQualifierType(int type)913  int setBiologicalQualifierType(int type) {
914     int ret = libsbmlPINVOKE.CVTerm_setBiologicalQualifierType__SWIG_0(swigCPtr, type);
915     return ret;
916   }
917 
918 
919 /**
920    * Sets the @if clike #ModelQualifierType_t@else model qualifier
921    * type@endif value of this CVTerm object.
922    *
923    * @param qualifier the string representing a model qualifier.
924    *
925    *
926  * @return integer value indicating success/failure of the
927  * function.  @if clike The value is drawn from the
928  * enumeration #OperationReturnValues_t. @endif The possible values
929  * returned by this function are:
930  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
931    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
932    *
933    * @note If the Qualifier Type of this object is not
934    * @link libsbml#MODEL_QUALIFIER MODEL_QUALIFIER@endlink,
935    * then the @if clike #ModelQualifierType_t value@else model qualifier type@endif
936    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN@endlink.
937    *
938    * @see getQualifierType()
939    * @see setQualifierType(@if java int@endif)
940    */ public
setModelQualifierType(string qualifier)941  int setModelQualifierType(string qualifier) {
942     int ret = libsbmlPINVOKE.CVTerm_setModelQualifierType__SWIG_1(swigCPtr, qualifier);
943     return ret;
944   }
945 
946 
947 /**
948    * Sets the @if clike #BiolQualifierType_t@else biology qualifier
949    * type code@endif of this CVTerm object.
950    *
951    * @param qualifier the string representing a biology qualifier.
952    *
953    *
954  * @return integer value indicating success/failure of the
955  * function.  @if clike The value is drawn from the
956  * enumeration #OperationReturnValues_t. @endif The possible values
957  * returned by this function are:
958  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
959    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
960    *
961    * @note If the Qualifier Type of this object is not
962    * @link libsbml#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER@endlink,
963    * then the @if clike #BiolQualifierType_t@else biology qualifier type code@endif
964    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN@endlink.
965    *
966    * @see getQualifierType()
967    * @see setQualifierType(@if java int@endif)
968    */ public
setBiologicalQualifierType(string qualifier)969  int setBiologicalQualifierType(string qualifier) {
970     int ret = libsbmlPINVOKE.CVTerm_setBiologicalQualifierType__SWIG_1(swigCPtr, qualifier);
971     return ret;
972   }
973 
974 
975 /**
976    * Adds a resource reference to this CVTerm object.
977    *
978    *
979  *
980  * The SBML Level&nbsp;2 and Level&nbsp;3 specifications define a simple
981  * format for annotating models when (a) referring to controlled
982  * vocabulary terms and database identifiers that define and describe
983  * biological and other entities, and (b) describing the creator of a
984  * model and the model's modification history.  The annotation content is
985  * stored in <code>&lt;annotation&gt;</code> elements attached to
986  * individual SBML elements.  The format for storing the content inside
987  * SBML <code>&lt;annotation&gt;</code> elements is a subset of W3C RDF
988  * (<a target='_blank' href='http://www.w3.org/RDF/'>Resource Description
989  * Format</a>) expressed in XML.  The CVTerm class provides a programming
990  * interface for working directly with controlled vocabulary term ('CV
991  * term') objects without having to deal directly with the XML form.
992  * When libSBML reads in an SBML model containing RDF annotations, it
993  * parses those annotations into a list of CVTerm objects, and when
994  * writing a model, it parses the CVTerm objects back into the
995  * appropriate SBML <code>&lt;annotation&gt;</code> structure.
996  *
997  *
998    *
999    * The specific RDF element used in this SBML format for referring to
1000    * external entities is <code>&lt;rdf:Description&gt;</code>, with a
1001    * <code>&lt;rdf:Bag&gt;</code> element containing one or more
1002    * <code>&lt;rdf:li&gt;</code> elements.  Each such element refers to a
1003    * data item in an external resource; the resource and data item are
1004    * together identified uniquely using a URI.  The following template
1005    * illustrates the structure:
1006    *
1007    <pre class='fragment'>
1008    &lt;rdf:Description rdf:about=&quot;#<span style='border-bottom: 1px solid black'>meta id</span>&quot;&gt;
1009      <span style='background-color: #e0e0e0; border-bottom: 2px dotted #888'>HISTORY</span>
1010      &lt;<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
1011        &lt;rdf:Bag&gt;
1012          &lt;rdf:li rdf:resource=&quot;<span style='background-color: #d0d0ee'>resource URI</span>&quot; /&gt;
1013          <span style='background-color: #edd'>...</span>
1014        &lt;/rdf:Bag&gt;
1015      &lt;/<span style='background-color: #bbb'>RELATION_ELEMENT</span>&gt;
1016      <span style='background-color: #edd'>...</span>
1017    &lt;/rdf:Description&gt;
1018    </pre>
1019    *
1020    * In the template above, the placeholder <span class='code'
1021    * style='border-bottom: 1px solid black'>meta id</span> stands for the
1022    * element's meta identifier, which is a field available on all SBML
1023    * components derived from the SBase base object class.  The <span
1024    * style='border-bottom: 2px dotted #888'>dotted</span> portions are
1025    * optional, and the ellipses <span class='code'
1026    * style='background-color: #edd'>...</span> are placeholders for zero or
1027    * more elements of the same form as the immediately preceding element.
1028    * The placeholder <span class='code' style='background-color: #bbb'>
1029    * RELATION_ELEMENT</span> refers to a BioModels.net qualifier element
1030    * name.  This is an element in either the XML namespace
1031    * <code>'http://biomodels.net/model-qualifiers'</code> (for model
1032    * qualifiers) or <code>'http://biomodels.net/biology-qualifiers'</code>
1033    * (for biological qualifier).
1034    *
1035    * The <span class='code' style='background-color: #d0d0ee'>resource
1036    * URI</span> is a required data value that uniquely identifies a
1037    * resource and data within that resource to which the annotation refers.
1038    * The present method allows callers to add a reference to a resource URI
1039    * with the same relationship to the enclosing SBML object.  (In other
1040    * words, the argument to this method is a <span class='code'
1041    * style='background-color: #d0d0ee'>resource URI</span> as shown in the
1042    * XML fragment above.)  Resources are stored in this CVTerm object
1043    * within an XMLAttributes object.
1044    *
1045    * The relationship of this CVTerm to the enclosing SBML object can be
1046    * determined using the CVTerm methods such as
1047    * CVTerm::getModelQualifierType() and CVTerm::getBiologicalQualifierType().
1048    *
1049    * @param resource a string representing the URI of the resource and data
1050    * item being referenced; e.g.,
1051    * <code>'http://www.geneontology.org/#GO:0005892'</code>.
1052    *
1053    *
1054  * @return integer value indicating success/failure of the
1055  * function.  @if clike The value is drawn from the
1056  * enumeration #OperationReturnValues_t. @endif The possible values
1057  * returned by this function are:
1058  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1059    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1060    *
1061    * @see getResources()
1062    * @see removeResource(string resource)
1063    * @see getQualifierType()
1064    * @see getModelQualifierType()
1065    * @see getBiologicalQualifierType()
1066    */ public
addResource(string resource)1067  int addResource(string resource) {
1068     int ret = libsbmlPINVOKE.CVTerm_addResource(swigCPtr, resource);
1069     return ret;
1070   }
1071 
1072 
1073 /**
1074    * Removes a resource URI from the set of resources stored in this CVTerm
1075    * object.
1076    *
1077    * @param resource a string representing the resource URI to remove;
1078    * e.g., <code>'http://www.geneontology.org/#GO:0005892'</code>.
1079    *
1080    *
1081  * @return integer value indicating success/failure of the
1082  * function.  @if clike The value is drawn from the
1083  * enumeration #OperationReturnValues_t. @endif The possible values
1084  * returned by this function are:
1085  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1086    * @li @link libsbml#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE@endlink
1087    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE@endlink
1088    *
1089    * @see addResource(string resource)
1090    */ public
removeResource(string resource)1091  int removeResource(string resource) {
1092     int ret = libsbmlPINVOKE.CVTerm_removeResource(swigCPtr, resource);
1093     return ret;
1094   }
1095 
1096 
1097 /**
1098    * Predicate returning @c true if all the required elements for this
1099    * CVTerm object have been set.
1100    *
1101    * @note The required attributes for a CVTerm are:
1102    * @li a <em>qualifier type</em>, which can be either a model qualifier or a biological qualifier
1103    * @li at least one resource
1104    */ public
hasRequiredAttributes()1105  bool hasRequiredAttributes() {
1106     bool ret = libsbmlPINVOKE.CVTerm_hasRequiredAttributes__SWIG_0(swigCPtr);
1107     return ret;
1108   }
1109 
1110 
1111 /** */ /* libsbml-internal */ public
hasBeenModified()1112  bool hasBeenModified() {
1113     bool ret = libsbmlPINVOKE.CVTerm_hasBeenModified(swigCPtr);
1114     return ret;
1115   }
1116 
1117 
1118 /** */ /* libsbml-internal */ public
resetModifiedFlags()1119  void resetModifiedFlags() {
1120     libsbmlPINVOKE.CVTerm_resetModifiedFlags(swigCPtr);
1121   }
1122 
1123 
1124 /**
1125    * Returns the number of CVTerm objects nested within this CVTerm
1126    * object.
1127    *
1128    * @return the number of CVTerms nested within this CVTerm object.
1129    *
1130    * @note this does not recurse through potentially nested CVTerm objects
1131    * within a given nested CVTerm. It returns the number of terms immediately
1132    * nested within this CVTerm.
1133    */ public
getNumNestedCVTerms()1134  long getNumNestedCVTerms() { return (long)libsbmlPINVOKE.CVTerm_getNumNestedCVTerms(swigCPtr); }
1135 
1136 
1137 /**
1138    * Returns the nth CVTerm in the list of CVTerms of this CVTerm
1139    * object.
1140    *
1141    * @param n unsigned int the index of the CVTerm to retrieve.
1142    *
1143    * @return the nth CVTerm in the list of CVTerms for this CVTerm object
1144    * or @c null if no such object exists.
1145    */ public
getNestedCVTerm(long n)1146  CVTerm getNestedCVTerm(long n) {
1147     global::System.IntPtr cPtr = libsbmlPINVOKE.CVTerm_getNestedCVTerm__SWIG_0(swigCPtr, n);
1148     CVTerm ret = (cPtr == global::System.IntPtr.Zero) ? null : new CVTerm(cPtr, false);
1149     return ret;
1150   }
1151 
1152 
1153 /**
1154    * Returns a list of CVTerm objects contained within this CVTerm
1155    * object.
1156    *
1157    * @return the list of CVTerms for this CVTerm object.
1158    */ public
getListNestedCVTerms()1159  SWIGTYPE_p_List getListNestedCVTerms() {
1160     global::System.IntPtr cPtr = libsbmlPINVOKE.CVTerm_getListNestedCVTerms__SWIG_0(swigCPtr);
1161     SWIGTYPE_p_List ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_List(cPtr, false);
1162     return ret;
1163   }
1164 
1165 
1166 /**
1167    * Adds a copy of the given CVTerm object to the list of nested CVTerm
1168    * objects within this CVTerm object.
1169    *
1170    * @param term the CVTerm to assign.
1171    *
1172    *
1173  * @return integer value indicating success/failure of the
1174  * function.  @if clike The value is drawn from the
1175  * enumeration #OperationReturnValues_t. @endif The possible values
1176  * returned by this function are:
1177  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS@endlink
1178    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED@endlink
1179    * @li @link libsbml#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT@endlink
1180    */ public
addNestedCVTerm(CVTerm term)1181  int addNestedCVTerm(CVTerm term) {
1182     int ret = libsbmlPINVOKE.CVTerm_addNestedCVTerm(swigCPtr, CVTerm.getCPtr(term));
1183     return ret;
1184   }
1185 
1186 
1187 /**
1188    * Removes the nth CVTerm in the list of CVTerms of this CVTerm
1189    * object and returns a pointer to it.
1190    *
1191    * @param n unsigned int the index of the CVTerm to retrieve.
1192    *
1193    * @return a pointer to the nth CVTerm in the list of CVTerms for this
1194    * CVTerm object.
1195    */ public
removeNestedCVTerm(long n)1196  CVTerm removeNestedCVTerm(long n) {
1197     global::System.IntPtr cPtr = libsbmlPINVOKE.CVTerm_removeNestedCVTerm(swigCPtr, n);
1198     CVTerm ret = (cPtr == global::System.IntPtr.Zero) ? null : new CVTerm(cPtr, true);
1199     return ret;
1200   }
1201 
1202 }
1203 
1204 }
1205