001/* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (http://www.swig.org).
003 * Version 3.0.12
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 *  Set of configuration option values for a converter.
013 <p>
014 * <p style='color: #777; font-style: italic'>
015This class of objects is defined by libSBML only and has no direct
016equivalent in terms of SBML components.  It is a class used in
017the implementation of extra functionality provided by libSBML.
018</p>
019
020 <p>
021 * LibSBML provides a number of converters that can perform transformations
022 * on SBML documents. The properties of SBML converters are communicated
023 * using objects of class {@link ConversionProperties}, and within such objects,
024 * individual options are encapsulated using {@link ConversionOption} objects.  The
025 * {@link ConversionProperties} class provides numerous methods for setting and
026 * getting options.
027 <p>
028 * {@link ConversionProperties} objects are also used to determine the target SBML
029 * namespace when an SBML converter's behavior depends on the intended
030 * Level+Version combination of SBML.  In addition, it is conceivable that
031 * conversions may be affected by SBML Level&nbsp;3 packages being used by an
032 * SBML document; consequently, the packages in use are also communicated by
033 * the values of the SBML namespaces set on a {@link ConversionProperties} object.
034 <p>
035 * <p>
036 * <h2>General information about the use of SBML converters</h2>
037 <p>
038 * The use of all the converters follows a similar approach.  First, one
039 * creates a {@link ConversionProperties} object and calls
040 * {@link ConversionProperties#addOption(ConversionOption)}
041 * on this object with one argument: a text string that identifies the desired
042 * converter.  (The text string is specific to each converter; consult the
043 * documentation for a given converter to find out how it should be enabled.)
044 <p>
045 * Next, for some converters, the caller can optionally set some
046 * converter-specific properties using additional calls to
047 * {@link ConversionProperties#addOption(ConversionOption)}.
048 * Many converters provide the ability to
049 * configure their behavior to some extent; this is realized through the use
050 * of properties that offer different options.  The default property values
051 * for each converter can be interrogated using the method
052 * {@link SBMLConverter#getDefaultProperties()} on the converter class in question .
053 <p>
054 * Finally, the caller should invoke the method
055 * {@link SBMLDocument#convert(ConversionProperties)}
056 * with the {@link ConversionProperties} object as an argument.
057 <p>
058 * <h3>Example of invoking an SBML converter</h3>
059 <p>
060 * The following code fragment illustrates an example using
061 * {@link SBMLReactionConverter}, which is invoked using the option string
062 * <code>'replaceReactions':</code>
063 <p>
064<pre class='fragment'>
065{@link ConversionProperties} props = new {@link ConversionProperties}();
066if (props != null) {
067  props.addOption('replaceReactions');
068} else {
069  // Deal with error.
070}
071</pre>
072<p>
073 * In the case of {@link SBMLReactionConverter}, there are no options to affect
074 * its behavior, so the next step is simply to invoke the converter on
075 * an {@link SBMLDocument} object.  Continuing the example code:
076 <p>
077<pre class='fragment'>
078  // Assume that the variable 'document' has been set to an {@link SBMLDocument} object.
079  status = document.convert(config);
080  if (status != libsbml.LIBSBML_OPERATION_SUCCESS)
081  {
082    // Handle error somehow.
083    System.out.println('Error: conversion failed due to the following:');
084    document.printErrors();
085  }
086</pre>
087<p>
088 * Here is an example of using a converter that offers an option. The
089 * following code invokes {@link SBMLStripPackageConverter} to remove the
090 * SBML Level&nbsp;3 <em>Layout</em> package from a model.  It sets the name
091 * of the package to be removed by adding a value for the option named
092 * <code>'package'</code> defined by that converter:
093 <p>
094<pre class='fragment'>
095{@link ConversionProperties} config = new {@link ConversionProperties}();
096if (config != None) {
097  config.addOption('stripPackage');
098  config.addOption('package', 'layout');
099  status = document.convert(config);
100  if (status != LIBSBML_OPERATION_SUCCESS) {
101    // Handle error somehow.
102    System.out.println('Error: unable to strip the {@link Layout} package');
103    document.printErrors();
104  }
105} else {
106  // Handle error somehow.
107  System.out.println('Error: unable to create {@link ConversionProperties} object');
108}
109</pre>
110<p>
111 * <h3>Available SBML converters in libSBML</h3>
112 <p>
113 * LibSBML provides a number of built-in converters; by convention, their
114 * names end in <em>Converter</em>. The following are the built-in converters
115 * provided by libSBML 5.16.0
116:
117 <p>
118 * <p>
119 * <ul>
120 * <li> ArraysFlatteningConverter
121 * <li> {@link CobraToFbcConverter}
122 * <li> {@link CompFlatteningConverter}
123 * <li> {@link FbcToCobraConverter}
124 * <li> {@link FbcV1ToV2Converter}
125 * <li> {@link FbcV2ToV1Converter}
126 * <li> {@link SBMLFunctionDefinitionConverter}
127 * <li> {@link SBMLIdConverter}
128 * <li> {@link SBMLInferUnitsConverter}
129 * <li> {@link SBMLInitialAssignmentConverter}
130 * <li> {@link SBMLLevel1Version1Converter}
131 * <li> {@link SBMLLevelVersionConverter}
132 * <li> {@link SBMLLocalParameterConverter}
133 * <li> SBMLRateOfConverter
134 * <li> {@link SBMLReactionConverter}
135 * <li> {@link SBMLRuleConverter}
136 * <li> {@link SBMLStripPackageConverter}
137 * <li> {@link SBMLUnitsConverter}
138 *
139 * </ul>
140 <p>
141 * @see ConversionOption
142 * @see SBMLNamespaces
143 */
144
145public class ConversionProperties {
146   private long swigCPtr;
147   protected boolean swigCMemOwn;
148
149   protected ConversionProperties(long cPtr, boolean cMemoryOwn)
150   {
151     swigCMemOwn = cMemoryOwn;
152     swigCPtr    = cPtr;
153   }
154
155   protected static long getCPtr(ConversionProperties obj)
156   {
157     return (obj == null) ? 0 : obj.swigCPtr;
158   }
159
160   protected static long getCPtrAndDisown (ConversionProperties obj)
161   {
162     long ptr = 0;
163
164     if (obj != null)
165     {
166       ptr             = obj.swigCPtr;
167       obj.swigCMemOwn = false;
168     }
169
170     return ptr;
171   }
172
173  protected void finalize() {
174    delete();
175  }
176
177  public synchronized void delete() {
178    if (swigCPtr != 0) {
179      if (swigCMemOwn) {
180        swigCMemOwn = false;
181        libsbmlJNI.delete_ConversionProperties(swigCPtr);
182      }
183      swigCPtr = 0;
184    }
185  }
186
187  
188/**
189   * Constructor that initializes the conversion properties
190   * with a specific SBML target namespace.
191   <p>
192   * @param targetNS the target namespace to convert to.
193   <p>
194   * 
195</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
196The native C++ implementation of this method defines a default argument
197value. In the documentation generated for different libSBML language
198bindings, you may or may not see corresponding arguments in the method
199declarations. For example, in Java and C#, a default argument is handled by
200declaring two separate methods, with one of them having the argument and
201the other one lacking the argument. However, the libSBML documentation will
202be <em>identical</em> for both methods. Consequently, if you are reading
203this and do not see an argument even though one is described, please look
204for descriptions of other variants of this method near where this one
205appears in the documentation.
206</dd></dl>
207 
208   */ public
209 ConversionProperties(SBMLNamespaces targetNS) {
210    this(libsbmlJNI.new_ConversionProperties__SWIG_0(SBMLNamespaces.getCPtr(targetNS), targetNS), true);
211  }
212
213  
214/**
215   * Constructor that initializes the conversion properties
216   * with a specific SBML target namespace.
217   <p>
218   * @param targetNS the target namespace to convert to.
219   <p>
220   * 
221</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
222The native C++ implementation of this method defines a default argument
223value. In the documentation generated for different libSBML language
224bindings, you may or may not see corresponding arguments in the method
225declarations. For example, in Java and C#, a default argument is handled by
226declaring two separate methods, with one of them having the argument and
227the other one lacking the argument. However, the libSBML documentation will
228be <em>identical</em> for both methods. Consequently, if you are reading
229this and do not see an argument even though one is described, please look
230for descriptions of other variants of this method near where this one
231appears in the documentation.
232</dd></dl>
233 
234   */ public
235 ConversionProperties() {
236    this(libsbmlJNI.new_ConversionProperties__SWIG_1(), true);
237  }
238
239  
240/**
241   * Copy constructor.
242   <p>
243   * @param orig the object to copy.
244   */ public
245 ConversionProperties(ConversionProperties orig) {
246    this(libsbmlJNI.new_ConversionProperties__SWIG_2(ConversionProperties.getCPtr(orig), orig), true);
247  }
248
249  
250/**
251   * Creates and returns a deep copy of this {@link ConversionProperties} object.
252   <p>
253   * @return the (deep) copy of this {@link ConversionProperties} object.
254   */ public
255 ConversionProperties cloneObject() {
256    long cPtr = libsbmlJNI.ConversionProperties_cloneObject(swigCPtr, this);
257    return (cPtr == 0) ? null : new ConversionProperties(cPtr, true);
258  }
259
260  
261/**
262   * Returns the current target SBML namespace.
263   <p>
264   * @return the SBMLNamepaces object expressing the target namespace.
265   */ public
266 SBMLNamespaces getTargetNamespaces() {
267  return libsbml.DowncastSBMLNamespaces(libsbmlJNI.ConversionProperties_getTargetNamespaces(swigCPtr, this), false);
268}
269
270  
271/**
272   * Returns <code>true</code> if the target SBML namespace has been set.
273   <p>
274   * @return <code>true</code> if the target namespace has been set, <code>false</code>
275   * otherwise.
276   */ public
277 boolean hasTargetNamespaces() {
278    return libsbmlJNI.ConversionProperties_hasTargetNamespaces(swigCPtr, this);
279  }
280
281  
282/**
283   * Sets the target namespace.
284   <p>
285   * @param targetNS the target namespace to use.
286   */ public
287 void setTargetNamespaces(SBMLNamespaces targetNS) {
288    libsbmlJNI.ConversionProperties_setTargetNamespaces(swigCPtr, this, SBMLNamespaces.getCPtr(targetNS), targetNS);
289  }
290
291  
292/**
293   * Returns the description string for a given option in this properties
294   * object.
295   <p>
296   * @param key the key for the option.
297   <p>
298   * @return the description text of the option with the given key.
299   */ public
300 String getDescription(String key) {
301    return libsbmlJNI.ConversionProperties_getDescription(swigCPtr, this, key);
302  }
303
304  
305/**
306   * Returns the type of a given option in this properties object.
307   <p>
308   * @param key the key for the option.
309   <p>
310   * @return the type of the option with the given key.
311   */ public
312 int getType(String key) {
313    return libsbmlJNI.ConversionProperties_getType(swigCPtr, this, key);
314  }
315
316  
317/**
318   * Returns the {@link ConversionOption} object for a given key.
319   <p>
320   * @param key the key for the option.
321   <p>
322   * @return the option with the given key.
323   */ public
324 ConversionOption getOption(String key) {
325    long cPtr = libsbmlJNI.ConversionProperties_getOption__SWIG_0(swigCPtr, this, key);
326    return (cPtr == 0) ? null : new ConversionOption(cPtr, false);
327  }
328
329  
330/**
331   * Returns the {@link ConversionOption} object for the given <code>index</code>.
332   <p>
333   * @param index the index for the option.
334   <p>
335   * @return the option with the given <code>index</code>.
336   */ public
337 ConversionOption getOption(int index) {
338    long cPtr = libsbmlJNI.ConversionProperties_getOption__SWIG_1(swigCPtr, this, index);
339    return (cPtr == 0) ? null : new ConversionOption(cPtr, false);
340  }
341
342  
343/**
344   * Adds a copy of the given option to this properties object.
345   <p>
346   * @param option the option to add.
347   */ public
348 void addOption(ConversionOption option) {
349    libsbmlJNI.ConversionProperties_addOption__SWIG_0(swigCPtr, this, ConversionOption.getCPtr(option), option);
350  }
351
352  
353/**
354   * Adds a new {@link ConversionOption} object with the given parameters.
355   <p>
356   * @param key the key for the new option.
357   * @param value (optional) the value of that option.
358   * @param type (optional) the type of the option (see the documentation
359   * for {@link ConversionOption} for more information about the types).
360   * @param description (optional) the description for the option.
361   <p>
362   * 
363</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
364The native C++ implementation of this method defines a default argument
365value. In the documentation generated for different libSBML language
366bindings, you may or may not see corresponding arguments in the method
367declarations. For example, in Java and C#, a default argument is handled by
368declaring two separate methods, with one of them having the argument and
369the other one lacking the argument. However, the libSBML documentation will
370be <em>identical</em> for both methods. Consequently, if you are reading
371this and do not see an argument even though one is described, please look
372for descriptions of other variants of this method near where this one
373appears in the documentation.
374</dd></dl>
375 
376   */ public
377 void addOption(String key, String value, int type, String description) {
378    libsbmlJNI.ConversionProperties_addOption__SWIG_1(swigCPtr, this, key, value, type, description);
379  }
380
381  
382/**
383   * Adds a new {@link ConversionOption} object with the given parameters.
384   <p>
385   * @param key the key for the new option.
386   * @param value (optional) the value of that option.
387   * @param type (optional) the type of the option (see the documentation
388   * for {@link ConversionOption} for more information about the types).
389   * @param description (optional) the description for the option.
390   <p>
391   * 
392</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
393The native C++ implementation of this method defines a default argument
394value. In the documentation generated for different libSBML language
395bindings, you may or may not see corresponding arguments in the method
396declarations. For example, in Java and C#, a default argument is handled by
397declaring two separate methods, with one of them having the argument and
398the other one lacking the argument. However, the libSBML documentation will
399be <em>identical</em> for both methods. Consequently, if you are reading
400this and do not see an argument even though one is described, please look
401for descriptions of other variants of this method near where this one
402appears in the documentation.
403</dd></dl>
404 
405   */ public
406 void addOption(String key, String value, int type) {
407    libsbmlJNI.ConversionProperties_addOption__SWIG_2(swigCPtr, this, key, value, type);
408  }
409
410  
411/**
412   * Adds a new {@link ConversionOption} object with the given parameters.
413   <p>
414   * @param key the key for the new option.
415   * @param value (optional) the value of that option.
416   * @param type (optional) the type of the option (see the documentation
417   * for {@link ConversionOption} for more information about the types).
418   * @param description (optional) the description for the option.
419   <p>
420   * 
421</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
422The native C++ implementation of this method defines a default argument
423value. In the documentation generated for different libSBML language
424bindings, you may or may not see corresponding arguments in the method
425declarations. For example, in Java and C#, a default argument is handled by
426declaring two separate methods, with one of them having the argument and
427the other one lacking the argument. However, the libSBML documentation will
428be <em>identical</em> for both methods. Consequently, if you are reading
429this and do not see an argument even though one is described, please look
430for descriptions of other variants of this method near where this one
431appears in the documentation.
432</dd></dl>
433 
434   */ public
435 void addOption(String key, String value) {
436    libsbmlJNI.ConversionProperties_addOption__SWIG_3(swigCPtr, this, key, value);
437  }
438
439  
440/**
441   * Adds a new {@link ConversionOption} object with the given parameters.
442   <p>
443   * @param key the key for the new option.
444   * @param value (optional) the value of that option.
445   * @param type (optional) the type of the option (see the documentation
446   * for {@link ConversionOption} for more information about the types).
447   * @param description (optional) the description for the option.
448   <p>
449   * 
450</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
451The native C++ implementation of this method defines a default argument
452value. In the documentation generated for different libSBML language
453bindings, you may or may not see corresponding arguments in the method
454declarations. For example, in Java and C#, a default argument is handled by
455declaring two separate methods, with one of them having the argument and
456the other one lacking the argument. However, the libSBML documentation will
457be <em>identical</em> for both methods. Consequently, if you are reading
458this and do not see an argument even though one is described, please look
459for descriptions of other variants of this method near where this one
460appears in the documentation.
461</dd></dl>
462 
463   */ public
464 void addOption(String key) {
465    libsbmlJNI.ConversionProperties_addOption__SWIG_4(swigCPtr, this, key);
466  }
467
468  
469/**
470   * Adds a new {@link ConversionOption} object with the given parameters.
471   <p>
472   * @param key the key for the new option.
473   * @param value the string value of that option.
474   * @param description (optional) the description for the option.
475   <p>
476   * 
477</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
478The native C++ implementation of this method defines a default argument
479value. In the documentation generated for different libSBML language
480bindings, you may or may not see corresponding arguments in the method
481declarations. For example, in Java and C#, a default argument is handled by
482declaring two separate methods, with one of them having the argument and
483the other one lacking the argument. However, the libSBML documentation will
484be <em>identical</em> for both methods. Consequently, if you are reading
485this and do not see an argument even though one is described, please look
486for descriptions of other variants of this method near where this one
487appears in the documentation.
488</dd></dl>
489 
490   */ public
491 void addOption(String key, String value, String description) {
492    libsbmlJNI.ConversionProperties_addOption__SWIG_5(swigCPtr, this, key, value, description);
493  }
494
495  
496/**
497   * Adds a new {@link ConversionOption} object with the given parameters.
498   <p>
499   * @param key the key for the new option.
500   * @param value the boolean value of that option.
501   * @param description (optional) the description for the option.
502   <p>
503   * 
504</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
505The native C++ implementation of this method defines a default argument
506value. In the documentation generated for different libSBML language
507bindings, you may or may not see corresponding arguments in the method
508declarations. For example, in Java and C#, a default argument is handled by
509declaring two separate methods, with one of them having the argument and
510the other one lacking the argument. However, the libSBML documentation will
511be <em>identical</em> for both methods. Consequently, if you are reading
512this and do not see an argument even though one is described, please look
513for descriptions of other variants of this method near where this one
514appears in the documentation.
515</dd></dl>
516 
517   */ public
518 void addOption(String key, boolean value, String description) {
519    libsbmlJNI.ConversionProperties_addOption__SWIG_7(swigCPtr, this, key, value, description);
520  }
521
522  
523/**
524   * Adds a new {@link ConversionOption} object with the given parameters.
525   <p>
526   * @param key the key for the new option.
527   * @param value the boolean value of that option.
528   * @param description (optional) the description for the option.
529   <p>
530   * 
531</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
532The native C++ implementation of this method defines a default argument
533value. In the documentation generated for different libSBML language
534bindings, you may or may not see corresponding arguments in the method
535declarations. For example, in Java and C#, a default argument is handled by
536declaring two separate methods, with one of them having the argument and
537the other one lacking the argument. However, the libSBML documentation will
538be <em>identical</em> for both methods. Consequently, if you are reading
539this and do not see an argument even though one is described, please look
540for descriptions of other variants of this method near where this one
541appears in the documentation.
542</dd></dl>
543 
544   */ public
545 void addOption(String key, boolean value) {
546    libsbmlJNI.ConversionProperties_addOption__SWIG_8(swigCPtr, this, key, value);
547  }
548
549  
550/**
551   * Adds a new {@link ConversionOption} object with the given parameters.
552   <p>
553   * @param key the key for the new option.
554   * @param value the double value of that option.
555   * @param description (optional) the description for the option.
556   <p>
557   * 
558</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
559The native C++ implementation of this method defines a default argument
560value. In the documentation generated for different libSBML language
561bindings, you may or may not see corresponding arguments in the method
562declarations. For example, in Java and C#, a default argument is handled by
563declaring two separate methods, with one of them having the argument and
564the other one lacking the argument. However, the libSBML documentation will
565be <em>identical</em> for both methods. Consequently, if you are reading
566this and do not see an argument even though one is described, please look
567for descriptions of other variants of this method near where this one
568appears in the documentation.
569</dd></dl>
570 
571   */ public
572 void addOption(String key, double value, String description) {
573    libsbmlJNI.ConversionProperties_addOption__SWIG_9(swigCPtr, this, key, value, description);
574  }
575
576  
577/**
578   * Adds a new {@link ConversionOption} object with the given parameters.
579   <p>
580   * @param key the key for the new option.
581   * @param value the double value of that option.
582   * @param description (optional) the description for the option.
583   <p>
584   * 
585</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
586The native C++ implementation of this method defines a default argument
587value. In the documentation generated for different libSBML language
588bindings, you may or may not see corresponding arguments in the method
589declarations. For example, in Java and C#, a default argument is handled by
590declaring two separate methods, with one of them having the argument and
591the other one lacking the argument. However, the libSBML documentation will
592be <em>identical</em> for both methods. Consequently, if you are reading
593this and do not see an argument even though one is described, please look
594for descriptions of other variants of this method near where this one
595appears in the documentation.
596</dd></dl>
597 
598   */ public
599 void addOption(String key, double value) {
600    libsbmlJNI.ConversionProperties_addOption__SWIG_10(swigCPtr, this, key, value);
601  }
602
603  
604/**
605   * Adds a new {@link ConversionOption} object with the given parameters.
606   <p>
607   * @param key the key for the new option.
608   * @param value the float value of that option.
609   * @param description (optional) the description for the option.
610   <p>
611   * 
612</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
613The native C++ implementation of this method defines a default argument
614value. In the documentation generated for different libSBML language
615bindings, you may or may not see corresponding arguments in the method
616declarations. For example, in Java and C#, a default argument is handled by
617declaring two separate methods, with one of them having the argument and
618the other one lacking the argument. However, the libSBML documentation will
619be <em>identical</em> for both methods. Consequently, if you are reading
620this and do not see an argument even though one is described, please look
621for descriptions of other variants of this method near where this one
622appears in the documentation.
623</dd></dl>
624 
625   */ public
626 void addOption(String key, float value, String description) {
627    libsbmlJNI.ConversionProperties_addOption__SWIG_11(swigCPtr, this, key, value, description);
628  }
629
630  
631/**
632   * Adds a new {@link ConversionOption} object with the given parameters.
633   <p>
634   * @param key the key for the new option.
635   * @param value the float value of that option.
636   * @param description (optional) the description for the option.
637   <p>
638   * 
639</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
640The native C++ implementation of this method defines a default argument
641value. In the documentation generated for different libSBML language
642bindings, you may or may not see corresponding arguments in the method
643declarations. For example, in Java and C#, a default argument is handled by
644declaring two separate methods, with one of them having the argument and
645the other one lacking the argument. However, the libSBML documentation will
646be <em>identical</em> for both methods. Consequently, if you are reading
647this and do not see an argument even though one is described, please look
648for descriptions of other variants of this method near where this one
649appears in the documentation.
650</dd></dl>
651 
652   */ public
653 void addOption(String key, float value) {
654    libsbmlJNI.ConversionProperties_addOption__SWIG_12(swigCPtr, this, key, value);
655  }
656
657  
658/**
659   * Adds a new {@link ConversionOption} object with the given parameters.
660   <p>
661   * @param key the key for the new option.
662   * @param value the integer value of that option.
663   * @param description (optional) the description for the option.
664   <p>
665   * 
666</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
667The native C++ implementation of this method defines a default argument
668value. In the documentation generated for different libSBML language
669bindings, you may or may not see corresponding arguments in the method
670declarations. For example, in Java and C#, a default argument is handled by
671declaring two separate methods, with one of them having the argument and
672the other one lacking the argument. However, the libSBML documentation will
673be <em>identical</em> for both methods. Consequently, if you are reading
674this and do not see an argument even though one is described, please look
675for descriptions of other variants of this method near where this one
676appears in the documentation.
677</dd></dl>
678 
679   */ public
680 void addOption(String key, int value, String description) {
681    libsbmlJNI.ConversionProperties_addOption__SWIG_13(swigCPtr, this, key, value, description);
682  }
683
684  
685/**
686   * Adds a new {@link ConversionOption} object with the given parameters.
687   <p>
688   * @param key the key for the new option.
689   * @param value the integer value of that option.
690   * @param description (optional) the description for the option.
691   <p>
692   * 
693</dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
694The native C++ implementation of this method defines a default argument
695value. In the documentation generated for different libSBML language
696bindings, you may or may not see corresponding arguments in the method
697declarations. For example, in Java and C#, a default argument is handled by
698declaring two separate methods, with one of them having the argument and
699the other one lacking the argument. However, the libSBML documentation will
700be <em>identical</em> for both methods. Consequently, if you are reading
701this and do not see an argument even though one is described, please look
702for descriptions of other variants of this method near where this one
703appears in the documentation.
704</dd></dl>
705 
706   */ public
707 void addOption(String key, int value) {
708    libsbmlJNI.ConversionProperties_addOption__SWIG_14(swigCPtr, this, key, value);
709  }
710
711  
712/**
713   * Removes the option with the given key from this properties object.
714   <p>
715   * @param key the key for the new option to remove.
716   * @return the removed option.
717   */ public
718 ConversionOption removeOption(String key) {
719    long cPtr = libsbmlJNI.ConversionProperties_removeOption(swigCPtr, this, key);
720    return (cPtr == 0) ? null : new ConversionOption(cPtr, false);
721  }
722
723  
724/**
725   * Returns <code>true</code> if this properties object contains an option with
726   * the given key.
727   <p>
728   * @param key the key of the option to find.
729   <p>
730   * @return <code>true</code> if an option with the given <code>key</code> exists in
731   * this properties object, <code>false</code> otherwise.
732   */ public
733 boolean hasOption(String key) {
734    return libsbmlJNI.ConversionProperties_hasOption(swigCPtr, this, key);
735  }
736
737  
738/**
739   * Returns the value of the given option as a string.
740   <p>
741   * @param key the key for the option.
742   <p>
743   * @return the string value of the option with the given key.
744   */ public
745 String getValue(String key) {
746    return libsbmlJNI.ConversionProperties_getValue(swigCPtr, this, key);
747  }
748
749  
750/**
751   * Sets the value of the given option to a string.
752   <p>
753   * @param key the key for the option.
754   * @param value the new value.
755   */ public
756 void setValue(String key, String value) {
757    libsbmlJNI.ConversionProperties_setValue(swigCPtr, this, key, value);
758  }
759
760  
761/**
762   * Returns the value of the given option as a Boolean.
763   <p>
764   * @param key the key for the option.
765   <p>
766   * @return the boolean value of the option with the given key.
767   */ public
768 boolean getBoolValue(String key) {
769    return libsbmlJNI.ConversionProperties_getBoolValue(swigCPtr, this, key);
770  }
771
772  
773/**
774   * Sets the value of the given option to a Boolean.
775   <p>
776   * @param key the key for the option.
777   <p>
778   * @param value the new Boolean value.
779   */ public
780 void setBoolValue(String key, boolean value) {
781    libsbmlJNI.ConversionProperties_setBoolValue(swigCPtr, this, key, value);
782  }
783
784  
785/**
786   * Returns the value of the given option as a <code>double.</code>
787   <p>
788   * @param key the key for the option.
789   <p>
790   * @return the double value of the option with the given key.
791   */ public
792 double getDoubleValue(String key) {
793    return libsbmlJNI.ConversionProperties_getDoubleValue(swigCPtr, this, key);
794  }
795
796  
797/**
798   * Sets the value of the given option to a <code>double.</code>
799   <p>
800   * @param key the key for the option.
801   <p>
802   * @param value the new double value.
803   */ public
804 void setDoubleValue(String key, double value) {
805    libsbmlJNI.ConversionProperties_setDoubleValue(swigCPtr, this, key, value);
806  }
807
808  
809/**
810   * Returns the value of the given option as a <code>float.</code>
811   <p>
812   * @param key the key for the option.
813   <p>
814   * @return the float value of the option with the given key.
815   */ public
816 float getFloatValue(String key) {
817    return libsbmlJNI.ConversionProperties_getFloatValue(swigCPtr, this, key);
818  }
819
820  
821/**
822   * Sets the value of the given option to a <code>float.</code>
823   <p>
824   * @param key the key for the option.
825   <p>
826   * @param value the new float value.
827   */ public
828 void setFloatValue(String key, float value) {
829    libsbmlJNI.ConversionProperties_setFloatValue(swigCPtr, this, key, value);
830  }
831
832  
833/**
834   * Returns the value of the given option as an integer.
835   <p>
836   * @param key the key for the option.
837   <p>
838   * @return the int value of the option with the given key.
839   */ public
840 int getIntValue(String key) {
841    return libsbmlJNI.ConversionProperties_getIntValue(swigCPtr, this, key);
842  }
843
844  
845/**
846   * Sets the value of the given option to an integer.
847   <p>
848   * @param key the key for the option.
849   <p>
850   * @param value the new integer value.
851   */ public
852 void setIntValue(String key, int value) {
853    libsbmlJNI.ConversionProperties_setIntValue(swigCPtr, this, key, value);
854  }
855
856  
857/** 
858   * Returns the number of options in this Conversion Properties object
859   <p>
860   * @return the number of options in this properties object.
861   */ public
862 int getNumOptions() {
863    return libsbmlJNI.ConversionProperties_getNumOptions(swigCPtr, this);
864  }
865
866}