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 2 and Level 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><annotation></code> element attached to an SBML component such 43 * as Species, Compartment, etc. A small change was introduced in SBML 44 * Level 2 Version 5 and SBML Level 3 Version 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 2 below Version 5 and 48 * SBML Level 3 below Version 2: 49 * 50 <pre class='fragment'> 51 <<span style='background-color: #bbb'>SBML_ELEMENT</span> <span style='background-color: #d0eed0'>+++</span> metaid="<span style='border-bottom: 1px solid black'>meta id</span>" <span style='background-color: #d0eed0'>+++</span>> 52 <span style='background-color: #d0eed0'>+++</span> 53 <annotation> 54 <span style='background-color: #d0eed0'>+++</span> 55 <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/' > 60 <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 61 <span style='background-color: #e0e0e0; border-bottom: 2px dotted #888'>HISTORY</span> 62 <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 63 <rdf:Bag> 64 <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>URI</span>" /> 65 <span style='background-color: #edd'>...</span> 66 </rdf:Bag> 67 </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 68 <span style='background-color: #edd'>...</span> 69 </rdf:Description> 70 <span style='background-color: #d0eed0'>+++</span> 71 </rdf:RDF> 72 <span style='background-color: #d0eed0'>+++</span> 73 </annotation> 74 <span style='background-color: #d0eed0'>+++</span> 75 </<span style='background-color: #bbb'>SBML_ELEMENT</span>> 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 2 Version 5 and Level 3 127 * Version 2): 128 <pre class='fragment'> 129 <<span style='background-color: #bbb'>SBML_ELEMENT</span> <span style='background-color: #d0eed0'>+++</span> metaid="<span style='border-bottom: 1px solid black'>meta id</span>" <span style='background-color: #d0eed0'>+++</span>> 130 <span style='background-color: #d0eed0'>+++</span> 131 <annotation> 132 <span style='background-color: #d0eed0'>+++</span> 133 <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/' > 138 <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 139 <span style='background-color: #e0e0e0; border-bottom: 2px dotted #888'>HISTORY</span> 140 <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 141 <rdf:Bag> 142 <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>URI</span>" /> 143 <span style='background-color: #fef'>NESTED_CONTENT</span> 144 <span style='background-color: #edd'>...</span> 145 </rdf:Bag> 146 </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 147 <span style='background-color: #edd'>...</span> 148 </rdf:Description> 149 <span style='background-color: #d0eed0'>+++</span> 150 </rdf:RDF> 151 <span style='background-color: #d0eed0'>+++</span> 152 </annotation> 153 <span style='background-color: #d0eed0'>+++</span> 154 </<span style='background-color: #bbb'>SBML_ELEMENT</span>> 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 6 in the SBML Level 2 (Versions 2–4) or 175 * Level 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><annotation></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 2 and Level 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><annotation></code> elements attached to 314 * individual SBML elements. The format for storing the content inside 315 * SBML <code><annotation></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><annotation></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 2 and Level 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><annotation></code> elements attached to 359 * individual SBML elements. The format for storing the content inside 360 * SBML <code><annotation></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><annotation></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 2 and Level 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><annotation></code> elements attached to 403 * individual SBML elements. The format for storing the content inside 404 * SBML <code><annotation></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><annotation></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><rdf:Description></code>, with a 465 * <code><rdf:Bag></code> element inside of it containing one or more 466 * <code><rdf:li></code> elements. The following template illustrates 467 * the structure: 468 * <pre class='fragment'> 469 * <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 470 * <span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span> 471 * <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 472 * <rdf:Bag> 473 * <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>resource URI</span>" /> 474 * <span style='background-color: #edd'>...</span> 475 * </rdf:Bag> 476 * </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 477 * <span style='background-color: #edd'>...</span> 478 * </rdf:Description> 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><rdf:Description></code>, with a 533 * <code><rdf:Bag></code> element inside of it containing one or more 534 * <code><rdf:li></code> elements. The following template illustrates 535 * the structure: 536 * <pre class='fragment'> 537 * <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 538 * <span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span> 539 * <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 540 * <rdf:Bag> 541 * <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>resource URI</span>" /> 542 * <span style='background-color: #edd'>...</span> 543 * </rdf:Bag> 544 * </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 545 * <span style='background-color: #edd'>...</span> 546 * </rdf:Description> 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><rdf:Description></code>, with a 606 * <code><rdf:Bag></code> element inside of it containing one or more 607 * <code><rdf:li></code> elements. The following template illustrates 608 * the structure: 609 * <pre class='fragment'> 610 * <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 611 * <span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span> 612 * <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 613 * <rdf:Bag> 614 * <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>resource URI</span>" /> 615 * <span style='background-color: #edd'>...</span> 616 * </rdf:Bag> 617 * </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 618 * <span style='background-color: #edd'>...</span> 619 * </rdf:Description> 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><rdf:Description></code>, with a 687 * <code><rdf:Bag></code> element inside of it containing one or more 688 * <code><rdf:li></code> elements. The following template illustrates 689 * the structure: 690 * <pre class='fragment'> 691 * <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 692 * <span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span> 693 * <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 694 * <rdf:Bag> 695 * <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>resource URI</span>" /> 696 * <span style='background-color: #edd'>...</span> 697 * </rdf:Bag> 698 * </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 699 * <span style='background-color: #edd'>...</span> 700 * </rdf:Description> 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 * "<code>rdf:resource</code>") 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><rdf:Description></code>, with a 743 * <code><rdf:Bag></code> element inside of it containing one or more 744 * <code><rdf:li></code> elements. The following template illustrates 745 * the structure: 746 * <pre class='fragment'> 747 * <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 748 * <span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span> 749 * <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 750 * <rdf:Bag> 751 * <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>resource URI</span>" /> 752 * <span style='background-color: #edd'>...</span> 753 * </rdf:Bag> 754 * </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 755 * <span style='background-color: #edd'>...</span> 756 * </rdf:Description> 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><rdf:Description></code>, with a 791 * <code><rdf:Bag></code> element inside of it containing one or more 792 * <code><rdf:li></code> elements. The following template illustrates 793 * the structure: 794 * <pre class='fragment'> 795 * <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 796 * <span style='background-color: #ddd; border-bottom: 2px dotted #888'>HISTORY</span> 797 * <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 798 * <rdf:Bag> 799 * <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>resource URI</span>" /> 800 * <span style='background-color: #edd'>...</span> 801 * </rdf:Bag> 802 * </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 803 * <span style='background-color: #edd'>...</span> 804 * </rdf:Description> 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 2 and Level 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><annotation></code> elements attached to 986 * individual SBML elements. The format for storing the content inside 987 * SBML <code><annotation></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><annotation></code> structure. 996 * 997 * 998 * 999 * The specific RDF element used in this SBML format for referring to 1000 * external entities is <code><rdf:Description></code>, with a 1001 * <code><rdf:Bag></code> element containing one or more 1002 * <code><rdf:li></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 <rdf:Description rdf:about="#<span style='border-bottom: 1px solid black'>meta id</span>"> 1009 <span style='background-color: #e0e0e0; border-bottom: 2px dotted #888'>HISTORY</span> 1010 <<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 1011 <rdf:Bag> 1012 <rdf:li rdf:resource="<span style='background-color: #d0d0ee'>resource URI</span>" /> 1013 <span style='background-color: #edd'>...</span> 1014 </rdf:Bag> 1015 </<span style='background-color: #bbb'>RELATION_ELEMENT</span>> 1016 <span style='background-color: #edd'>...</span> 1017 </rdf:Description> 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