001/* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (http://www.swig.org).
003 * Version 3.0.10
004 *
005 * Do not make changes to this file unless you know what you are doing--modify
006 * the SWIG interface file instead.
007 * ----------------------------------------------------------------------------- */
008
009package org.sbml.libsbml;
010
011/** 
012 * <span class="pkg-marker pkg-color-comp"><a href="group__comp.html">comp</a></span>
013 A reference to an externally-defined model.
014 <p>
015 * The {@link ExternalModelDefinition} class was introduced by the SBML Level&nbsp;3
016 * <a href='../../../extensions-summary.html#comp'>Hierarchical Model Composition</a> (&ldquo;comp&rdquo;) package to define references to {@link Model}
017 * objects defined in other files.
018 <p>
019 * {@link ExternalModelDefinition} objects are model definitions&mdash;in and of
020 * themselves, they are definitions of models but not uses of those models.
021 * The class provides a way to declare and identify them so that {@link Model}
022 * objects in the present SBML document can use them in {@link Submodel} objects.
023 <p>
024 * {@link ExternalModelDefinition} contains two required attributes
025 * ('source' and 'id') and three optional attributes
026 * ('modelRef', 'md5' and 'name').
027 <p>
028 * The 'id' attribute serves to provide a handle for the external
029 * model reference so that {@link Submodel} objects can refer to it.  Crucially,
030 * it is not the identifier of the model being referenced; rather,
031 * it is an identifier for this {@link ExternalModelDefinition} object within the
032 * current SBML document.  The 'id' attribute takes a required value
033 * of type SId, and must be unique across all {@link Model} and {@link ExternalModelDefinition}
034 * objects present in the document.
035 <p>
036 * {@link ExternalModelDefinition} also has an optional 'name' attribute, of
037 * type 'string'.  The 'name' attribute may be used to provide
038 * a human-readable description of the ExternalModelDefintion object.
039 <p>
040 * The required attribute 'source' is used to locate the SBML document
041 * containing an external model definition.  The value of this attribute must
042 * be of type anyURI.  Since URIs may be either URLs, URNs, or relative or
043 * absolute file locations, this offers flexibility in referencing SBML
044 * documents.  In all cases, the 'source' attribute value must refer
045 * specifically to an SBML Level&nbsp;3 Version&nbsp;1 document; prior
046 * Levels/Versions of SBML are not supported by this package.  The entire
047 * file at the given location is referenced.  The 'source' attribute must
048 * have a value for every {@link ExternalModelDefinition} instance.
049 <p>
050 * {@link ExternalModelDefinition}'s optional attribute 'modelRef', of type
051 * SIdRef, is used to identify a {@link Model} or
052 * {@link ExternalModelDefinition} object within the SBML document located at
053 * 'source'.  The object referenced may be the main model in the
054 * document, or it may be a model definition contained in the SBML
055 * document's {@link ListOfModelDefinitions} or
056 * {@link ListOfExternalModelDefinitions} lists.  Loops are not allowed: it
057 * must be possible to follow a chain of {@link ExternalModelDefinition} objects
058 * to its end in a {@link Model} object.
059 <p>
060 * In core SBML, the 'id' on {@link Model} is an optional attribute, and therefore,
061 * it is possible that the {@link Model} object in a given SBML document does not
062 * have an identifier.  In that case, there is no value to give to the
063 * 'modelRef' attribute in {@link ExternalModelDefinition}.  If 'modelRef' does not
064 * have a value, then the main model (i.e., the <code>&lt;model&gt;</code>
065 * element within the <code>&lt;sbml&gt;</code> element) in the referenced
066 * file is interpreted as being the model referenced by this
067 * {@link ExternalModelDefinition} instance.
068 <p>
069 * Finally, the optional 'md5' attribute takes a string value.  If
070 * set, it must be an MD5 checksum value computed over the document
071 * referenced by 'source'.  This checksum can serve as a data
072 * integrity check over the contents of the 'source'.  Applications
073 * may use this to verify that the contents have not changed since the time
074 * that the {@link ExternalModelDefinition} reference was constructed.
075 */
076
077public class ExternalModelDefinition extends CompBase {
078   private long swigCPtr;
079
080   protected ExternalModelDefinition(long cPtr, boolean cMemoryOwn)
081   {
082     super(libsbmlJNI.ExternalModelDefinition_SWIGUpcast(cPtr), cMemoryOwn);
083     swigCPtr = cPtr;
084   }
085
086   protected static long getCPtr(ExternalModelDefinition obj)
087   {
088     return (obj == null) ? 0 : obj.swigCPtr;
089   }
090
091   protected static long getCPtrAndDisown (ExternalModelDefinition obj)
092   {
093     long ptr = 0;
094
095     if (obj != null)
096     {
097       ptr             = obj.swigCPtr;
098       obj.swigCMemOwn = false;
099     }
100
101     return ptr;
102   }
103
104  protected void finalize() {
105    delete();
106  }
107
108  public synchronized void delete() {
109    if (swigCPtr != 0) {
110      if (swigCMemOwn) {
111        swigCMemOwn = false;
112        libsbmlJNI.delete_ExternalModelDefinition(swigCPtr);
113      }
114      swigCPtr = 0;
115    }
116    super.delete();
117  }
118
119  
120/**
121   * Creates a new {@link ExternalModelDefinition} with the given level, version, and
122   * package version.
123   <p>
124   * @param level the SBML Level
125   * @param version the Version within the SBML Level
126   * @param pkgVersion the version of the package
127   */ public
128 ExternalModelDefinition(long level, long version, long pkgVersion) throws org.sbml.libsbml.SBMLConstructorException {
129    this(libsbmlJNI.new_ExternalModelDefinition__SWIG_0(level, version, pkgVersion), true);
130  }
131
132  
133/**
134   * Creates a new {@link ExternalModelDefinition} with the given level, version, and
135   * package version.
136   <p>
137   * @param level the SBML Level
138   * @param version the Version within the SBML Level
139   * @param pkgVersion the version of the package
140   */ public
141 ExternalModelDefinition(long level, long version) throws org.sbml.libsbml.SBMLConstructorException {
142    this(libsbmlJNI.new_ExternalModelDefinition__SWIG_1(level, version), true);
143  }
144
145  
146/**
147   * Creates a new {@link ExternalModelDefinition} with the given level, version, and
148   * package version.
149   <p>
150   * @param level the SBML Level
151   * @param version the Version within the SBML Level
152   * @param pkgVersion the version of the package
153   */ public
154 ExternalModelDefinition(long level) throws org.sbml.libsbml.SBMLConstructorException {
155    this(libsbmlJNI.new_ExternalModelDefinition__SWIG_2(level), true);
156  }
157
158  
159/**
160   * Creates a new {@link ExternalModelDefinition} with the given level, version, and
161   * package version.
162   <p>
163   * @param level the SBML Level
164   * @param version the Version within the SBML Level
165   * @param pkgVersion the version of the package
166   */ public
167 ExternalModelDefinition() throws org.sbml.libsbml.SBMLConstructorException {
168    this(libsbmlJNI.new_ExternalModelDefinition__SWIG_3(), true);
169  }
170
171  
172/**
173   * Creates a new {@link ExternalModelDefinition} with the given {@link CompPkgNamespaces}
174   * object.
175   <p>
176   * @param compns the namespace to use.
177   */ public
178 ExternalModelDefinition(CompPkgNamespaces compns) throws org.sbml.libsbml.SBMLConstructorException {
179    this(libsbmlJNI.new_ExternalModelDefinition__SWIG_4(CompPkgNamespaces.getCPtr(compns), compns), true);
180  }
181
182  
183/**
184   * Copy constructor.
185   <p>
186   * @param source the object to copy.
187   */ public
188 ExternalModelDefinition(ExternalModelDefinition source) throws org.sbml.libsbml.SBMLConstructorException {
189    this(libsbmlJNI.new_ExternalModelDefinition__SWIG_5(ExternalModelDefinition.getCPtr(source), source), true);
190  }
191
192  
193/**
194   * Creates and returns a deep copy of this {@link ExternalModelDefinition} object.
195   <p>
196   * @return a (deep) copy of this {@link ExternalModelDefinition} object
197   */ public
198 SBase cloneObject() {
199    long cPtr = libsbmlJNI.ExternalModelDefinition_cloneObject(swigCPtr, this);
200    return (cPtr == 0) ? null : new ExternalModelDefinition(cPtr, true);
201  }
202
203  
204/**
205   * Sets the value of the 'id' attribute of this {@link ExternalModelDefinition}.
206   <p>
207   * This method fails if the <code>id</code> is not a valid syntax for an SId.
208   <p>
209   * @param id the identifier to use
210   <p>
211   * <p>
212 * @return integer value indicating success/failure of the
213 * function.   The possible values
214 * returned by this function are:
215   * <ul>
216   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
217   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
218   * </ul>
219   */ public
220 int setId(String id) {
221    return libsbmlJNI.ExternalModelDefinition_setId(swigCPtr, this, id);
222  }
223
224  
225/**
226   * Returns the value of the 'id' attribute of this {@link ExternalModelDefinition}.
227   <p>
228   * @return the name of this {@link ExternalModelDefinition}.
229   */ public
230 String getId() {
231    return libsbmlJNI.ExternalModelDefinition_getId(swigCPtr, this);
232  }
233
234  
235/**
236   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
237   * object's 'id' attribute has been set.
238   <p>
239   * <em>Some words of explanation about the</em>
240<code>set</code>/<code>unset</code>/<code>isSet</code> <em>methods</em>:
241The SBML specifications define certain attributes on some classes of
242objects as being optional.  This requires an application to be careful
243about the distinction between two cases when reading a model: (1) a given
244attribute has <em>never</em> been set to a value, and therefore should be
245assumed to have the SBML-defined default value if one exists, and (2) a
246given attribute has been set to a value, but the value happens to be an
247empty string.  The situation can be ambiguous when reading a model from a
248file or data stream and then examining the data objects that libSBML
249constructs as a result.  LibSBML supports these distinctions by providing
250methods to set, unset, and query the status of attributes that are
251optional.  The methods have names of the form <code>set</code><em><span
252class="placeholder">Attribute</span></em><code>(...)</code>,
253<code>unset</code><em><span
254class="placeholder">Attribute</span></em><code>()</code>, and
255<code>isSet</code><em><span
256class="placeholder">Attribute</span></em><code>()</code>, where <em><span
257class="placeholder">Attribute</span></em> is the the name of the optional
258attribute in question.
259
260   <p>
261   * @return <code>true</code> if the 'id' attribute of this object has been
262   * set, <code>false</code> otherwise.
263   */ public
264 boolean isSetId() {
265    return libsbmlJNI.ExternalModelDefinition_isSetId(swigCPtr, this);
266  }
267
268  
269/**
270   * Unsets the value of the 'id' attribute of this {@link ExternalModelDefinition}.
271   <p>
272   * <p>
273 * @return integer value indicating success/failure of the
274 * function.   The possible values
275 * returned by this function are:
276   * <ul>
277   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
278   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
279   * </ul>
280   */ public
281 int unsetId() {
282    return libsbmlJNI.ExternalModelDefinition_unsetId(swigCPtr, this);
283  }
284
285  
286/**
287   * Sets the value of the 'name' attribute of this {@link ExternalModelDefinition}.
288   <p>
289   * The string in <code>name</code> is copied.
290   <p>
291   * @param name the new name for the {@link ExternalModelDefinition}
292   <p>
293   * <p>
294 * @return integer value indicating success/failure of the
295 * function.   The possible values
296 * returned by this function are:
297   * <ul>
298   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
299   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
300   * </ul>
301   */ public
302 int setName(String name) {
303    return libsbmlJNI.ExternalModelDefinition_setName(swigCPtr, this, name);
304  }
305
306  
307/**
308   * Returns the value of the 'name' attribute of this
309   * {@link ExternalModelDefinition}.
310   <p>
311   * @return the name of this {@link ExternalModelDefinition}.
312   */ public
313 String getName() {
314    return libsbmlJNI.ExternalModelDefinition_getName(swigCPtr, this);
315  }
316
317  
318/**
319   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
320   * object's 'name' attribute has been set.
321   <p>
322   * <em>Some words of explanation about the</em>
323<code>set</code>/<code>unset</code>/<code>isSet</code> <em>methods</em>:
324The SBML specifications define certain attributes on some classes of
325objects as being optional.  This requires an application to be careful
326about the distinction between two cases when reading a model: (1) a given
327attribute has <em>never</em> been set to a value, and therefore should be
328assumed to have the SBML-defined default value if one exists, and (2) a
329given attribute has been set to a value, but the value happens to be an
330empty string.  The situation can be ambiguous when reading a model from a
331file or data stream and then examining the data objects that libSBML
332constructs as a result.  LibSBML supports these distinctions by providing
333methods to set, unset, and query the status of attributes that are
334optional.  The methods have names of the form <code>set</code><em><span
335class="placeholder">Attribute</span></em><code>(...)</code>,
336<code>unset</code><em><span
337class="placeholder">Attribute</span></em><code>()</code>, and
338<code>isSet</code><em><span
339class="placeholder">Attribute</span></em><code>()</code>, where <em><span
340class="placeholder">Attribute</span></em> is the the name of the optional
341attribute in question.
342
343   <p>
344   * @return <code>true</code> if the 'name' attribute of this object has been
345   * set, <code>false</code> otherwise.
346   */ public
347 boolean isSetName() {
348    return libsbmlJNI.ExternalModelDefinition_isSetName(swigCPtr, this);
349  }
350
351  
352/**
353   * Unsets the value of the 'name' attribute of this
354   * {@link ExternalModelDefinition}.
355   <p>
356   * <p>
357 * @return integer value indicating success/failure of the
358 * function.   The possible values
359 * returned by this function are:
360   * <ul>
361   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
362   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
363   * </ul>
364   */ public
365 int unsetName() {
366    return libsbmlJNI.ExternalModelDefinition_unsetName(swigCPtr, this);
367  }
368
369  
370/**
371   * Returns the value of the 'modelRef' attribute of this
372   * {@link ExternalModelDefinition}.
373   <p>
374   * @return the value of the 'modelRef' attribute of this
375   * {@link ExternalModelDefinition}.
376   */ public
377 String getModelRef() {
378    return libsbmlJNI.ExternalModelDefinition_getModelRef(swigCPtr, this);
379  }
380
381  
382/**
383   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
384   * {@link ExternalModelDefinition}'s 'modelRef' attribute has been set.
385   <p>
386   * @return <code>true</code> if this {@link ExternalModelDefinition}'s 'modelRef' attribute
387   * has been set, otherwise <code>false</code> is returned.
388   */ public
389 boolean isSetModelRef() {
390    return libsbmlJNI.ExternalModelDefinition_isSetModelRef(swigCPtr, this);
391  }
392
393  
394/**
395   * Sets the value of the 'modelRef' attribute of this
396   * {@link ExternalModelDefinition}.  Fails if the <code>id</code> is not a valid syntax for an
397   * SIdRef.
398   <p>
399   * <p>
400 * @return integer value indicating success/failure of the
401 * function.   The possible values
402 * returned by this function are:
403   * <ul>
404   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
405   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
406   * </ul>
407   */ public
408 int setModelRef(String id) {
409    return libsbmlJNI.ExternalModelDefinition_setModelRef(swigCPtr, this, id);
410  }
411
412  
413/**
414   * Unsets the value of the 'modelRef' attribute of this
415   * {@link ExternalModelDefinition}.
416   <p>
417   * <p>
418 * @return integer value indicating success/failure of the
419 * function.   The possible values
420 * returned by this function are:
421   * <ul>
422   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
423   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
424   * </ul>
425   */ public
426 int unsetModelRef() {
427    return libsbmlJNI.ExternalModelDefinition_unsetModelRef(swigCPtr, this);
428  }
429
430  
431/**
432   * Returns the value of the 'md5' attribute of this
433   * {@link ExternalModelDefinition}.
434   <p>
435   * @return the value of the 'md5' attribute of this
436   * {@link ExternalModelDefinition}.
437   */ public
438 String getMd5() {
439    return libsbmlJNI.ExternalModelDefinition_getMd5(swigCPtr, this);
440  }
441
442  
443/**
444   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
445   * {@link ExternalModelDefinition}'s 'md5' attribute has been set.
446   <p>
447   * @return <code>true</code> if this {@link ExternalModelDefinition}'s 'md5' attribute has
448   * been set, otherwise <code>false</code> is returned.
449   */ public
450 boolean isSetMd5() {
451    return libsbmlJNI.ExternalModelDefinition_isSetMd5(swigCPtr, this);
452  }
453
454  
455/**
456   * Sets the value of the 'md5' attribute of this {@link ExternalModelDefinition}.
457   <p>
458   * <p>
459 * @return integer value indicating success/failure of the
460 * function.   The possible values
461 * returned by this function are:
462   * <ul>
463   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
464   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
465   * </ul>
466   */ public
467 int setMd5(String md5) {
468    return libsbmlJNI.ExternalModelDefinition_setMd5(swigCPtr, this, md5);
469  }
470
471  
472/**
473   * Unsets the value of the 'md5' attribute of this {@link ExternalModelDefinition}.
474   <p>
475   * <p>
476 * @return integer value indicating success/failure of the
477 * function.   The possible values
478 * returned by this function are:
479   * <ul>
480   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
481   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
482   * </ul>
483   */ public
484 int unsetMd5() {
485    return libsbmlJNI.ExternalModelDefinition_unsetMd5(swigCPtr, this);
486  }
487
488  
489/**
490   * Returns the value of the 'source' attribute of this
491   * {@link ExternalModelDefinition}.
492   <p>
493   * @return the value of the 'source' attribute of this
494   * {@link ExternalModelDefinition}.
495   */ public
496 String getSource() {
497    return libsbmlJNI.ExternalModelDefinition_getSource(swigCPtr, this);
498  }
499
500  
501/**
502   * Predicate returning <code>true</code> or <code>false</code> depending on whether this
503   * {@link ExternalModelDefinition}'s 'source' attribute has been set.
504   <p>
505   * @return <code>true</code> if this {@link ExternalModelDefinition}'s 'source' attribute has
506   * been set, otherwise <code>false</code> is returned.
507   */ public
508 boolean isSetSource() {
509    return libsbmlJNI.ExternalModelDefinition_isSetSource(swigCPtr, this);
510  }
511
512  
513/**
514   * Sets the value of the 'source' attribute of this
515   * {@link ExternalModelDefinition}.
516   <p>
517   * @param source the value to use for the 'source' attribute.
518   <p>
519   * <p>
520 * @return integer value indicating success/failure of the
521 * function.   The possible values
522 * returned by this function are:
523   * <ul>
524   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
525   * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
526   * </ul>
527   */ public
528 int setSource(String source) {
529    return libsbmlJNI.ExternalModelDefinition_setSource(swigCPtr, this, source);
530  }
531
532  
533/**
534   * Unsets the value of the 'source' attribute of this
535   * {@link ExternalModelDefinition}.
536   <p>
537   * <p>
538 * @return integer value indicating success/failure of the
539 * function.   The possible values
540 * returned by this function are:
541   * <ul>
542   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
543   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
544   * </ul>
545   */ public
546 int unsetSource() {
547    return libsbmlJNI.ExternalModelDefinition_unsetSource(swigCPtr, this);
548  }
549
550  
551/**
552   * Returns true if the 'modelRef' and 'id' attributes are set, and false if not.
553   <p>
554   * This method does not check to see if the referred-to model actually
555   * exists.
556   <p>
557   * @return boolean: <code>true</code> if the attributes are correctly set; <code>false</code>
558   * if not.
559   */ public
560 boolean hasRequiredAttributes() {
561    return libsbmlJNI.ExternalModelDefinition_hasRequiredAttributes(swigCPtr, this);
562  }
563
564  
565/**
566   * Returns the XML element name of this SBML object.
567   <p>
568   * @return the name of this element, as a text string.
569   */ public
570 String getElementName() {
571    return libsbmlJNI.ExternalModelDefinition_getElementName(swigCPtr, this);
572  }
573
574  
575/**
576   * Returns the libSBML type code of this object instance.
577   <p>
578   * <p>
579 * LibSBML attaches an identifying code to every kind of SBML object.  These
580 * are integer constants known as <em>SBML type codes</em>.  The names of all
581 * the codes begin with the characters <code>SBML_</code>.
582 * In the Java language interface for libSBML, the
583 * type codes are defined as static integer constants in the interface class
584 * {@link libsbmlConstants}.    Note that different Level&nbsp;3
585 * package plug-ins may use overlapping type codes; to identify the package
586 * to which a given object belongs, call the <code>getPackageName()</code>
587 * method on the object.
588   <p>
589   * @return the SBML type code for this object:
590   * {@link libsbmlConstants#SBML_COMP_EXTERNALMODELDEFINITION SBML_COMP_EXTERNALMODELDEFINITION}
591   <p>
592   * <p>
593 * @warning <span class='warning'>The specific integer values of the possible
594 * type codes may be reused by different libSBML plug-ins for SBML Level&nbsp;3.
595 * packages,  To fully identify the correct code, <strong>it is necessary to
596 * invoke both getTypeCode() and getPackageName()</strong>.</span>
597   <p>
598   * @see #getElementName()
599   * @see #getPackageName()
600   */ public
601 int getTypeCode() {
602    return libsbmlJNI.ExternalModelDefinition_getTypeCode(swigCPtr, this);
603  }
604
605  
606/**
607   * Resolves and returns the referenced {@link Model} object of this {@link ExternalModelDefinition}.
608   * If none can be found, an error is set and null is returned.  The
609   * returned {@link Model} is a non-owning pointer to the model; the original
610   * {@link Model} is saved (along with the {@link SBMLDocument} from which it comes) as
611   * a child of the {@link CompSBMLDocumentPlugin} of the {@link SBMLDocument} to which this
612   * {@link Model} belongs.  If this {@link ExternalModelDefinition} is not part of any
613   * {@link SBMLDocument}, null will be returned.
614   */ public
615 Model getReferencedModel() {
616    long cPtr = libsbmlJNI.ExternalModelDefinition_getReferencedModel(swigCPtr, this);
617    return (cPtr == 0) ? null : new Model(cPtr, false);
618  }
619
620}