1 /**
2  * @file    ModifierSpeciesReference.h
3  * @brief   Definitions of ModifierSpeciesReference.
4  * @author  Ben Bornstein
5  *
6  *
7  * <!--------------------------------------------------------------------------
8  * This file is part of libSBML.  Please visit http://sbml.org for more
9  * information about SBML, and the latest version of libSBML.
10  *
11  * Copyright (C) 2020 jointly by the following organizations:
12  *     1. California Institute of Technology, Pasadena, CA, USA
13  *     2. University of Heidelberg, Heidelberg, Germany
14  *     3. University College London, London, UK
15  *
16  * Copyright (C) 2019 jointly by the following organizations:
17  *     1. California Institute of Technology, Pasadena, CA, USA
18  *     2. University of Heidelberg, Heidelberg, Germany
19  *
20  * Copyright (C) 2013-2018 jointly by the following organizations:
21  *     1. California Institute of Technology, Pasadena, CA, USA
22  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
23  *     3. University of Heidelberg, Heidelberg, Germany
24  *
25  * Copyright (C) 2009-2013 jointly by the following organizations:
26  *     1. California Institute of Technology, Pasadena, CA, USA
27  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
28  *
29  * Copyright (C) 2006-2008 by the California Institute of Technology,
30  *     Pasadena, CA, USA
31  *
32  * Copyright (C) 2002-2005 jointly by the following organizations:
33  *     1. California Institute of Technology, Pasadena, CA, USA
34  *     2. Japan Science and Technology Agency, Japan
35  *
36  * This library is free software; you can redistribute it and/or modify it
37  * under the terms of the GNU Lesser General Public License as published by
38  * the Free Software Foundation.  A copy of the license agreement is provided
39  * in the file named "LICENSE.txt" included with this software distribution
40  * and also available online as http://sbml.org/software/libsbml/license.html
41  * ------------------------------------------------------------------------ -->
42  *
43  * @class ModifierSpeciesReference
44  * @sbmlbrief{core} A reference to an SBML <em>modifier species</em>.
45  *
46  * Sometimes a species appears in the kinetic rate formula of a reaction
47  * but is itself neither created nor destroyed in that reaction (for
48  * example, because it acts as a catalyst or inhibitor).  In SBML, all such
49  * species are simply called @em modifiers without regard to the detailed
50  * role of those species in the model.  The Reaction structure provides a
51  * way to express which species act as modifiers in a given reaction.  This
52  * is the purpose of the list of modifiers available in Reaction.  The list
53  * contains instances of ModifierSpeciesReference structures.
54  *
55  * The ModifierSpeciesReference structure inherits the mandatory attribute
56  * "species" and optional attributes "id" and "name" from the parent class
57  * SimpleSpeciesReference.  See the description of SimpleSpeciesReference
58  * for more information about these.
59  *
60  * The value of the "species" attribute must be the identifier of a species
61  * defined in the enclosing Model; this species is designated as a modifier
62  * for the current reaction.  A reaction may have any number of modifiers.
63  * It is permissible for a modifier species to appear simultaneously in the
64  * list of reactants and products of the same reaction where it is
65  * designated as a modifier, as well as to appear in the list of reactants,
66  * products and modifiers of other reactions in the model.
67  *
68  */
69 
70 #ifndef ModifierSpeciesReference_h
71 #define ModifierSpeciesReference_h
72 
73 
74 #include <sbml/common/extern.h>
75 #include <sbml/common/sbmlfwd.h>
76 
77 
78 #ifdef __cplusplus
79 
80 
81 #include <string>
82 
83 #include <sbml/SimpleSpeciesReference.h>
84 #include <sbml/SBMLVisitor.h>
85 #include <sbml/ListOf.h>
86 
87 LIBSBML_CPP_NAMESPACE_BEGIN
88 
89 class SBMLNamespaces;
90 
91 class LIBSBML_EXTERN ModifierSpeciesReference : public SimpleSpeciesReference
92 {
93 public:
94 
95   /**
96    * Creates a new ModifierSpeciesReference using the given SBML @p level and
97    * @p version values.
98    *
99    * @param level an unsigned int, the SBML Level to assign to this
100    * ModifierSpeciesReference.
101    *
102    * @param version an unsigned int, the SBML Version to assign to this
103    * ModifierSpeciesReference.
104    *
105    * @copydetails doc_throw_exception_lv
106    *
107    * @copydetails doc_note_setting_lv
108    */
109   ModifierSpeciesReference (unsigned int level, unsigned int version);
110 
111 
112   /**
113    * Creates a new ModifierSpeciesReference using the given SBMLNamespaces
114    * object @p sbmlns.
115    *
116    * @param sbmlns an SBMLNamespaces object.
117    *
118    * @copydetails doc_throw_exception_namespace
119    *
120    * @copydetails doc_note_setting_lv
121    */
122   ModifierSpeciesReference (SBMLNamespaces* sbmlns);
123 
124 
125   /**
126    * Destroys this ModifierSpeciesReference.
127    */
128   virtual ~ModifierSpeciesReference();
129 
130 
131   /** @cond doxygenLibsbmlInternal */
132   /**
133    * Accepts the given SBMLVisitor.
134    *
135    * @param v the SBMLVisitor instance to be used.
136    *
137    * @return the result of calling <code>v.visit()</code>.
138    */
139   virtual bool accept (SBMLVisitor& v) const;
140   /** @endcond */
141 
142 
143   /**
144    * Creates and returns a deep copy of this ModifierSpeciesReference object.
145    *
146    * @return the (deep) copy of this ModifierSpeciesReference object.
147    */
148   virtual ModifierSpeciesReference* clone () const;
149 
150 
151   /**
152    * Returns the libSBML type code for this %SBML object.
153    *
154    * @copydetails doc_what_are_typecodes
155    *
156    * @return the SBML type code for this object:
157    * @sbmlconstant{SBML_MODIFIER_SPECIES_REFERENCE, SBMLTypeCode_t} (default).
158    *
159    * @copydetails doc_warning_typecodes_not_unique
160    *
161    * @see getElementName()
162    * @see getPackageName()
163    */
164   virtual int getTypeCode () const;
165 
166 
167   /**
168    * Returns the XML element name of this object, which for Species, is
169    * always @c "modifierSpeciesReference".
170    *
171    * @return the name of this element, i.e., @c "modifierSpeciesReference".
172    */
173   virtual const std::string& getElementName () const;
174 
175 
176   /**
177    * Predicate returning @c true if
178    * all the required attributes for this ModifierSpeciesReference object
179    * have been set.
180    *
181    * The required attributes for a ModifierSpeciesReference object are:
182    * species
183    *
184    * @return @c true if the required attributes have been set, @c false
185    * otherwise.
186    */
187   virtual bool hasRequiredAttributes() const ;
188 
189 
190 
191 
192   #ifndef SWIG
193 
194 
195 
196   /** @cond doxygenLibsbmlInternal */
197 
198   /**
199    * Returns the value of the "attributeName" attribute of this
200    * ModifierSpeciesReference.
201    *
202    * @param attributeName, the name of the attribute to retrieve.
203    *
204    * @param value, the address of the value to record.
205    *
206    * @copydetails doc_returns_success_code
207    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
208    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
209    */
210   virtual int getAttribute(const std::string& attributeName, bool& value)
211     const;
212 
213   /** @endcond */
214 
215 
216 
217   /** @cond doxygenLibsbmlInternal */
218 
219   /**
220    * Returns the value of the "attributeName" attribute of this
221    * ModifierSpeciesReference.
222    *
223    * @param attributeName, the name of the attribute to retrieve.
224    *
225    * @param value, the address of the value to record.
226    *
227    * @copydetails doc_returns_success_code
228    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
229    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
230    */
231   virtual int getAttribute(const std::string& attributeName, int& value) const;
232 
233   /** @endcond */
234 
235 
236 
237   /** @cond doxygenLibsbmlInternal */
238 
239   /**
240    * Returns the value of the "attributeName" attribute of this
241    * ModifierSpeciesReference.
242    *
243    * @param attributeName, the name of the attribute to retrieve.
244    *
245    * @param value, the address of the value to record.
246    *
247    * @copydetails doc_returns_success_code
248    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
249    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
250    */
251   virtual int getAttribute(const std::string& attributeName,
252                            double& value) const;
253 
254   /** @endcond */
255 
256 
257 
258   /** @cond doxygenLibsbmlInternal */
259 
260   /**
261    * Returns the value of the "attributeName" attribute of this
262    * ModifierSpeciesReference.
263    *
264    * @param attributeName, the name of the attribute to retrieve.
265    *
266    * @param value, the address of the value to record.
267    *
268    * @copydetails doc_returns_success_code
269    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
270    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
271    */
272   virtual int getAttribute(const std::string& attributeName,
273                            unsigned int& value) const;
274 
275   /** @endcond */
276 
277 
278 
279   /** @cond doxygenLibsbmlInternal */
280 
281   /**
282    * Returns the value of the "attributeName" attribute of this
283    * ModifierSpeciesReference.
284    *
285    * @param attributeName, the name of the attribute to retrieve.
286    *
287    * @param value, the address of the value to record.
288    *
289    * @copydetails doc_returns_success_code
290    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
291    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
292    */
293   virtual int getAttribute(const std::string& attributeName,
294                            std::string& value) const;
295 
296   /** @endcond */
297 
298 
299 
300   /** @cond doxygenLibsbmlInternal */
301 
302   /**
303    * Returns the value of the "attributeName" attribute of this
304    * ModifierSpeciesReference.
305    *
306    * @param attributeName, the name of the attribute to retrieve.
307    *
308    * @param value, the address of the value to record.
309    *
310    * @copydetails doc_returns_success_code
311    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
312    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
313    */
314   //virtual int getAttribute(const std::string& attributeName,
315   //                         const char* value) const;
316 
317   /** @endcond */
318 
319 
320 
321   /** @cond doxygenLibsbmlInternal */
322 
323   /**
324    * Predicate returning @c true if this ModifierSpeciesReference's attribute
325    * "attributeName" is set.
326    *
327    * @param attributeName, the name of the attribute to query.
328    *
329    * @return @c true if this ModifierSpeciesReference's attribute
330    * "attributeName" has been set, otherwise @c false is returned.
331    */
332   virtual bool isSetAttribute(const std::string& attributeName) const;
333 
334   /** @endcond */
335 
336 
337 
338   /** @cond doxygenLibsbmlInternal */
339 
340   /**
341    * Sets the value of the "attributeName" attribute of this
342    * ModifierSpeciesReference.
343    *
344    * @param attributeName, the name of the attribute to set.
345    *
346    * @param value, the value of the attribute to set.
347    *
348    * @copydetails doc_returns_success_code
349    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
350    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
351    */
352   virtual int setAttribute(const std::string& attributeName, bool value);
353 
354   /** @endcond */
355 
356 
357 
358   /** @cond doxygenLibsbmlInternal */
359 
360   /**
361    * Sets the value of the "attributeName" attribute of this
362    * ModifierSpeciesReference.
363    *
364    * @param attributeName, the name of the attribute to set.
365    *
366    * @param value, the value of the attribute to set.
367    *
368    * @copydetails doc_returns_success_code
369    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
370    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
371    */
372   virtual int setAttribute(const std::string& attributeName, int value);
373 
374   /** @endcond */
375 
376 
377 
378   /** @cond doxygenLibsbmlInternal */
379 
380   /**
381    * Sets the value of the "attributeName" attribute of this
382    * ModifierSpeciesReference.
383    *
384    * @param attributeName, the name of the attribute to set.
385    *
386    * @param value, the value of the attribute to set.
387    *
388    * @copydetails doc_returns_success_code
389    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
390    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
391    */
392   virtual int setAttribute(const std::string& attributeName, double value);
393 
394   /** @endcond */
395 
396 
397 
398   /** @cond doxygenLibsbmlInternal */
399 
400   /**
401    * Sets the value of the "attributeName" attribute of this
402    * ModifierSpeciesReference.
403    *
404    * @param attributeName, the name of the attribute to set.
405    *
406    * @param value, the value of the attribute to set.
407    *
408    * @copydetails doc_returns_success_code
409    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
410    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
411    */
412   virtual int setAttribute(const std::string& attributeName,
413                            unsigned int value);
414 
415   /** @endcond */
416 
417 
418 
419   /** @cond doxygenLibsbmlInternal */
420 
421   /**
422    * Sets the value of the "attributeName" attribute of this
423    * ModifierSpeciesReference.
424    *
425    * @param attributeName, the name of the attribute to set.
426    *
427    * @param value, the value of the attribute to set.
428    *
429    * @copydetails doc_returns_success_code
430    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
431    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
432    */
433   virtual int setAttribute(const std::string& attributeName,
434                            const std::string& value);
435 
436   /** @endcond */
437 
438 
439 
440   /** @cond doxygenLibsbmlInternal */
441 
442   /**
443    * Sets the value of the "attributeName" attribute of this
444    * ModifierSpeciesReference.
445    *
446    * @param attributeName, the name of the attribute to set.
447    *
448    * @param value, the value of the attribute to set.
449    *
450    * @copydetails doc_returns_success_code
451    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
452    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
453    */
454   //virtual int setAttribute(const std::string& attributeName, const char*
455   //  value);
456 
457   /** @endcond */
458 
459 
460 
461 
462   /**
463    * Unsets the value of the "attributeName" attribute of this
464    * ModifierSpeciesReference.
465    *
466    * @param attributeName, the name of the attribute to query.
467    *
468    * @copydetails doc_returns_success_code
469    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
470    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
471    */
472   virtual int unsetAttribute(const std::string& attributeName);
473 
474   /** @endcond */
475 
476 
477 
478 
479   #endif /* !SWIG */
480 
481 
482 protected:
483   /** @cond doxygenLibsbmlInternal */
484   /* the validator classes need to be friends to access the
485    * protected constructor that takes no arguments
486    */
487   friend class Validator;
488   friend class ConsistencyValidator;
489   friend class IdentifierConsistencyValidator;
490   friend class InternalConsistencyValidator;
491   friend class L1CompatibilityValidator;
492   friend class L2v1CompatibilityValidator;
493   friend class L2v2CompatibilityValidator;
494   friend class L2v3CompatibilityValidator;
495   friend class L2v4CompatibilityValidator;
496   friend class MathMLConsistencyValidator;
497   friend class ModelingPracticeValidator;
498   friend class OverdeterminedValidator;
499   friend class SBOConsistencyValidator;
500   friend class UnitConsistencyValidator;
501 
502   /** @endcond */
503 };
504 
505 
506 LIBSBML_CPP_NAMESPACE_END
507 
508 #endif  /* __cplusplus */
509 
510 
511 #ifndef SWIG
512 
513 LIBSBML_CPP_NAMESPACE_BEGIN
514 BEGIN_C_DECLS
515 
516 /**
517  * Creates a new ModifierSpeciesReference_t structure using the given SBML @p level and
518  * @p version values.
519  *
520  * @param level an unsigned int, the SBML level to assign to this
521  * ModifierSpeciesReference_t structure.
522  *
523  * @param version an unsigned int, the SBML version to assign to this
524  * ModifierSpeciesReference_t structure.
525  *
526  * @returns the newly-created ModifierSpeciesReference_t structure, or a null pointer if
527  * an error occurred during construction.
528  *
529  * @copydetails doc_note_setting_lv
530  *
531  * @memberof ModifierSpeciesReference_t
532  */
533 LIBSBML_EXTERN
534 ModifierSpeciesReference_t *
535 ModifierSpeciesReference_create(unsigned int level, unsigned int version);
536 
537 
538 /**
539  * Creates a new ModifierSpeciesReference_t structure using the given SBMLNamespaces_t
540  * structure, @p sbmlns.
541  *
542  * @copydetails doc_what_are_sbmlnamespaces
543  *
544  * @param sbmlns an SBMLNamespaces_t structure.
545  *
546  * @returns the newly-created ModifierSpeciesReference_t structure, or a null pointer if
547  * an error occurred during construction.
548  *
549  * @copydetails doc_note_setting_lv
550  *
551  * @memberof ModifierSpeciesReference_t
552  */
553 LIBSBML_EXTERN
554 ModifierSpeciesReference_t *
555 ModifierSpeciesReference_createWithNS(SBMLNamespaces_t* sbmlns);
556 
557 
558 /**
559  * Frees the given ModifierSpeciesReference_t structure.
560  *
561  * @param msr the ModifierSpeciesReference_t structure to be freed.
562  *
563  * @memberof ModifierSpeciesReference_t
564  */
565 LIBSBML_EXTERN
566 void
567 ModifierSpeciesReference_free(ModifierSpeciesReference_t * msr);
568 
569 
570 /**
571  * Creates a deep copy of the given ModifierSpeciesReference_t structure.
572  *
573  * @param msr the ModifierSpeciesReference_t structure to be copied.
574  *
575  * @returns a (deep) copy of the given ModifierSpeciesReference_t structure, or a null
576  * pointer if a failure occurred.
577  *
578  * @memberof ModifierSpeciesReference_t
579  */
580 LIBSBML_EXTERN
581 ModifierSpeciesReference_t *
582 ModifierSpeciesReference_clone(ModifierSpeciesReference_t * msr);
583 
584 
585 /**
586  * Returns the value of the "id" attribute of the given ModifierSpeciesReference_t
587  * structure.
588  *
589  * @param msr the ModifierSpeciesReference_t structure.
590  *
591  * @return the id of this structure.
592  *
593  * @memberof ModifierSpeciesReference_t
594  */
595 LIBSBML_EXTERN
596 const char *
597 ModifierSpeciesReference_getId(const ModifierSpeciesReference_t * msr);
598 
599 
600 /**
601  * Returns the value of the "name" attribute of the given ModifierSpeciesReference_t
602  * structure.
603  *
604  * @param msr the ModifierSpeciesReference_t structure.
605  *
606  * @return the name of this structure.
607  *
608  * @memberof ModifierSpeciesReference_t
609  */
610 LIBSBML_EXTERN
611 const char *
612 ModifierSpeciesReference_getName(const ModifierSpeciesReference_t * msr);
613 
614 
615 /**
616  * Returns the value of the "species" attribute of the given ModifierSpeciesReference_t
617  * structure.
618  *
619  * @param msr the ModifierSpeciesReference_t structure.
620  *
621  * @return the species of this structure.
622  *
623  * @memberof ModifierSpeciesReference_t
624  */
625 LIBSBML_EXTERN
626 const char *
627 ModifierSpeciesReference_getSpecies(const ModifierSpeciesReference_t * msr);
628 
629 
630 /**
631  * Predicate returning @c 1 (true) if the given ModifierSpeciesReference_t structure's "id"
632  * is set.
633  *
634  * @param msr the ModifierSpeciesReference_t structure.
635  *
636  * @return @c 1 (true) if the "id" of this ModifierSpeciesReference_t structure is
637  * set, @c 0 (false) otherwise.
638  *
639  * @memberof ModifierSpeciesReference_t
640  */
641 LIBSBML_EXTERN
642 int
643 ModifierSpeciesReference_isSetId(const ModifierSpeciesReference_t * msr);
644 
645 
646 /**
647  * Predicate returning @c 1 (true) if the given ModifierSpeciesReference_t structure's "name"
648  * is set.
649  *
650  * @param msr the ModifierSpeciesReference_t structure.
651  *
652  * @return @c 1 (true) if the "name" of this ModifierSpeciesReference_t structure is
653  * set, @c 0 (false) otherwise.
654  *
655  * @memberof ModifierSpeciesReference_t
656  */
657 LIBSBML_EXTERN
658 int
659 ModifierSpeciesReference_isSetName(const ModifierSpeciesReference_t * msr);
660 
661 
662 /**
663  * Predicate returning @c 1 (true) if the given ModifierSpeciesReference_t structure's "species"
664  * is set.
665  *
666  * @param msr the ModifierSpeciesReference_t structure.
667  *
668  * @return @c 1 (true) if the "species" of this ModifierSpeciesReference_t structure is
669  * set, @c 0 (false) otherwise.
670  *
671  * @memberof ModifierSpeciesReference_t
672  */
673 LIBSBML_EXTERN
674 int
675 ModifierSpeciesReference_isSetSpecies(const ModifierSpeciesReference_t * msr);
676 
677 
678 /**
679  * Sets the "id" attribute of the given ModifierSpeciesReference_t structure.
680  *
681  * This function copies the string given in @p id.  If the string is
682  * a null pointer, this function is equivalent to calling ModifierSpeciesReference_unsetId().
683  *
684  * @param msr the ModifierSpeciesReference_t structure.
685  *
686  * @param id the string to which the structures "id" attribute should be
687  * set.
688  *
689  * @copydetails doc_returns_success_code
690  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
691  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
692  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
693  *
694  * @note Using this function with a null pointer for @p id is equivalent to
695  * unsetting the value of the "id" attribute.
696  *
697  * @memberof ModifierSpeciesReference_t
698  */
699 LIBSBML_EXTERN
700 int
701 ModifierSpeciesReference_setId(ModifierSpeciesReference_t * msr, const char * id);
702 
703 
704 /**
705  * Sets the "name" attribute of the given ModifierSpeciesReference_t structure.
706  *
707  * This function copies the string given in @p name.  If the string is
708  * a null pointer, this function is equivalent to calling ModifierSpeciesReference_unsetName().
709  *
710  * @param msr the ModifierSpeciesReference_t structure.
711  *
712  * @param name the string to which the structures "name" attribute should be
713  * set.
714  *
715  * @copydetails doc_returns_success_code
716  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
717  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
718  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
719  *
720  * @note Using this function with a null pointer for @p name is equivalent to
721  * unsetting the value of the "name" attribute.
722  *
723  * @memberof ModifierSpeciesReference_t
724  */
725 LIBSBML_EXTERN
726 int
727 ModifierSpeciesReference_setName(ModifierSpeciesReference_t * msr, const char * name);
728 
729 
730 /**
731  * Sets the "species" attribute of the given ModifierSpeciesReference_t structure.
732  *
733  * This function copies the string given in @p species.  If the string is
734  * a null pointer, this function is equivalent to calling ModifierSpeciesReference_unsetSpecies().
735  *
736  * @param msr the ModifierSpeciesReference_t structure.
737  *
738  * @param species the string to which the structures "species" attribute should be
739  * set.
740  *
741  * @copydetails doc_returns_success_code
742  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
743  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
744  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
745  *
746  * @note Using this function with a null pointer for @p species is equivalent to
747  * unsetting the value of the "species" attribute.
748  *
749  * @memberof ModifierSpeciesReference_t
750  */
751 LIBSBML_EXTERN
752 int
753 ModifierSpeciesReference_setSpecies(ModifierSpeciesReference_t * msr, const char * species);
754 
755 
756 /**
757  * Unsets the value of the "id" attribute of the given
758  *ModifierSpeciesReference_t structure.
759  *
760  * @param msr the ModifierSpeciesReference_t structure.
761  *
762  * @copydetails doc_returns_success_code
763  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
764  * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
765  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
766  *
767  * @memberof ModifierSpeciesReference_t
768  */
769 LIBSBML_EXTERN
770 int
771 ModifierSpeciesReference_unsetId(ModifierSpeciesReference_t * msr);
772 
773 
774 /**
775  * Unsets the value of the "name" attribute of the given
776  *ModifierSpeciesReference_t structure.
777  *
778  * @param msr the ModifierSpeciesReference_t structure.
779  *
780  * @copydetails doc_returns_success_code
781  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
782  * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
783  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
784  *
785  * @memberof ModifierSpeciesReference_t
786  */
787 LIBSBML_EXTERN
788 int
789 ModifierSpeciesReference_unsetName(ModifierSpeciesReference_t * msr);
790 
791 
792 /**
793  * Unsets the value of the "species" attribute of the given
794  *ModifierSpeciesReference_t structure.
795  *
796  * @param msr the ModifierSpeciesReference_t structure.
797  *
798  * @copydetails doc_returns_success_code
799  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
800  * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
801  * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
802  *
803  * @memberof ModifierSpeciesReference_t
804  */
805 LIBSBML_EXTERN
806 int
807 ModifierSpeciesReference_unsetSpecies(ModifierSpeciesReference_t * msr);
808 
809 
810 /**
811  * Predicate returning @c 1 (true) or @c 0 (false) depending on whether all the required
812  * attributes of the given ModifierSpeciesReference_t structure have been set.
813  *
814  * @param msr the ModifierSpeciesReference_t structure to check.
815  *
816  * @return @c 1 (true) if all the required attributes for this
817  * structure have been defined, @c 0 (false) otherwise.
818  *
819  * @memberof ModifierSpeciesReference_t
820  */
821 LIBSBML_EXTERN
822 int
823 ModifierSpeciesReference_hasRequiredAttributes(const ModifierSpeciesReference_t * msr);
824 
825 
826 
827 
828 END_C_DECLS
829 LIBSBML_CPP_NAMESPACE_END
830 
831 #endif  /* !SWIG */
832 #endif  /* ModifierSpeciesReference_h */
833