1 /**
2  * @file SedFitMapping.h
3  * @brief Definition of the SedFitMapping class.
4  * @author DEVISER
5  *
6  * <!--------------------------------------------------------------------------
7  * This file is part of libSEDML. Please visit http://sed-ml.org for more
8  * information about SED-ML. The latest version of libSEDML can be found on
9  * github: https://github.com/fbergmann/libSEDML/
10  *
11 
12  * Copyright (c) 2013-2019, Frank T. Bergmann
13  * All rights reserved.
14  *
15 
16  * Redistribution and use in source and binary forms, with or without
17  * modification, are permitted provided that the following conditions are met:
18  *
19 
20  * 1. Redistributions of source code must retain the above copyright notice,
21  * this
22  * list of conditions and the following disclaimer.
23  * 2. Redistributions in binary form must reproduce the above copyright notice,
24  * this list of conditions and the following disclaimer in the documentation
25  * and/or other materials provided with the distribution.
26  *
27  * This library is free software; you can redistribute it and/or modify it
28  * under the terms of the GNU Lesser General Public License as published by the
29  * Free Software Foundation. A copy of the license agreement is provided in the
30  * file named "LICENSE.txt" included with this software distribution and also
31  * available online as http://sbml.org/software/libsbml/license.html
32  * ------------------------------------------------------------------------ -->
33  *
34  * @class SedFitMapping
35  * @sbmlbrief{sedml} TODO:Definition of the SedFitMapping class.
36  */
37 
38 /**
39  * <!-- ~ ~ ~ ~ ~ Start of common documentation strings ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
40  * The following text is used as common documentation blocks copied multiple
41  * times elsewhere in this file. The use of @class is a hack needed because
42  * Doxygen's @copydetails command has limited functionality. Symbols
43  * beginning with "doc_" are marked as ignored in our Doxygen configuration.
44  * ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -->
45  *
46  *
47  * @class doc_sedfitmapping_type
48  *
49  * @par
50  * The attribute "type" on a SedFitMapping object is used to TODO:add
51  * explanation
52  *
53  * In the SBML
54  * Level&nbsp;3 Version&nbsp;1 Sedml specification, the following are the
55  * allowable values for "type":
56  * <ul>
57  * <li> @c "time", TODO:add description
58  *
59  * <li> @c "experimentalCondition", TODO:add description
60  *
61  * <li> @c "observable", TODO:add description
62  *
63  * </ul>
64  */
65 
66 
67 #ifndef SedFitMapping_H__
68 #define SedFitMapping_H__
69 
70 
71 #include <sedml/common/extern.h>
72 #include <sedml/common/sedmlfwd.h>
73 #include <sedml/common/SedmlEnumerations.h>
74 
75 
76 #ifdef __cplusplus
77 
78 
79 #include <string>
80 
81 
82 #include <sedml/SedBase.h>
83 #include <sbml/common/libsbml-namespace.h>
84 
85 
86 LIBSEDML_CPP_NAMESPACE_BEGIN
87 
88 
89 class LIBSEDML_EXTERN SedFitMapping : public SedBase
90 {
91 protected:
92 
93   /** @cond doxygenLibSEDMLInternal */
94 
95   std::string mDataSource;
96   std::string mTarget;
97   MappingType_t mType;
98   double mWeight;
99   bool mIsSetWeight;
100   std::string mPointWeight;
101 
102   /** @endcond */
103 
104 public:
105 
106   /**
107    * Creates a new SedFitMapping using the given SED-ML Level and @ p version
108    * values.
109    *
110    * @param level an unsigned int, the SED-ML Level to assign to this
111    * SedFitMapping.
112    *
113    * @param version an unsigned int, the SED-ML Version to assign to this
114    * SedFitMapping.
115    *
116    * @copydetails doc_note_setting_lv_pkg
117    */
118   SedFitMapping(unsigned int level = SEDML_DEFAULT_LEVEL,
119                 unsigned int version = SEDML_DEFAULT_VERSION);
120 
121 
122   /**
123    * Creates a new SedFitMapping using the given SedNamespaces object @p
124    * sedmlns.
125    *
126    * @param sedmlns the SedNamespaces object.
127    *
128    * @copydetails doc_note_setting_lv_pkg
129    */
130   SedFitMapping(SedNamespaces *sedmlns);
131 
132 
133   /**
134    * Copy constructor for SedFitMapping.
135    *
136    * @param orig the SedFitMapping instance to copy.
137    */
138   SedFitMapping(const SedFitMapping& orig);
139 
140 
141   /**
142    * Assignment operator for SedFitMapping.
143    *
144    * @param rhs the SedFitMapping object whose values are to be used as the
145    * basis of the assignment.
146    */
147   SedFitMapping& operator=(const SedFitMapping& rhs);
148 
149 
150   /**
151    * Creates and returns a deep copy of this SedFitMapping object.
152    *
153    * @return a (deep) copy of this SedFitMapping object.
154    */
155   virtual SedFitMapping* clone() const;
156 
157 
158   /**
159    * Destructor for SedFitMapping.
160    */
161   virtual ~SedFitMapping();
162 
163 
164   /**
165    * Returns the value of the "dataSource" attribute of this SedFitMapping.
166    *
167    * @return the value of the "dataSource" attribute of this SedFitMapping as a
168    * string.
169    */
170   const std::string& getDataSource() const;
171 
172 
173   /**
174    * Returns the value of the "target" attribute of this SedFitMapping.
175    *
176    * @return the value of the "target" attribute of this SedFitMapping as a
177    * string.
178    */
179   const std::string& getTarget() const;
180 
181 
182   /**
183    * Returns the value of the "type" attribute of this SedFitMapping.
184    *
185    * @return the value of the "type" attribute of this SedFitMapping as a
186    * MappingType_t.
187    *
188    * @copydetails doc_sedfitmapping_type
189    * @if clike The value is drawn from the enumeration @ref MappingType_t
190    * @endif
191    * The possible values returned by this method are:
192    * @li @sbmlconstant{SEDML_MAPPINGTYPE_TIME, MappingType_t}
193    * @li @sbmlconstant{SEDML_MAPPINGTYPE_EXPERIMENTALCONDITION, MappingType_t}
194    * @li @sbmlconstant{SEDML_MAPPINGTYPE_OBSERVABLE, MappingType_t}
195    * @li @sbmlconstant{SEDML_MAPPINGTYPE_INVALID, MappingType_t}
196    */
197   MappingType_t getType() const;
198 
199 
200   /**
201    * Returns the value of the "type" attribute of this SedFitMapping.
202    *
203    * @return the value of the "type" attribute of this SedFitMapping as a
204    * string.
205    *
206    * @copydetails doc_sedfitmapping_type
207    * The possible values returned by this method are:
208    * @li @c "time"
209    * @li @c "experimentalCondition"
210    * @li @c "observable"
211    * @li @c "invalid MappingType value"
212    */
213   std::string getTypeAsString() const;
214 
215 
216   /**
217    * Returns the value of the "weight" attribute of this SedFitMapping.
218    *
219    * @return the value of the "weight" attribute of this SedFitMapping as a
220    * double.
221    */
222   double getWeight() const;
223 
224 
225   /**
226    * Returns the value of the "pointWeight" attribute of this SedFitMapping.
227    *
228    * @return the value of the "pointWeight" attribute of this SedFitMapping as
229    * a string.
230    */
231   const std::string& getPointWeight() const;
232 
233 
234   /**
235    * Predicate returning @c true if this SedFitMapping's "dataSource" attribute
236    * is set.
237    *
238    * @return @c true if this SedFitMapping's "dataSource" attribute has been
239    * set, otherwise @c false is returned.
240    */
241   bool isSetDataSource() const;
242 
243 
244   /**
245    * Predicate returning @c true if this SedFitMapping's "target" attribute is
246    * set.
247    *
248    * @return @c true if this SedFitMapping's "target" attribute has been set,
249    * otherwise @c false is returned.
250    */
251   bool isSetTarget() const;
252 
253 
254   /**
255    * Predicate returning @c true if this SedFitMapping's "type" attribute is
256    * set.
257    *
258    * @return @c true if this SedFitMapping's "type" attribute has been set,
259    * otherwise @c false is returned.
260    *
261    * @copydetails doc_sedfitmapping_type
262    */
263   bool isSetType() const;
264 
265 
266   /**
267    * Predicate returning @c true if this SedFitMapping's "weight" attribute is
268    * set.
269    *
270    * @return @c true if this SedFitMapping's "weight" attribute has been set,
271    * otherwise @c false is returned.
272    */
273   bool isSetWeight() const;
274 
275 
276   /**
277    * Predicate returning @c true if this SedFitMapping's "pointWeight"
278    * attribute is set.
279    *
280    * @return @c true if this SedFitMapping's "pointWeight" attribute has been
281    * set, otherwise @c false is returned.
282    */
283   bool isSetPointWeight() const;
284 
285 
286   /**
287    * Sets the value of the "dataSource" attribute of this SedFitMapping.
288    *
289    * @param dataSource std::string& value of the "dataSource" attribute to be
290    * set.
291    *
292    * @copydetails doc_returns_success_code
293    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
294    * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
295    * OperationReturnValues_t}
296    */
297   int setDataSource(const std::string& dataSource);
298 
299 
300   /**
301    * Sets the value of the "target" attribute of this SedFitMapping.
302    *
303    * @param target std::string& value of the "target" attribute to be set.
304    *
305    * @copydetails doc_returns_success_code
306    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
307    * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
308    * OperationReturnValues_t}
309    */
310   int setTarget(const std::string& target);
311 
312 
313   /**
314    * Sets the value of the "type" attribute of this SedFitMapping.
315    *
316    * @param type @if clike MappingType_t@else int@endif value of the "type"
317    * attribute to be set.
318    *
319    * @copydetails doc_returns_success_code
320    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
321    * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
322    * OperationReturnValues_t}
323    *
324    * @copydetails doc_sedfitmapping_type
325    */
326   int setType(const MappingType_t type);
327 
328 
329   /**
330    * Sets the value of the "type" attribute of this SedFitMapping.
331    *
332    * @param type std::string& of the "type" attribute to be set.
333    *
334    * @copydetails doc_returns_success_code
335    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
336    * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
337    * OperationReturnValues_t}
338    *
339    * @copydetails doc_sedfitmapping_type
340    */
341   int setType(const std::string& type);
342 
343 
344   /**
345    * Sets the value of the "weight" attribute of this SedFitMapping.
346    *
347    * @param weight double value of the "weight" attribute to be set.
348    *
349    * @copydetails doc_returns_success_code
350    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
351    * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
352    * OperationReturnValues_t}
353    */
354   int setWeight(double weight);
355 
356 
357   /**
358    * Sets the value of the "pointWeight" attribute of this SedFitMapping.
359    *
360    * @param pointWeight std::string& value of the "pointWeight" attribute to be
361    * set.
362    *
363    * @copydetails doc_returns_success_code
364    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
365    * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
366    * OperationReturnValues_t}
367    */
368   int setPointWeight(const std::string& pointWeight);
369 
370 
371   /**
372    * Unsets the value of the "dataSource" attribute of this SedFitMapping.
373    *
374    * @copydetails doc_returns_success_code
375    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
376    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
377    */
378   int unsetDataSource();
379 
380 
381   /**
382    * Unsets the value of the "target" attribute of this SedFitMapping.
383    *
384    * @copydetails doc_returns_success_code
385    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
386    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
387    */
388   int unsetTarget();
389 
390 
391   /**
392    * Unsets the value of the "type" attribute of this SedFitMapping.
393    *
394    * @copydetails doc_returns_one_success_code
395    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
396    *
397    * @copydetails doc_sedfitmapping_type
398    */
399   int unsetType();
400 
401 
402   /**
403    * Unsets the value of the "weight" attribute of this SedFitMapping.
404    *
405    * @copydetails doc_returns_success_code
406    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
407    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
408    */
409   int unsetWeight();
410 
411 
412   /**
413    * Unsets the value of the "pointWeight" attribute of this SedFitMapping.
414    *
415    * @copydetails doc_returns_success_code
416    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
417    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
418    */
419   int unsetPointWeight();
420 
421 
422   /**
423    * @copydoc doc_renamesidref_common
424    */
425   virtual void renameSIdRefs(const std::string& oldid,
426                              const std::string& newid);
427 
428 
429   /**
430    * Returns the XML element name of this SedFitMapping object.
431    *
432    * For SedFitMapping, the XML element name is always @c "fitMapping".
433    *
434    * @return the name of this element, i.e. @c "fitMapping".
435    */
436   virtual const std::string& getElementName() const;
437 
438 
439   /**
440    * Returns the libSEDML type code for this SedFitMapping object.
441    *
442    * @copydetails doc_what_are_typecodes
443    *
444    * @return the SED-ML type code for this object:
445    * @sedmlconstant{SEDML_FITMAPPING, SedTypeCode_t}.
446    *
447    * @copydetails doc_warning_typecodes_not_unique
448    *
449    * @see getElementName()
450    */
451   virtual int getTypeCode() const;
452 
453 
454   /**
455    * Predicate returning @c true if all the required attributes for this
456    * SedFitMapping object have been set.
457    *
458    * @return @c true to indicate that all the required attributes of this
459    * SedFitMapping have been set, otherwise @c false is returned.
460    *
461    *
462    * @note The required attributes for the SedFitMapping object are:
463    * @li "dataSource"
464    * @li "target"
465    * @li "type"
466    */
467   virtual bool hasRequiredAttributes() const;
468 
469 
470 
471   /** @cond doxygenLibSEDMLInternal */
472 
473   /**
474    * Write any contained elements
475    */
476   virtual void writeElements(LIBSBML_CPP_NAMESPACE_QUALIFIER XMLOutputStream&
477     stream) const;
478 
479   /** @endcond */
480 
481 
482 
483   /** @cond doxygenLibSEDMLInternal */
484 
485   /**
486    * Accepts the given SedVisitor
487    */
488   virtual bool accept(SedVisitor& v) const;
489 
490   /** @endcond */
491 
492 
493 
494   /** @cond doxygenLibSEDMLInternal */
495 
496   /**
497    * Sets the parent SedDocument
498    */
499   virtual void setSedDocument(SedDocument* d);
500 
501   /** @endcond */
502 
503 
504 
505 
506   #ifndef SWIG
507 
508 
509 
510   /** @cond doxygenLibSEDMLInternal */
511 
512   /**
513    * Gets the value of the "attributeName" attribute of this SedFitMapping.
514    *
515    * @param attributeName, the name of the attribute to retrieve.
516    *
517    * @param value, the address of the value to record.
518    *
519    * @copydetails doc_returns_success_code
520    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
521    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
522    */
523   virtual int getAttribute(const std::string& attributeName, bool& value)
524     const;
525 
526   /** @endcond */
527 
528 
529 
530   /** @cond doxygenLibSEDMLInternal */
531 
532   /**
533    * Gets the value of the "attributeName" attribute of this SedFitMapping.
534    *
535    * @param attributeName, the name of the attribute to retrieve.
536    *
537    * @param value, the address of the value to record.
538    *
539    * @copydetails doc_returns_success_code
540    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
541    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
542    */
543   virtual int getAttribute(const std::string& attributeName, int& value) const;
544 
545   /** @endcond */
546 
547 
548 
549   /** @cond doxygenLibSEDMLInternal */
550 
551   /**
552    * Gets the value of the "attributeName" attribute of this SedFitMapping.
553    *
554    * @param attributeName, the name of the attribute to retrieve.
555    *
556    * @param value, the address of the value to record.
557    *
558    * @copydetails doc_returns_success_code
559    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
560    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
561    */
562   virtual int getAttribute(const std::string& attributeName,
563                            double& value) const;
564 
565   /** @endcond */
566 
567 
568 
569   /** @cond doxygenLibSEDMLInternal */
570 
571   /**
572    * Gets the value of the "attributeName" attribute of this SedFitMapping.
573    *
574    * @param attributeName, the name of the attribute to retrieve.
575    *
576    * @param value, the address of the value to record.
577    *
578    * @copydetails doc_returns_success_code
579    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
580    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
581    */
582   virtual int getAttribute(const std::string& attributeName,
583                            unsigned int& value) const;
584 
585   /** @endcond */
586 
587 
588 
589   /** @cond doxygenLibSEDMLInternal */
590 
591   /**
592    * Gets the value of the "attributeName" attribute of this SedFitMapping.
593    *
594    * @param attributeName, the name of the attribute to retrieve.
595    *
596    * @param value, the address of the value to record.
597    *
598    * @copydetails doc_returns_success_code
599    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
600    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
601    */
602   virtual int getAttribute(const std::string& attributeName,
603                            std::string& value) const;
604 
605   /** @endcond */
606 
607 
608 
609   /** @cond doxygenLibSEDMLInternal */
610 
611   /**
612    * Predicate returning @c true if this SedFitMapping's attribute
613    * "attributeName" is set.
614    *
615    * @param attributeName, the name of the attribute to query.
616    *
617    * @return @c true if this SedFitMapping's attribute "attributeName" has been
618    * set, otherwise @c false is returned.
619    */
620   virtual bool isSetAttribute(const std::string& attributeName) const;
621 
622   /** @endcond */
623 
624 
625 
626   /** @cond doxygenLibSEDMLInternal */
627 
628   /**
629    * Sets the value of the "attributeName" attribute of this SedFitMapping.
630    *
631    * @param attributeName, the name of the attribute to set.
632    *
633    * @param value, the value of the attribute to set.
634    *
635    * @copydetails doc_returns_success_code
636    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
637    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
638    */
639   virtual int setAttribute(const std::string& attributeName, bool value);
640 
641   /** @endcond */
642 
643 
644 
645   /** @cond doxygenLibSEDMLInternal */
646 
647   /**
648    * Sets the value of the "attributeName" attribute of this SedFitMapping.
649    *
650    * @param attributeName, the name of the attribute to set.
651    *
652    * @param value, the value of the attribute to set.
653    *
654    * @copydetails doc_returns_success_code
655    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
656    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
657    */
658   virtual int setAttribute(const std::string& attributeName, int value);
659 
660   /** @endcond */
661 
662 
663 
664   /** @cond doxygenLibSEDMLInternal */
665 
666   /**
667    * Sets the value of the "attributeName" attribute of this SedFitMapping.
668    *
669    * @param attributeName, the name of the attribute to set.
670    *
671    * @param value, the value of the attribute to set.
672    *
673    * @copydetails doc_returns_success_code
674    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
675    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
676    */
677   virtual int setAttribute(const std::string& attributeName, double value);
678 
679   /** @endcond */
680 
681 
682 
683   /** @cond doxygenLibSEDMLInternal */
684 
685   /**
686    * Sets the value of the "attributeName" attribute of this SedFitMapping.
687    *
688    * @param attributeName, the name of the attribute to set.
689    *
690    * @param value, the value of the attribute to set.
691    *
692    * @copydetails doc_returns_success_code
693    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
694    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
695    */
696   virtual int setAttribute(const std::string& attributeName,
697                            unsigned int value);
698 
699   /** @endcond */
700 
701 
702 
703   /** @cond doxygenLibSEDMLInternal */
704 
705   /**
706    * Sets the value of the "attributeName" attribute of this SedFitMapping.
707    *
708    * @param attributeName, the name of the attribute to set.
709    *
710    * @param value, the value of the attribute to set.
711    *
712    * @copydetails doc_returns_success_code
713    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
714    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
715    */
716   virtual int setAttribute(const std::string& attributeName,
717                            const std::string& value);
718 
719   /** @endcond */
720 
721 
722 
723   /** @cond doxygenLibSEDMLInternal */
724 
725   /**
726    * Unsets the value of the "attributeName" attribute of this SedFitMapping.
727    *
728    * @param attributeName, the name of the attribute to query.
729    *
730    * @copydetails doc_returns_success_code
731    * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
732    * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
733    */
734   virtual int unsetAttribute(const std::string& attributeName);
735 
736   /** @endcond */
737 
738 
739 
740 
741   #endif /* !SWIG */
742 
743 
744 protected:
745 
746 
747   /** @cond doxygenLibSEDMLInternal */
748 
749   /**
750    * Adds the expected attributes for this element
751    */
752   virtual void addExpectedAttributes(LIBSBML_CPP_NAMESPACE_QUALIFIER
753     ExpectedAttributes& attributes);
754 
755   /** @endcond */
756 
757 
758 
759   /** @cond doxygenLibSEDMLInternal */
760 
761   /**
762    * Reads the expected attributes into the member data variables
763    */
764   virtual void readAttributes(
765                               const LIBSBML_CPP_NAMESPACE_QUALIFIER
766                                 XMLAttributes& attributes,
767                               const LIBSBML_CPP_NAMESPACE_QUALIFIER
768                                 ExpectedAttributes& expectedAttributes);
769 
770   /** @endcond */
771 
772 
773 
774   /** @cond doxygenLibSEDMLInternal */
775 
776   /**
777    * Writes the attributes to the stream
778    */
779   virtual void writeAttributes(LIBSBML_CPP_NAMESPACE_QUALIFIER XMLOutputStream&
780     stream) const;
781 
782   /** @endcond */
783 
784 
785 };
786 
787 
788 
789 LIBSEDML_CPP_NAMESPACE_END
790 
791 
792 
793 
794 #endif /* __cplusplus */
795 
796 
797 
798 
799 #ifndef SWIG
800 
801 
802 
803 
804 LIBSEDML_CPP_NAMESPACE_BEGIN
805 
806 
807 
808 
809 BEGIN_C_DECLS
810 
811 
812 /**
813  * Creates a new SedFitMapping_t using the given SED-ML Level and @ p version
814  * values.
815  *
816  * @param level an unsigned int, the SED-ML Level to assign to this
817  * SedFitMapping_t.
818  *
819  * @param version an unsigned int, the SED-ML Version to assign to this
820  * SedFitMapping_t.
821  *
822  * @copydetails doc_note_setting_lv_pkg
823  *
824  * @copydetails doc_returned_owned_pointer
825  *
826  * @memberof SedFitMapping_t
827  */
828 LIBSEDML_EXTERN
829 SedFitMapping_t *
830 SedFitMapping_create(unsigned int level, unsigned int version);
831 
832 
833 /**
834  * Creates and returns a deep copy of this SedFitMapping_t object.
835  *
836  * @param sfm the SedFitMapping_t structure.
837  *
838  * @return a (deep) copy of this SedFitMapping_t object.
839  *
840  * @copydetails doc_returned_owned_pointer
841  *
842  * @memberof SedFitMapping_t
843  */
844 LIBSEDML_EXTERN
845 SedFitMapping_t*
846 SedFitMapping_clone(const SedFitMapping_t* sfm);
847 
848 
849 /**
850  * Frees this SedFitMapping_t object.
851  *
852  * @param sfm the SedFitMapping_t structure.
853  *
854  * @memberof SedFitMapping_t
855  */
856 LIBSEDML_EXTERN
857 void
858 SedFitMapping_free(SedFitMapping_t* sfm);
859 
860 
861 /**
862  * Returns the value of the "dataSource" attribute of this SedFitMapping_t.
863  *
864  * @param sfm the SedFitMapping_t structure whose dataSource is sought.
865  *
866  * @return the value of the "dataSource" attribute of this SedFitMapping_t as a
867  * pointer to a string.
868  *
869  * @copydetails doc_returned_owned_char
870  *
871  * @memberof SedFitMapping_t
872  */
873 LIBSEDML_EXTERN
874 char *
875 SedFitMapping_getDataSource(const SedFitMapping_t * sfm);
876 
877 
878 /**
879  * Returns the value of the "target" attribute of this SedFitMapping_t.
880  *
881  * @param sfm the SedFitMapping_t structure whose target is sought.
882  *
883  * @return the value of the "target" attribute of this SedFitMapping_t as a
884  * pointer to a string.
885  *
886  * @copydetails doc_returned_owned_char
887  *
888  * @memberof SedFitMapping_t
889  */
890 LIBSEDML_EXTERN
891 char *
892 SedFitMapping_getTarget(const SedFitMapping_t * sfm);
893 
894 
895 /**
896  * Returns the value of the "type" attribute of this SedFitMapping_t.
897  *
898  * @param sfm the SedFitMapping_t structure whose type is sought.
899  *
900  * @return the value of the "type" attribute of this SedFitMapping_t as a
901  * MappingType_t.
902  *
903  * @copydetails doc_sedfitmapping_type
904  * @if clike The value is drawn from the enumeration @ref MappingType_t @endif
905  * The possible values returned by this method are:
906  * @li @sbmlconstant{SEDML_MAPPINGTYPE_TIME, MappingType_t}
907  * @li @sbmlconstant{SEDML_MAPPINGTYPE_EXPERIMENTALCONDITION, MappingType_t}
908  * @li @sbmlconstant{SEDML_MAPPINGTYPE_OBSERVABLE, MappingType_t}
909  * @li @sbmlconstant{SEDML_MAPPINGTYPE_INVALID, MappingType_t}
910  *
911  * @memberof SedFitMapping_t
912  */
913 LIBSEDML_EXTERN
914 MappingType_t
915 SedFitMapping_getType(const SedFitMapping_t * sfm);
916 
917 
918 /**
919  * Returns the value of the "type" attribute of this SedFitMapping_t.
920  *
921  * @param sfm the SedFitMapping_t structure whose type is sought.
922  *
923  * @return the value of the "type" attribute of this SedFitMapping_t as a const
924  * char *.
925  *
926  * @copydetails doc_returned_unowned_char
927  *
928  * @copydetails doc_sedfitmapping_type
929  * The possible values returned by this method are:
930  * @li @c "time"
931  * @li @c "experimentalCondition"
932  * @li @c "observable"
933  * @li @c "invalid MappingType value"
934  *
935  * @memberof SedFitMapping_t
936  */
937 LIBSEDML_EXTERN
938 char *
939 SedFitMapping_getTypeAsString(const SedFitMapping_t * sfm);
940 
941 
942 /**
943  * Returns the value of the "weight" attribute of this SedFitMapping_t.
944  *
945  * @param sfm the SedFitMapping_t structure whose weight is sought.
946  *
947  * @return the value of the "weight" attribute of this SedFitMapping_t as a
948  * double.
949  *
950  * @memberof SedFitMapping_t
951  */
952 LIBSEDML_EXTERN
953 double
954 SedFitMapping_getWeight(const SedFitMapping_t * sfm);
955 
956 
957 /**
958  * Returns the value of the "pointWeight" attribute of this SedFitMapping_t.
959  *
960  * @param sfm the SedFitMapping_t structure whose pointWeight is sought.
961  *
962  * @return the value of the "pointWeight" attribute of this SedFitMapping_t as
963  * a pointer to a string.
964  *
965  * @copydetails doc_returned_owned_char
966  *
967  * @memberof SedFitMapping_t
968  */
969 LIBSEDML_EXTERN
970 char *
971 SedFitMapping_getPointWeight(const SedFitMapping_t * sfm);
972 
973 
974 /**
975  * Predicate returning @c 1 (true) if this SedFitMapping_t's "dataSource"
976  * attribute is set.
977  *
978  * @param sfm the SedFitMapping_t structure.
979  *
980  * @return @c 1 (true) if this SedFitMapping_t's "dataSource" attribute has
981  * been set, otherwise @c 0 (false) is returned.
982  *
983  * @memberof SedFitMapping_t
984  */
985 LIBSEDML_EXTERN
986 int
987 SedFitMapping_isSetDataSource(const SedFitMapping_t * sfm);
988 
989 
990 /**
991  * Predicate returning @c 1 (true) if this SedFitMapping_t's "target" attribute
992  * is set.
993  *
994  * @param sfm the SedFitMapping_t structure.
995  *
996  * @return @c 1 (true) if this SedFitMapping_t's "target" attribute has been
997  * set, otherwise @c 0 (false) is returned.
998  *
999  * @memberof SedFitMapping_t
1000  */
1001 LIBSEDML_EXTERN
1002 int
1003 SedFitMapping_isSetTarget(const SedFitMapping_t * sfm);
1004 
1005 
1006 /**
1007  * Predicate returning @c 1 (true) if this SedFitMapping_t's "type" attribute
1008  * is set.
1009  *
1010  * @param sfm the SedFitMapping_t structure.
1011  *
1012  * @return @c 1 (true) if this SedFitMapping_t's "type" attribute has been set,
1013  * otherwise @c 0 (false) is returned.
1014  *
1015  * @copydetails doc_sedfitmapping_type
1016  *
1017  * @memberof SedFitMapping_t
1018  */
1019 LIBSEDML_EXTERN
1020 int
1021 SedFitMapping_isSetType(const SedFitMapping_t * sfm);
1022 
1023 
1024 /**
1025  * Predicate returning @c 1 (true) if this SedFitMapping_t's "weight" attribute
1026  * is set.
1027  *
1028  * @param sfm the SedFitMapping_t structure.
1029  *
1030  * @return @c 1 (true) if this SedFitMapping_t's "weight" attribute has been
1031  * set, otherwise @c 0 (false) is returned.
1032  *
1033  * @memberof SedFitMapping_t
1034  */
1035 LIBSEDML_EXTERN
1036 int
1037 SedFitMapping_isSetWeight(const SedFitMapping_t * sfm);
1038 
1039 
1040 /**
1041  * Predicate returning @c 1 (true) if this SedFitMapping_t's "pointWeight"
1042  * attribute is set.
1043  *
1044  * @param sfm the SedFitMapping_t structure.
1045  *
1046  * @return @c 1 (true) if this SedFitMapping_t's "pointWeight" attribute has
1047  * been set, otherwise @c 0 (false) is returned.
1048  *
1049  * @memberof SedFitMapping_t
1050  */
1051 LIBSEDML_EXTERN
1052 int
1053 SedFitMapping_isSetPointWeight(const SedFitMapping_t * sfm);
1054 
1055 
1056 /**
1057  * Sets the value of the "dataSource" attribute of this SedFitMapping_t.
1058  *
1059  * @param sfm the SedFitMapping_t structure.
1060  *
1061  * @param dataSource const char * value of the "dataSource" attribute to be
1062  * set.
1063  *
1064  * @copydetails doc_returns_success_code
1065  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1066  * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
1067  * OperationReturnValues_t}
1068  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1069  *
1070  * @memberof SedFitMapping_t
1071  */
1072 LIBSEDML_EXTERN
1073 int
1074 SedFitMapping_setDataSource(SedFitMapping_t * sfm, const char * dataSource);
1075 
1076 
1077 /**
1078  * Sets the value of the "target" attribute of this SedFitMapping_t.
1079  *
1080  * @param sfm the SedFitMapping_t structure.
1081  *
1082  * @param target const char * value of the "target" attribute to be set.
1083  *
1084  * @copydetails doc_returns_success_code
1085  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1086  * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
1087  * OperationReturnValues_t}
1088  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1089  *
1090  * @memberof SedFitMapping_t
1091  */
1092 LIBSEDML_EXTERN
1093 int
1094 SedFitMapping_setTarget(SedFitMapping_t * sfm, const char * target);
1095 
1096 
1097 /**
1098  * Sets the value of the "type" attribute of this SedFitMapping_t.
1099  *
1100  * @param sfm the SedFitMapping_t structure.
1101  *
1102  * @param type MappingType_t value of the "type" attribute to be set.
1103  *
1104  * @copydetails doc_returns_success_code
1105  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1106  * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
1107  * OperationReturnValues_t}
1108  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1109  *
1110  * @copydetails doc_sedfitmapping_type
1111  *
1112  * @memberof SedFitMapping_t
1113  */
1114 LIBSEDML_EXTERN
1115 int
1116 SedFitMapping_setType(SedFitMapping_t * sfm, MappingType_t type);
1117 
1118 
1119 /**
1120  * Sets the value of the "type" attribute of this SedFitMapping_t.
1121  *
1122  * @param sfm the SedFitMapping_t structure.
1123  *
1124  * @param type const char * of the "type" attribute to be set.
1125  *
1126  * @copydetails doc_returns_success_code
1127  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1128  * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
1129  * OperationReturnValues_t}
1130  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1131  *
1132  * @copydetails doc_sedfitmapping_type
1133  *
1134  * @memberof SedFitMapping_t
1135  */
1136 LIBSEDML_EXTERN
1137 int
1138 SedFitMapping_setTypeAsString(SedFitMapping_t * sfm, const char * type);
1139 
1140 
1141 /**
1142  * Sets the value of the "weight" attribute of this SedFitMapping_t.
1143  *
1144  * @param sfm the SedFitMapping_t structure.
1145  *
1146  * @param weight double value of the "weight" attribute to be set.
1147  *
1148  * @copydetails doc_returns_success_code
1149  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1150  * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
1151  * OperationReturnValues_t}
1152  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1153  *
1154  * @memberof SedFitMapping_t
1155  */
1156 LIBSEDML_EXTERN
1157 int
1158 SedFitMapping_setWeight(SedFitMapping_t * sfm, double weight);
1159 
1160 
1161 /**
1162  * Sets the value of the "pointWeight" attribute of this SedFitMapping_t.
1163  *
1164  * @param sfm the SedFitMapping_t structure.
1165  *
1166  * @param pointWeight const char * value of the "pointWeight" attribute to be
1167  * set.
1168  *
1169  * @copydetails doc_returns_success_code
1170  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1171  * @li @sedmlconstant{LIBSEDML_INVALID_ATTRIBUTE_VALUE,
1172  * OperationReturnValues_t}
1173  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1174  *
1175  * @memberof SedFitMapping_t
1176  */
1177 LIBSEDML_EXTERN
1178 int
1179 SedFitMapping_setPointWeight(SedFitMapping_t * sfm, const char * pointWeight);
1180 
1181 
1182 /**
1183  * Unsets the value of the "dataSource" attribute of this SedFitMapping_t.
1184  *
1185  * @param sfm the SedFitMapping_t structure.
1186  *
1187  * @copydetails doc_returns_success_code
1188  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1189  * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
1190  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1191  *
1192  * @memberof SedFitMapping_t
1193  */
1194 LIBSEDML_EXTERN
1195 int
1196 SedFitMapping_unsetDataSource(SedFitMapping_t * sfm);
1197 
1198 
1199 /**
1200  * Unsets the value of the "target" attribute of this SedFitMapping_t.
1201  *
1202  * @param sfm the SedFitMapping_t structure.
1203  *
1204  * @copydetails doc_returns_success_code
1205  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1206  * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
1207  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1208  *
1209  * @memberof SedFitMapping_t
1210  */
1211 LIBSEDML_EXTERN
1212 int
1213 SedFitMapping_unsetTarget(SedFitMapping_t * sfm);
1214 
1215 
1216 /**
1217  * Unsets the value of the "type" attribute of this SedFitMapping_t.
1218  *
1219  * @param sfm the SedFitMapping_t structure.
1220  *
1221  * @copydetails doc_returns_success_code
1222  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1223  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1224  *
1225  * @copydetails doc_sedfitmapping_type
1226  *
1227  * @memberof SedFitMapping_t
1228  */
1229 LIBSEDML_EXTERN
1230 int
1231 SedFitMapping_unsetType(SedFitMapping_t * sfm);
1232 
1233 
1234 /**
1235  * Unsets the value of the "weight" attribute of this SedFitMapping_t.
1236  *
1237  * @param sfm the SedFitMapping_t structure.
1238  *
1239  * @copydetails doc_returns_success_code
1240  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1241  * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
1242  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1243  *
1244  * @memberof SedFitMapping_t
1245  */
1246 LIBSEDML_EXTERN
1247 int
1248 SedFitMapping_unsetWeight(SedFitMapping_t * sfm);
1249 
1250 
1251 /**
1252  * Unsets the value of the "pointWeight" attribute of this SedFitMapping_t.
1253  *
1254  * @param sfm the SedFitMapping_t structure.
1255  *
1256  * @copydetails doc_returns_success_code
1257  * @li @sedmlconstant{LIBSEDML_OPERATION_SUCCESS, OperationReturnValues_t}
1258  * @li @sedmlconstant{LIBSEDML_OPERATION_FAILED, OperationReturnValues_t}
1259  * @li @sedmlconstant{LIBSEDML_INVALID_OBJECT, OperationReturnValues_t}
1260  *
1261  * @memberof SedFitMapping_t
1262  */
1263 LIBSEDML_EXTERN
1264 int
1265 SedFitMapping_unsetPointWeight(SedFitMapping_t * sfm);
1266 
1267 
1268 /**
1269  * Predicate returning @c 1 (true) if all the required attributes for this
1270  * SedFitMapping_t object have been set.
1271  *
1272  * @param sfm the SedFitMapping_t structure.
1273  *
1274  * @return @c 1 (true) to indicate that all the required attributes of this
1275  * SedFitMapping_t have been set, otherwise @c 0 (false) is returned.
1276  *
1277  *
1278  * @note The required attributes for the SedFitMapping_t object are:
1279  * @li "dataSource"
1280  * @li "target"
1281  * @li "type"
1282  *
1283  * @memberof SedFitMapping_t
1284  */
1285 LIBSEDML_EXTERN
1286 int
1287 SedFitMapping_hasRequiredAttributes(const SedFitMapping_t * sfm);
1288 
1289 
1290 
1291 
1292 END_C_DECLS
1293 
1294 
1295 
1296 
1297 LIBSEDML_CPP_NAMESPACE_END
1298 
1299 
1300 
1301 
1302 #endif /* !SWIG */
1303 
1304 
1305 
1306 
1307 #endif /* !SedFitMapping_H__ */
1308 
1309 
1310