001 /* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (http://www.swig.org).
003 * Version 2.0.9
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
009 package org.sbml.libsbml;
010
011 /**
012 *
013 * SBML converter for replacing initial assignments.
014 * <p>
015 * <p style='color: #777; font-style: italic'>
016 This class of objects is defined by libSBML only and has no direct
017 equivalent in terms of SBML components. It is a class used in
018 the implementation of extra functionality provided by libSBML.
019 </p>
020
021 * <p>
022 * This is an SBML converter for replacing {@link InitialAssignment} objects
023 * (when possible) by setting the initial value attributes on the model
024 * objects being assigned. In other words, for every object that is
025 * the target of an initial assignment in the model, it evaluates the
026 * mathematical expression of the assignment to get a numerical value,
027 * and then sets the corresponding attribute of the object to the
028 * value. The effects for different kinds of SBML components are
029 * as follows:
030 * <p>
031 * <center>
032 * <table border='0' class='text-table width80 normal-font alt-row-colors'>
033 * <tr style='background: lightgray; font-size: 14px;'>
034 * <th align='left' width='200'>Component</th>
035 * <th align='left'>Effect</th>
036 * </tr>
037 * <tr>
038 * <td>Compartment</td>
039 * <td>Sets the value of the <code>size</code> attribute.</td>
040 * </tr>
041 * <tr>
042 * <td>Species</td>
043 * <td>Sets the value of either the <code>initialAmount</code>
044 * or the <code>initialConcentration</code> attributes, depending
045 * on the value of the {@link Species} object's
046 * <code>hasOnlySubstanceUnits</code> attribute.</td>
047 * </tr>
048 * <tr>
049 * <td>Parameter</td>
050 * <td>Sets the value of the <code>value</code> attribute.</td>
051 * </tr>
052 * <tr>
053 * <td>SpeciesReference</td>
054 * <td>Sets the value of the <code>stoichiometry</code> attribute
055 * in the {@link Reaction} object where the {@link SpeciesReference} object appears.</td>
056 * </tr>
057 * </table>
058 * </center>
059 * <p>
060 * @see SBMLFunctionDefinitionConverter
061 * @see SBMLLevelVersionConverter
062 * @see SBMLRuleConverter
063 * @see SBMLStripPackageConverter
064 * @see SBMLUnitsConverter
065 */
066
067 public class SBMLInitialAssignmentConverter extends SBMLConverter {
068 private long swigCPtr;
069
070 protected SBMLInitialAssignmentConverter(long cPtr, boolean cMemoryOwn)
071 {
072 super(libsbmlJNI.SBMLInitialAssignmentConverter_SWIGUpcast(cPtr), cMemoryOwn);
073 swigCPtr = cPtr;
074 }
075
076 protected static long getCPtr(SBMLInitialAssignmentConverter obj)
077 {
078 return (obj == null) ? 0 : obj.swigCPtr;
079 }
080
081 protected static long getCPtrAndDisown (SBMLInitialAssignmentConverter obj)
082 {
083 long ptr = 0;
084
085 if (obj != null)
086 {
087 ptr = obj.swigCPtr;
088 obj.swigCMemOwn = false;
089 }
090
091 return ptr;
092 }
093
094 protected void finalize() {
095 delete();
096 }
097
098 public synchronized void delete() {
099 if (swigCPtr != 0) {
100 if (swigCMemOwn) {
101 swigCMemOwn = false;
102 libsbmlJNI.delete_SBMLInitialAssignmentConverter(swigCPtr);
103 }
104 swigCPtr = 0;
105 }
106 super.delete();
107 }
108
109 public static void init() {
110 libsbmlJNI.SBMLInitialAssignmentConverter_init();
111 }
112
113
114 /**
115 * Creates a new {@link SBMLInitialAssignmentConverter} object.
116 */ public
117 SBMLInitialAssignmentConverter() {
118 this(libsbmlJNI.new_SBMLInitialAssignmentConverter__SWIG_0(), true);
119 }
120
121
122 /**
123 * Copy constructor; creates a copy of an {@link SBMLInitialAssignmentConverter}
124 * object.
125 * <p>
126 * @param obj the {@link SBMLInitialAssignmentConverter} object to copy.
127 */ public
128 SBMLInitialAssignmentConverter(SBMLInitialAssignmentConverter obj) {
129 this(libsbmlJNI.new_SBMLInitialAssignmentConverter__SWIG_1(SBMLInitialAssignmentConverter.getCPtr(obj), obj), true);
130 }
131
132
133 /**
134 * Creates and returns a deep copy of this {@link SBMLInitialAssignmentConverter}
135 * object.
136 * <p>
137 * @return a (deep) copy of this converter.
138 */ public
139 SBMLConverter cloneObject() {
140 long cPtr = libsbmlJNI.SBMLInitialAssignmentConverter_cloneObject(swigCPtr, this);
141 return (cPtr == 0) ? null : new SBMLConverter(cPtr, true);
142 }
143
144
145 /**
146 * Returns <code>true</code> if this converter object's properties match the given
147 * properties.
148 * <p>
149 * A typical use of this method involves creating a {@link ConversionProperties}
150 * object, setting the options desired, and then calling this method on
151 * an {@link SBMLInitialAssignmentConverter} object to find out if the object's
152 * property values match the given ones. This method is also used by
153 * {@link SBMLConverterRegistry#getConverterFor(ConversionProperties props)}
154 * to search across all registered converters for one matching particular
155 * properties.
156 * <p>
157 * @param props the properties to match.
158 * <p>
159 * @return <code>true</code> if this converter's properties match, <code>false</code>
160 * otherwise.
161 */ public
162 boolean matchesProperties(ConversionProperties props) {
163 return libsbmlJNI.SBMLInitialAssignmentConverter_matchesProperties(swigCPtr, this, ConversionProperties.getCPtr(props), props);
164 }
165
166
167 /**
168 * Perform the conversion.
169 * <p>
170 * This method causes the converter to do the actual conversion work,
171 * that is, to convert the {@link SBMLDocument} object set by
172 * {@link SBMLConverter#setDocument(SBMLDocument doc)} and
173 * with the configuration options set by
174 * {@link SBMLConverter#setProperties(ConversionProperties props)}.
175 * <p>
176 * @return integer value indicating the success/failure of the operation.
177 * The possible values are:
178 * <ul>
179 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS }
180 * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED }
181 * <li> {@link libsbmlConstants#LIBSBML_INVALID_OBJECT LIBSBML_INVALID_OBJECT }
182 * </ul>
183 */ public
184 int convert() {
185 return libsbmlJNI.SBMLInitialAssignmentConverter_convert(swigCPtr, this);
186 }
187
188
189 /**
190 * Returns the default properties of this converter.
191 * <p>
192 * A given converter exposes one or more properties that can be adjusted
193 * in order to influence the behavior of the converter. This method
194 * returns the <em>default</em> property settings for this converter. It is
195 * meant to be called in order to discover all the settings for the
196 * converter object.
197 * <p>
198 * @return the {@link ConversionProperties} object describing the default properties
199 * for this converter.
200 */ public
201 ConversionProperties getDefaultProperties() {
202 return new ConversionProperties(libsbmlJNI.SBMLInitialAssignmentConverter_getDefaultProperties(swigCPtr, this), true);
203 }
204
205 }