NCBI C++ ToolKit
Variation_.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id$
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  */
27 
28 /// @file Variation_.hpp
29 /// Data storage class.
30 ///
31 /// This file was generated by application DATATOOL
32 /// using the following specifications:
33 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/variation/variation.asn">variation.asn</a>
34 /// and additional tune-up parameters:
35 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/variation/variation.def">variation.def</a>
36 ///
37 /// ATTENTION:
38 /// Don't edit or commit this file into CVS as this file will
39 /// be overridden (by DATATOOL) without warning!
40 
41 #ifndef OBJECTS_VARIATION_VARIATION_BASE_HPP
42 #define OBJECTS_VARIATION_VARIATION_BASE_HPP
43 
44 // standard includes
45 #include <serial/serialbase.hpp>
46 
47 // generated includes
48 #include <list>
49 #include <string>
50 
52 
53 #ifndef BEGIN_objects_SCOPE
54 # define BEGIN_objects_SCOPE BEGIN_SCOPE(objects)
55 # define END_objects_SCOPE END_SCOPE(objects)
56 #endif
57 BEGIN_objects_SCOPE // namespace ncbi::objects::
58 
59 
60 // forward declarations
61 class CBioseq;
62 class CDbtag;
63 class CObject_id;
64 class CPhenotype;
65 class CPopulation_data;
66 class CPub_set;
67 class CSubSource;
68 class CUser_object;
69 class CVariantPlacement;
70 class CVariantProperties;
71 class CVariation;
73 class CVariationMethod;
74 class CVariation_inst;
75 
76 
77 // generated classes
78 
79 
80 /** @addtogroup dataspec_NCBI_VariationPackage
81  *
82  * @{
83  */
84 
85 /////////////////////////////////////////////////////////////////////////////
86 ///
87 /// CVariation_Base --
88 ///
89 
91 {
93 public:
94  // constructor
95  CVariation_Base(void);
96  // destructor
97  virtual ~CVariation_Base(void);
98 
99  // type info
101 
102  /////////////////////////////////////////////////////////////////////////////
103  ///
104  /// C_Data --
105  ///
106 
108  {
110  public:
111  // constructor
112  C_Data(void);
113  // destructor
114  ~C_Data(void);
115 
116  // type info
118 
119  /////////////////////////////////////////////////////////////////////////////
120  /// Set of related Variations.
121  /// Location of the set equals to the union of member locations
122  ///
123  /// C_Set --
124  ///
125 
127  {
129  public:
130  // constructor
131  C_Set(void);
132  // destructor
133  ~C_Set(void);
134 
135  // type info
137 
139  eData_set_type_unknown = 0,
140  eData_set_type_compound = 1, ///< complex change at the same location on the same molecule
141  eData_set_type_products = 2, ///< different products arising from the same variation in a precursor, e.g. r.[13g>a, 13_88del]
142  eData_set_type_haplotype = 3, ///< changes on the same allele, e.g r.[13g>a;15u>c]
143  eData_set_type_genotype = 4, ///< changes on different alleles in the same genotype, e.g. g.[476C>T]+[476C>T]
144  eData_set_type_mosaic = 5, ///< different genotypes in the same individual
145  eData_set_type_individual = 6, ///< same organism; allele relationship unknown, e.g. g.[476C>T(+)183G>C]
146  eData_set_type_population = 7, ///< population
147  eData_set_type_alleles = 8, ///< set represents a set of observed alleles
148  eData_set_type_package = 9, ///< set represents a package of observations at a given location, generally containing asserted + reference
149  eData_set_type_chimeric = 10, ///< e.g. c.[1C>T//2G>T]
150  eData_set_type_other = 255
151  };
152 
153  /// Access to EData_set_type's attributes (values, names) as defined in spec
154  static const NCBI_NS_NCBI::CEnumeratedTypeValues* ENUM_METHOD_NAME(EData_set_type)(void);
155 
156  // types
157  typedef int TType;
158  typedef list< CRef< CVariation > > TVariations;
159  typedef string TName;
160 
161  // member index
162  enum class E_memberIndex {
163  e__allMandatory = 0,
164  e_type,
165  e_variations,
166  e_name
167  };
169 
170  // getters
171  // setters
172 
173  /// Check if a value has been assigned to Type data member.
174  ///
175  /// Data member Type is mandatory;
176  /// its type is defined as 'typedef int TType'
177  /// @return
178  /// - true, if a value has been assigned.
179  /// - false, otherwise.
180  bool IsSetType(void) const;
181 
182  /// Check if it is safe to call GetType method.
183  ///
184  /// @return
185  /// - true, if the data member is getatable.
186  /// - false, otherwise.
187  bool CanGetType(void) const;
188 
189  /// Reset Type data member.
190  void ResetType(void);
191 
192  /// Get the Type member data.
193  ///
194  /// @return
195  /// Copy of the member data.
196  TType GetType(void) const;
197 
198  /// Assign a value to Type data member.
199  ///
200  /// @param value
201  /// Value to assign
202  void SetType(TType value);
203 
204  /// Assign a value to Type data member.
205  ///
206  /// @return
207  /// Reference to the data value.
208  TType& SetType(void);
209 
210  /// Check if a value has been assigned to Variations data member.
211  ///
212  /// Data member Variations is mandatory;
213  /// its type is defined as 'typedef list< CRef< CVariation > > TVariations'
214  /// @return
215  /// - true, if a value has been assigned.
216  /// - false, otherwise.
217  bool IsSetVariations(void) const;
218 
219  /// Check if it is safe to call GetVariations method.
220  ///
221  /// @return
222  /// - true, if the data member is getatable.
223  /// - false, otherwise.
224  bool CanGetVariations(void) const;
225 
226  /// Reset Variations data member.
227  void ResetVariations(void);
228 
229  /// Get the Variations member data.
230  ///
231  /// @return
232  /// Reference to the member data.
233  const TVariations& GetVariations(void) const;
234 
235  /// Assign a value to Variations data member.
236  ///
237  /// @return
238  /// Reference to the data value.
239  TVariations& SetVariations(void);
240 
241  /// Check if a value has been assigned to Name data member.
242  ///
243  /// Data member Name is optional;
244  /// its type is defined as 'typedef string TName'
245  /// @return
246  /// - true, if a value has been assigned.
247  /// - false, otherwise.
248  bool IsSetName(void) const;
249 
250  /// Check if it is safe to call GetName method.
251  ///
252  /// @return
253  /// - true, if the data member is getatable.
254  /// - false, otherwise.
255  bool CanGetName(void) const;
256 
257  /// Reset Name data member.
258  void ResetName(void);
259 
260  /// Get the Name member data.
261  ///
262  /// @return
263  /// Reference to the member data.
264  const TName& GetName(void) const;
265 
266  /// Assign a value to Name data member.
267  ///
268  /// @param value
269  /// Value to assign
270  void SetName(const TName& value);
271  void SetName(TName&& value);
272 
273  /// Assign a value to Name data member.
274  ///
275  /// @return
276  /// Reference to the data value.
277  TName& SetName(void);
278 
279  /// Reset the whole object
280  void Reset(void);
281 
282 
283  private:
284  // Prohibit copy constructor and assignment operator
285  C_Set(const C_Set&);
287 
288  // data
289  Uint4 m_set_State[1];
290  int m_Type;
291  list< CRef< CVariation > > m_Variations;
292  string m_Name;
293  };
294 
295  /// Choice variants.
296  enum E_Choice {
297  e_not_set = 0, ///< No variant selected
299  e_Note, ///<free-form
301  e_Instance, ///< actual sequence-edit at feat.location
303  e_Complex, ///< variant is a complex and undescribed change at the location This type of variant is known to occur in dbVar submissions
304  e_Seq ///< Sequnece as it exists post-alteration
305  };
306  /// Maximum+1 value of the choice variant enumerator.
308  e_MaxChoice = 8 ///< == e_Seq+1
309  };
310 
311  /// Reset the whole object
312  void Reset(void);
313 
314  /// Reset the selection (set it to e_not_set).
315  void ResetSelection(void);
316 
317  /// Which variant is currently selected.
318  ///
319  /// @return
320  /// Choice state enumerator.
321  E_Choice Which(void) const;
322 
323  /// Verify selection, throw exception if it differs from the expected.
324  ///
325  /// @param index
326  /// Expected selection.
327  void CheckSelected(E_Choice index) const;
328 
329  /// Throw 'InvalidSelection' exception.
330  ///
331  /// @param index
332  /// Expected selection.
333  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
334 
335  /// Retrieve selection name (for diagnostic purposes).
336  ///
337  /// @param index
338  /// One of possible selection states.
339  /// @return
340  /// Name string.
341  static string SelectionName(E_Choice index);
342 
343  /// Select the requested variant if needed.
344  ///
345  /// @param index
346  /// New selection state.
347  /// @param reset
348  /// Flag that defines the resetting of the variant data. The data will
349  /// be reset if either the current selection differs from the new one,
350  /// or the flag is set to eDoResetVariant.
352  /// Select the requested variant if needed,
353  /// allocating CObject variants from memory pool.
354  void Select(E_Choice index,
355  EResetVariant reset,
356  CObjectMemoryPool* pool);
357 
358  // types
359  typedef string TNote;
361  typedef C_Set TSet;
362  typedef CBioseq TSeq;
363 
364  // getters
365  // setters
366 
367 
368  /// Check if variant Unknown is selected.
369  ///
370  /// @return
371  /// - true, if the variant is selected.
372  /// - false, otherwise.
373  bool IsUnknown(void) const;
374 
375  /// Select the variant.
376  void SetUnknown(void);
377 
378 
379  /// Check if variant Note is selected.
380  ///
381  /// Note type is defined as 'typedef string TNote'.
382  /// @return
383  /// - true, if the variant is selected.
384  /// - false, otherwise.
385  bool IsNote(void) const;
386 
387  /// Get the variant data.
388  ///
389  /// @return
390  /// Reference to the data.
391  const TNote& GetNote(void) const;
392 
393  /// Select the variant.
394  ///
395  /// @return
396  /// Reference to the variant data.
397  TNote& SetNote(void);
398 
399  /// Select the variant and set its data.
400  ///
401  /// @param value
402  /// Variant data.
403  void SetNote(const TNote& value);
404 
405 
406  /// Check if variant Uniparental_disomy is selected.
407  ///
408  /// @return
409  /// - true, if the variant is selected.
410  /// - false, otherwise.
411  bool IsUniparental_disomy(void) const;
412 
413  /// Select the variant.
414  void SetUniparental_disomy(void);
415 
416 
417  /// Check if variant Instance is selected.
418  ///
419  /// Instance type is defined as 'typedef CVariation_inst TInstance'.
420  /// @return
421  /// - true, if the variant is selected.
422  /// - false, otherwise.
423  bool IsInstance(void) const;
424 
425  /// Get the variant data.
426  ///
427  /// @return
428  /// Reference to the data.
429  const TInstance& GetInstance(void) const;
430 
431  /// Select the variant.
432  ///
433  /// @return
434  /// Reference to the variant data.
435  TInstance& SetInstance(void);
436  /// Select the variant and set its data.
437  ///
438  /// @param value
439  /// Reference to the data.
440  void SetInstance(TInstance& value);
441 
442 
443  /// Check if variant Set is selected.
444  ///
445  /// Set type is defined as 'typedef C_Set TSet'.
446  /// @return
447  /// - true, if the variant is selected.
448  /// - false, otherwise.
449  bool IsSet(void) const;
450 
451  /// Get the variant data.
452  ///
453  /// @return
454  /// Reference to the data.
455  const TSet& GetSet(void) const;
456 
457  /// Select the variant.
458  ///
459  /// @return
460  /// Reference to the variant data.
461  TSet& SetSet(void);
462  /// Select the variant and set its data.
463  ///
464  /// @param value
465  /// Reference to the data.
466  void SetSet(TSet& value);
467 
468 
469  /// Check if variant Complex is selected.
470  ///
471  /// @return
472  /// - true, if the variant is selected.
473  /// - false, otherwise.
474  bool IsComplex(void) const;
475 
476  /// Select the variant.
477  void SetComplex(void);
478 
479 
480  /// Check if variant Seq is selected.
481  ///
482  /// Seq type is defined as 'typedef CBioseq TSeq'.
483  /// @return
484  /// - true, if the variant is selected.
485  /// - false, otherwise.
486  bool IsSeq(void) const;
487 
488  /// Get the variant data.
489  ///
490  /// @return
491  /// Reference to the data.
492  const TSeq& GetSeq(void) const;
493 
494  /// Select the variant.
495  ///
496  /// @return
497  /// Reference to the variant data.
498  TSeq& SetSeq(void);
499  /// Select the variant and set its data.
500  ///
501  /// @param value
502  /// Reference to the data.
503  void SetSeq(TSeq& value);
504 
505 
506  private:
507  // copy constructor and assignment operator
508  C_Data(const C_Data& );
510  // choice state
512  // helper methods
513  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
514 
515  static const char* const sm_SelectionNames[];
516  // data
517  union {
518  NCBI_NS_NCBI::CUnionBuffer<NCBI_NS_STD::string> m_string;
519  NCBI_NS_NCBI::CSerialObject *m_object;
520  };
521  };
522  /////////////////////////////////////////////////////////////////////////////
523  ///
524  /// C_E_Consequence --
525  ///
526 
528  {
530  public:
531  // constructor
532  C_E_Consequence(void);
533  // destructor
534  ~C_E_Consequence(void);
535 
536  // type info
538 
539  /////////////////////////////////////////////////////////////////////////////
540  ///
541  /// C_Loss_of_heterozygosity --
542  ///
543 
545  {
547  public:
548  // constructor
550  // destructor
552 
553  // type info
555 
556  // types
557  typedef string TReference;
558  typedef string TTest;
559 
560  // member index
561  enum class E_memberIndex {
562  e__allMandatory = 0,
563  e_reference,
564  e_test
565  };
567 
568  // getters
569  // setters
570 
571  /// In germline comparison, it will be reference genome assembly
572  /// (default) or reference/normal population. In somatic mutation,
573  /// it will be a name of the normal tissue.
574  /// Check if a value has been assigned to Reference data member.
575  ///
576  /// Data member Reference is optional;
577  /// its type is defined as 'typedef string TReference'
578  /// @return
579  /// - true, if a value has been assigned.
580  /// - false, otherwise.
581  bool IsSetReference(void) const;
582 
583  /// Check if it is safe to call GetReference method.
584  ///
585  /// @return
586  /// - true, if the data member is getatable.
587  /// - false, otherwise.
588  bool CanGetReference(void) const;
589 
590  /// Reset Reference data member.
591  void ResetReference(void);
592 
593  /// Get the Reference member data.
594  ///
595  /// @return
596  /// Reference to the member data.
597  const TReference& GetReference(void) const;
598 
599  /// Assign a value to Reference data member.
600  ///
601  /// @param value
602  /// Value to assign
603  void SetReference(const TReference& value);
604  void SetReference(TReference&& value);
605 
606  /// Assign a value to Reference data member.
607  ///
608  /// @return
609  /// Reference to the data value.
610  TReference& SetReference(void);
611 
612  /// Name of the testing subject type or the testing tissue.
613  /// Check if a value has been assigned to Test data member.
614  ///
615  /// Data member Test is optional;
616  /// its type is defined as 'typedef string TTest'
617  /// @return
618  /// - true, if a value has been assigned.
619  /// - false, otherwise.
620  bool IsSetTest(void) const;
621 
622  /// Check if it is safe to call GetTest method.
623  ///
624  /// @return
625  /// - true, if the data member is getatable.
626  /// - false, otherwise.
627  bool CanGetTest(void) const;
628 
629  /// Reset Test data member.
630  void ResetTest(void);
631 
632  /// Get the Test member data.
633  ///
634  /// @return
635  /// Reference to the member data.
636  const TTest& GetTest(void) const;
637 
638  /// Assign a value to Test data member.
639  ///
640  /// @param value
641  /// Value to assign
642  void SetTest(const TTest& value);
643  void SetTest(TTest&& value);
644 
645  /// Assign a value to Test data member.
646  ///
647  /// @return
648  /// Reference to the data value.
649  TTest& SetTest(void);
650 
651  /// Reset the whole object
652  void Reset(void);
653 
654 
655  private:
656  // Prohibit copy constructor and assignment operator
659 
660  // data
661  Uint4 m_set_State[1];
662  string m_Reference;
663  string m_Test;
664  };
665 
666  /// Choice variants.
667  enum E_Choice {
668  e_not_set = 0, ///< No variant selected
670  e_Splicing, ///<some effect on splicing
671  e_Note, ///<freeform
672  e_Variation, ///< Describe resulting variation in the product, e.g. missense, nonsense, silent, neutral, etc in a protein, that arises from THIS variation.
673  e_Loss_of_heterozygosity
674  };
675  /// Maximum+1 value of the choice variant enumerator.
677  e_MaxChoice = 6 ///< == e_Loss_of_heterozygosity+1
678  };
679 
680  /// Reset the whole object
681  void Reset(void);
682 
683  /// Reset the selection (set it to e_not_set).
684  void ResetSelection(void);
685 
686  /// Which variant is currently selected.
687  ///
688  /// @return
689  /// Choice state enumerator.
690  E_Choice Which(void) const;
691 
692  /// Verify selection, throw exception if it differs from the expected.
693  ///
694  /// @param index
695  /// Expected selection.
696  void CheckSelected(E_Choice index) const;
697 
698  /// Throw 'InvalidSelection' exception.
699  ///
700  /// @param index
701  /// Expected selection.
702  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
703 
704  /// Retrieve selection name (for diagnostic purposes).
705  ///
706  /// @param index
707  /// One of possible selection states.
708  /// @return
709  /// Name string.
710  static string SelectionName(E_Choice index);
711 
712  /// Select the requested variant if needed.
713  ///
714  /// @param index
715  /// New selection state.
716  /// @param reset
717  /// Flag that defines the resetting of the variant data. The data will
718  /// be reset if either the current selection differs from the new one,
719  /// or the flag is set to eDoResetVariant.
721  /// Select the requested variant if needed,
722  /// allocating CObject variants from memory pool.
723  void Select(E_Choice index,
724  EResetVariant reset,
725  CObjectMemoryPool* pool);
726 
727  // types
728  typedef string TNote;
731 
732  // getters
733  // setters
734 
735 
736  /// Check if variant Unknown is selected.
737  ///
738  /// @return
739  /// - true, if the variant is selected.
740  /// - false, otherwise.
741  bool IsUnknown(void) const;
742 
743  /// Select the variant.
744  void SetUnknown(void);
745 
746 
747  /// Check if variant Splicing is selected.
748  ///
749  /// @return
750  /// - true, if the variant is selected.
751  /// - false, otherwise.
752  bool IsSplicing(void) const;
753 
754  /// Select the variant.
755  void SetSplicing(void);
756 
757 
758  /// Check if variant Note is selected.
759  ///
760  /// Note type is defined as 'typedef string TNote'.
761  /// @return
762  /// - true, if the variant is selected.
763  /// - false, otherwise.
764  bool IsNote(void) const;
765 
766  /// Get the variant data.
767  ///
768  /// @return
769  /// Reference to the data.
770  const TNote& GetNote(void) const;
771 
772  /// Select the variant.
773  ///
774  /// @return
775  /// Reference to the variant data.
776  TNote& SetNote(void);
777 
778  /// Select the variant and set its data.
779  ///
780  /// @param value
781  /// Variant data.
782  void SetNote(const TNote& value);
783 
784 
785  /// Check if variant Variation is selected.
786  ///
787  /// Variation type is defined as 'typedef CVariation TVariation'.
788  /// @return
789  /// - true, if the variant is selected.
790  /// - false, otherwise.
791  bool IsVariation(void) const;
792 
793  /// Get the variant data.
794  ///
795  /// @return
796  /// Reference to the data.
797  const TVariation& GetVariation(void) const;
798 
799  /// Select the variant.
800  ///
801  /// @return
802  /// Reference to the variant data.
803  TVariation& SetVariation(void);
804  /// Select the variant and set its data.
805  ///
806  /// @param value
807  /// Reference to the data.
808  void SetVariation(TVariation& value);
809 
810 
811  /// Check if variant Loss_of_heterozygosity is selected.
812  ///
813  /// Loss_of_heterozygosity type is defined as 'typedef C_Loss_of_heterozygosity TLoss_of_heterozygosity'.
814  /// @return
815  /// - true, if the variant is selected.
816  /// - false, otherwise.
817  bool IsLoss_of_heterozygosity(void) const;
818 
819  /// Get the variant data.
820  ///
821  /// @return
822  /// Reference to the data.
823  const TLoss_of_heterozygosity& GetLoss_of_heterozygosity(void) const;
824 
825  /// Select the variant.
826  ///
827  /// @return
828  /// Reference to the variant data.
829  TLoss_of_heterozygosity& SetLoss_of_heterozygosity(void);
830  /// Select the variant and set its data.
831  ///
832  /// @param value
833  /// Reference to the data.
834  void SetLoss_of_heterozygosity(TLoss_of_heterozygosity& value);
835 
836 
837  private:
838  // copy constructor and assignment operator
841  // choice state
843  // helper methods
844  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
845 
846  static const char* const sm_SelectionNames[];
847  // data
848  union {
849  NCBI_NS_NCBI::CUnionBuffer<NCBI_NS_STD::string> m_string;
850  NCBI_NS_NCBI::CSerialObject *m_object;
851  };
852  };
853  /////////////////////////////////////////////////////////////////////////////
854  /// Frameshift-related info. Applies only to protein-level variations.
855  /// see http://www.hgvs.org/mutnomen/recs-prot.html
856  ///
857  /// C_Frameshift --
858  ///
859 
861  {
863  public:
864  // constructor
865  C_Frameshift(void);
866  // destructor
867  ~C_Frameshift(void);
868 
869  // type info
871 
872  // types
873  typedef int TPhase;
874  typedef int TX_length;
875 
876  // member index
877  enum class E_memberIndex {
878  e__allMandatory = 0,
879  e_phase,
880  e_x_length
881  };
883 
884  // getters
885  // setters
886 
887  /// Check if a value has been assigned to Phase data member.
888  ///
889  /// Data member Phase is optional;
890  /// its type is defined as 'typedef int TPhase'
891  /// @return
892  /// - true, if a value has been assigned.
893  /// - false, otherwise.
894  bool IsSetPhase(void) const;
895 
896  /// Check if it is safe to call GetPhase method.
897  ///
898  /// @return
899  /// - true, if the data member is getatable.
900  /// - false, otherwise.
901  bool CanGetPhase(void) const;
902 
903  /// Reset Phase data member.
904  void ResetPhase(void);
905 
906  /// Get the Phase member data.
907  ///
908  /// @return
909  /// Copy of the member data.
910  TPhase GetPhase(void) const;
911 
912  /// Assign a value to Phase data member.
913  ///
914  /// @param value
915  /// Value to assign
916  void SetPhase(TPhase value);
917 
918  /// Assign a value to Phase data member.
919  ///
920  /// @return
921  /// Reference to the data value.
922  TPhase& SetPhase(void);
923 
924  /// Check if a value has been assigned to X_length data member.
925  ///
926  /// Data member X_length is optional;
927  /// its type is defined as 'typedef int TX_length'
928  /// @return
929  /// - true, if a value has been assigned.
930  /// - false, otherwise.
931  bool IsSetX_length(void) const;
932 
933  /// Check if it is safe to call GetX_length method.
934  ///
935  /// @return
936  /// - true, if the data member is getatable.
937  /// - false, otherwise.
938  bool CanGetX_length(void) const;
939 
940  /// Reset X_length data member.
941  void ResetX_length(void);
942 
943  /// Get the X_length member data.
944  ///
945  /// @return
946  /// Copy of the member data.
947  TX_length GetX_length(void) const;
948 
949  /// Assign a value to X_length data member.
950  ///
951  /// @param value
952  /// Value to assign
953  void SetX_length(TX_length value);
954 
955  /// Assign a value to X_length data member.
956  ///
957  /// @return
958  /// Reference to the data value.
959  TX_length& SetX_length(void);
960 
961  /// Reset the whole object
962  void Reset(void);
963 
964 
965  private:
966  // Prohibit copy constructor and assignment operator
969 
970  // data
971  Uint4 m_set_State[1];
972  int m_Phase;
974  };
975  /////////////////////////////////////////////////////////////////////////////
976  ///
977  /// C_E_Somatic_origin --
978  ///
979 
981  {
983  public:
984  // constructor
985  C_E_Somatic_origin(void);
986  // destructor
987  ~C_E_Somatic_origin(void);
988 
989  // type info
991 
992  /////////////////////////////////////////////////////////////////////////////
993  /// condition related to this origin's type
994  ///
995  /// C_Condition --
996  ///
997 
999  {
1001  public:
1002  // constructor
1003  C_Condition(void);
1004  // destructor
1005  ~C_Condition(void);
1006 
1007  // type info
1009 
1010  // types
1011  typedef string TDescription;
1012  typedef list< CRef< CDbtag > > TObject_id;
1013 
1014  // member index
1015  enum class E_memberIndex {
1016  e__allMandatory = 0,
1017  e_description,
1018  e_object_id
1019  };
1021 
1022  // getters
1023  // setters
1024 
1025  /// Check if a value has been assigned to Description data member.
1026  ///
1027  /// Data member Description is optional;
1028  /// its type is defined as 'typedef string TDescription'
1029  /// @return
1030  /// - true, if a value has been assigned.
1031  /// - false, otherwise.
1032  bool IsSetDescription(void) const;
1033 
1034  /// Check if it is safe to call GetDescription method.
1035  ///
1036  /// @return
1037  /// - true, if the data member is getatable.
1038  /// - false, otherwise.
1039  bool CanGetDescription(void) const;
1040 
1041  /// Reset Description data member.
1042  void ResetDescription(void);
1043 
1044  /// Get the Description member data.
1045  ///
1046  /// @return
1047  /// Reference to the member data.
1048  const TDescription& GetDescription(void) const;
1049 
1050  /// Assign a value to Description data member.
1051  ///
1052  /// @param value
1053  /// Value to assign
1054  void SetDescription(const TDescription& value);
1055  void SetDescription(TDescription&& value);
1056 
1057  /// Assign a value to Description data member.
1058  ///
1059  /// @return
1060  /// Reference to the data value.
1061  TDescription& SetDescription(void);
1062 
1063  /// reference to BioTerm / other descriptive database
1064  /// Check if a value has been assigned to Object_id data member.
1065  ///
1066  /// Data member Object_id is optional;
1067  /// its type is defined as 'typedef list< CRef< CDbtag > > TObject_id'
1068  /// @return
1069  /// - true, if a value has been assigned.
1070  /// - false, otherwise.
1071  bool IsSetObject_id(void) const;
1072 
1073  /// Check if it is safe to call GetObject_id method.
1074  ///
1075  /// @return
1076  /// - true, if the data member is getatable.
1077  /// - false, otherwise.
1078  bool CanGetObject_id(void) const;
1079 
1080  /// Reset Object_id data member.
1081  void ResetObject_id(void);
1082 
1083  /// Get the Object_id member data.
1084  ///
1085  /// @return
1086  /// Reference to the member data.
1087  const TObject_id& GetObject_id(void) const;
1088 
1089  /// Assign a value to Object_id data member.
1090  ///
1091  /// @return
1092  /// Reference to the data value.
1093  TObject_id& SetObject_id(void);
1094 
1095  /// Reset the whole object
1096  void Reset(void);
1097 
1098 
1099  private:
1100  // Prohibit copy constructor and assignment operator
1103 
1104  // data
1105  Uint4 m_set_State[1];
1107  list< CRef< CDbtag > > m_Object_id;
1108  };
1109  // types
1112 
1113  // member index
1114  enum class E_memberIndex {
1115  e__allMandatory = 0,
1116  e_source,
1117  e_condition
1118  };
1120 
1121  // getters
1122  // setters
1123 
1124  /// description of the somatic origin itself
1125  /// Check if a value has been assigned to Source data member.
1126  ///
1127  /// Data member Source is optional;
1128  /// its type is defined as 'typedef CSubSource TSource'
1129  /// @return
1130  /// - true, if a value has been assigned.
1131  /// - false, otherwise.
1132  bool IsSetSource(void) const;
1133 
1134  /// Check if it is safe to call GetSource method.
1135  ///
1136  /// @return
1137  /// - true, if the data member is getatable.
1138  /// - false, otherwise.
1139  bool CanGetSource(void) const;
1140 
1141  /// Reset Source data member.
1142  void ResetSource(void);
1143 
1144  /// Get the Source member data.
1145  ///
1146  /// @return
1147  /// Reference to the member data.
1148  const TSource& GetSource(void) const;
1149 
1150  /// Assign a value to Source data member.
1151  ///
1152  /// @param value
1153  /// Reference to value.
1154  void SetSource(TSource& value);
1155 
1156  /// Assign a value to Source data member.
1157  ///
1158  /// @return
1159  /// Reference to the data value.
1160  TSource& SetSource(void);
1161 
1162  /// Check if a value has been assigned to Condition data member.
1163  ///
1164  /// Data member Condition is optional;
1165  /// its type is defined as 'typedef C_Condition TCondition'
1166  /// @return
1167  /// - true, if a value has been assigned.
1168  /// - false, otherwise.
1169  bool IsSetCondition(void) const;
1170 
1171  /// Check if it is safe to call GetCondition method.
1172  ///
1173  /// @return
1174  /// - true, if the data member is getatable.
1175  /// - false, otherwise.
1176  bool CanGetCondition(void) const;
1177 
1178  /// Reset Condition data member.
1179  void ResetCondition(void);
1180 
1181  /// Get the Condition member data.
1182  ///
1183  /// @return
1184  /// Reference to the member data.
1185  const TCondition& GetCondition(void) const;
1186 
1187  /// Assign a value to Condition data member.
1188  ///
1189  /// @param value
1190  /// Reference to value.
1191  void SetCondition(TCondition& value);
1192 
1193  /// Assign a value to Condition data member.
1194  ///
1195  /// @return
1196  /// Reference to the data value.
1197  TCondition& SetCondition(void);
1198 
1199  /// Reset the whole object
1200  void Reset(void);
1201 
1202 
1203  private:
1204  // Prohibit copy constructor and assignment operator
1207 
1208  // data
1209  Uint4 m_set_State[1];
1212  };
1213  // types
1214  typedef CDbtag TId;
1216  typedef list< CRef< CObject_id > > TSample_id;
1217  typedef list< CRef< CDbtag > > TOther_ids;
1218  typedef string TName;
1219  typedef list< string > TSynonyms;
1220  typedef string TDescription;
1221  typedef list< CRef< CVariantPlacement > > TPlacements;
1222  typedef list< CRef< CPhenotype > > TPhenotype;
1224  typedef list< CRef< CPopulation_data > > TPopulation_data;
1226  typedef CPub_set TPub;
1228  typedef C_Data TData;
1230  typedef list< CRef< C_E_Consequence > > TConsequence;
1232  typedef list< CRef< CUser_object > > TExt;
1233  typedef list< CRef< C_E_Somatic_origin > > TSomatic_origin;
1234  typedef list< CRef< CVariationException > > TExceptions;
1235  typedef list< int > TSo_terms;
1236 
1237  // member index
1238  enum class E_memberIndex {
1239  e__allMandatory = 0,
1240  e_id,
1241  e_parent_id,
1242  e_sample_id,
1243  e_other_ids,
1244  e_name,
1245  e_synonyms,
1246  e_description,
1247  e_placements,
1248  e_phenotype,
1249  e_method,
1250  e_population_data,
1251  e_variant_prop,
1252  e_pub,
1253  e_clinical_test,
1254  e_data,
1255  e_consequence,
1256  e_frameshift,
1257  e_ext,
1258  e_somatic_origin,
1259  e_exceptions,
1260  e_so_terms
1261  };
1263 
1264  // getters
1265  // setters
1266 
1267  /// ids (i.e., SNP rsid / ssid, dbVar nsv/nssv)
1268  /// expected values include 'dbSNP|rs12334', 'dbSNP|ss12345', 'dbVar|nsv1'
1269  ///
1270  /// we relate three kinds of IDs here:
1271  /// - our current object's id
1272  /// - the id of this object's parent, if it exists
1273  /// - the sample ID that this item originates from
1274  /// Check if a value has been assigned to Id data member.
1275  ///
1276  /// Data member Id is optional;
1277  /// its type is defined as 'typedef CDbtag TId'
1278  /// @return
1279  /// - true, if a value has been assigned.
1280  /// - false, otherwise.
1281  bool IsSetId(void) const;
1282 
1283  /// Check if it is safe to call GetId method.
1284  ///
1285  /// @return
1286  /// - true, if the data member is getatable.
1287  /// - false, otherwise.
1288  bool CanGetId(void) const;
1289 
1290  /// Reset Id data member.
1291  void ResetId(void);
1292 
1293  /// Get the Id member data.
1294  ///
1295  /// @return
1296  /// Reference to the member data.
1297  const TId& GetId(void) const;
1298 
1299  /// Assign a value to Id data member.
1300  ///
1301  /// @param value
1302  /// Reference to value.
1303  void SetId(TId& value);
1304 
1305  /// Assign a value to Id data member.
1306  ///
1307  /// @return
1308  /// Reference to the data value.
1309  TId& SetId(void);
1310 
1311  /// Check if a value has been assigned to Parent_id data member.
1312  ///
1313  /// Data member Parent_id is optional;
1314  /// its type is defined as 'typedef CDbtag TParent_id'
1315  /// @return
1316  /// - true, if a value has been assigned.
1317  /// - false, otherwise.
1318  bool IsSetParent_id(void) const;
1319 
1320  /// Check if it is safe to call GetParent_id method.
1321  ///
1322  /// @return
1323  /// - true, if the data member is getatable.
1324  /// - false, otherwise.
1325  bool CanGetParent_id(void) const;
1326 
1327  /// Reset Parent_id data member.
1328  void ResetParent_id(void);
1329 
1330  /// Get the Parent_id member data.
1331  ///
1332  /// @return
1333  /// Reference to the member data.
1334  const TParent_id& GetParent_id(void) const;
1335 
1336  /// Assign a value to Parent_id data member.
1337  ///
1338  /// @param value
1339  /// Reference to value.
1340  void SetParent_id(TParent_id& value);
1341 
1342  /// Assign a value to Parent_id data member.
1343  ///
1344  /// @return
1345  /// Reference to the data value.
1346  TParent_id& SetParent_id(void);
1347 
1348  /// Check if a value has been assigned to Sample_id data member.
1349  ///
1350  /// Data member Sample_id is optional;
1351  /// its type is defined as 'typedef list< CRef< CObject_id > > TSample_id'
1352  /// @return
1353  /// - true, if a value has been assigned.
1354  /// - false, otherwise.
1355  bool IsSetSample_id(void) const;
1356 
1357  /// Check if it is safe to call GetSample_id method.
1358  ///
1359  /// @return
1360  /// - true, if the data member is getatable.
1361  /// - false, otherwise.
1362  bool CanGetSample_id(void) const;
1363 
1364  /// Reset Sample_id data member.
1365  void ResetSample_id(void);
1366 
1367  /// Get the Sample_id member data.
1368  ///
1369  /// @return
1370  /// Reference to the member data.
1371  const TSample_id& GetSample_id(void) const;
1372 
1373  /// Assign a value to Sample_id data member.
1374  ///
1375  /// @return
1376  /// Reference to the data value.
1377  TSample_id& SetSample_id(void);
1378 
1379  /// Check if a value has been assigned to Other_ids data member.
1380  ///
1381  /// Data member Other_ids is optional;
1382  /// its type is defined as 'typedef list< CRef< CDbtag > > TOther_ids'
1383  /// @return
1384  /// - true, if a value has been assigned.
1385  /// - false, otherwise.
1386  bool IsSetOther_ids(void) const;
1387 
1388  /// Check if it is safe to call GetOther_ids method.
1389  ///
1390  /// @return
1391  /// - true, if the data member is getatable.
1392  /// - false, otherwise.
1393  bool CanGetOther_ids(void) const;
1394 
1395  /// Reset Other_ids data member.
1396  void ResetOther_ids(void);
1397 
1398  /// Get the Other_ids member data.
1399  ///
1400  /// @return
1401  /// Reference to the member data.
1402  const TOther_ids& GetOther_ids(void) const;
1403 
1404  /// Assign a value to Other_ids data member.
1405  ///
1406  /// @return
1407  /// Reference to the data value.
1408  TOther_ids& SetOther_ids(void);
1409 
1410  /// names and synonyms
1411  /// some variants have well-known canonical names and possible accepted
1412  /// synonyms
1413  /// Check if a value has been assigned to Name data member.
1414  ///
1415  /// Data member Name is optional;
1416  /// its type is defined as 'typedef string TName'
1417  /// @return
1418  /// - true, if a value has been assigned.
1419  /// - false, otherwise.
1420  bool IsSetName(void) const;
1421 
1422  /// Check if it is safe to call GetName method.
1423  ///
1424  /// @return
1425  /// - true, if the data member is getatable.
1426  /// - false, otherwise.
1427  bool CanGetName(void) const;
1428 
1429  /// Reset Name data member.
1430  void ResetName(void);
1431 
1432  /// Get the Name member data.
1433  ///
1434  /// @return
1435  /// Reference to the member data.
1436  const TName& GetName(void) const;
1437 
1438  /// Assign a value to Name data member.
1439  ///
1440  /// @param value
1441  /// Value to assign
1442  void SetName(const TName& value);
1443  void SetName(TName&& value);
1444 
1445  /// Assign a value to Name data member.
1446  ///
1447  /// @return
1448  /// Reference to the data value.
1449  TName& SetName(void);
1450 
1451  /// Check if a value has been assigned to Synonyms data member.
1452  ///
1453  /// Data member Synonyms is optional;
1454  /// its type is defined as 'typedef list< string > TSynonyms'
1455  /// @return
1456  /// - true, if a value has been assigned.
1457  /// - false, otherwise.
1458  bool IsSetSynonyms(void) const;
1459 
1460  /// Check if it is safe to call GetSynonyms method.
1461  ///
1462  /// @return
1463  /// - true, if the data member is getatable.
1464  /// - false, otherwise.
1465  bool CanGetSynonyms(void) const;
1466 
1467  /// Reset Synonyms data member.
1468  void ResetSynonyms(void);
1469 
1470  /// Get the Synonyms member data.
1471  ///
1472  /// @return
1473  /// Reference to the member data.
1474  const TSynonyms& GetSynonyms(void) const;
1475 
1476  /// Assign a value to Synonyms data member.
1477  ///
1478  /// @return
1479  /// Reference to the data value.
1480  TSynonyms& SetSynonyms(void);
1481 
1482  /// tag for comment and descriptions
1483  /// Check if a value has been assigned to Description data member.
1484  ///
1485  /// Data member Description is optional;
1486  /// its type is defined as 'typedef string TDescription'
1487  /// @return
1488  /// - true, if a value has been assigned.
1489  /// - false, otherwise.
1490  bool IsSetDescription(void) const;
1491 
1492  /// Check if it is safe to call GetDescription method.
1493  ///
1494  /// @return
1495  /// - true, if the data member is getatable.
1496  /// - false, otherwise.
1497  bool CanGetDescription(void) const;
1498 
1499  /// Reset Description data member.
1500  void ResetDescription(void);
1501 
1502  /// Get the Description member data.
1503  ///
1504  /// @return
1505  /// Reference to the member data.
1506  const TDescription& GetDescription(void) const;
1507 
1508  /// Assign a value to Description data member.
1509  ///
1510  /// @param value
1511  /// Value to assign
1512  void SetDescription(const TDescription& value);
1513  void SetDescription(TDescription&& value);
1514 
1515  /// Assign a value to Description data member.
1516  ///
1517  /// @return
1518  /// Reference to the data value.
1519  TDescription& SetDescription(void);
1520 
1521  /// where this beast is seen
1522  /// note that this is a set of locations, and there are no restrictions to
1523  /// the contents to this set.
1524  /// Check if a value has been assigned to Placements data member.
1525  ///
1526  /// Data member Placements is optional;
1527  /// its type is defined as 'typedef list< CRef< CVariantPlacement > > TPlacements'
1528  /// @return
1529  /// - true, if a value has been assigned.
1530  /// - false, otherwise.
1531  bool IsSetPlacements(void) const;
1532 
1533  /// Check if it is safe to call GetPlacements method.
1534  ///
1535  /// @return
1536  /// - true, if the data member is getatable.
1537  /// - false, otherwise.
1538  bool CanGetPlacements(void) const;
1539 
1540  /// Reset Placements data member.
1541  void ResetPlacements(void);
1542 
1543  /// Get the Placements member data.
1544  ///
1545  /// @return
1546  /// Reference to the member data.
1547  const TPlacements& GetPlacements(void) const;
1548 
1549  /// Assign a value to Placements data member.
1550  ///
1551  /// @return
1552  /// Reference to the data value.
1553  TPlacements& SetPlacements(void);
1554 
1555  /// phenotype
1556  /// Check if a value has been assigned to Phenotype data member.
1557  ///
1558  /// Data member Phenotype is optional;
1559  /// its type is defined as 'typedef list< CRef< CPhenotype > > TPhenotype'
1560  /// @return
1561  /// - true, if a value has been assigned.
1562  /// - false, otherwise.
1563  bool IsSetPhenotype(void) const;
1564 
1565  /// Check if it is safe to call GetPhenotype method.
1566  ///
1567  /// @return
1568  /// - true, if the data member is getatable.
1569  /// - false, otherwise.
1570  bool CanGetPhenotype(void) const;
1571 
1572  /// Reset Phenotype data member.
1573  void ResetPhenotype(void);
1574 
1575  /// Get the Phenotype member data.
1576  ///
1577  /// @return
1578  /// Reference to the member data.
1579  const TPhenotype& GetPhenotype(void) const;
1580 
1581  /// Assign a value to Phenotype data member.
1582  ///
1583  /// @return
1584  /// Reference to the data value.
1585  TPhenotype& SetPhenotype(void);
1586 
1587  /// sequencing / acuisition method
1588  /// Check if a value has been assigned to Method data member.
1589  ///
1590  /// Data member Method is optional;
1591  /// its type is defined as 'typedef CVariationMethod TMethod'
1592  /// @return
1593  /// - true, if a value has been assigned.
1594  /// - false, otherwise.
1595  bool IsSetMethod(void) const;
1596 
1597  /// Check if it is safe to call GetMethod method.
1598  ///
1599  /// @return
1600  /// - true, if the data member is getatable.
1601  /// - false, otherwise.
1602  bool CanGetMethod(void) const;
1603 
1604  /// Reset Method data member.
1605  void ResetMethod(void);
1606 
1607  /// Get the Method member data.
1608  ///
1609  /// @return
1610  /// Reference to the member data.
1611  const TMethod& GetMethod(void) const;
1612 
1613  /// Assign a value to Method data member.
1614  ///
1615  /// @param value
1616  /// Reference to value.
1617  void SetMethod(TMethod& value);
1618 
1619  /// Assign a value to Method data member.
1620  ///
1621  /// @return
1622  /// Reference to the data value.
1623  TMethod& SetMethod(void);
1624 
1625  /// Note about SNP representation and pretinent fields: allele-frequency,
1626  /// population, quality-codes:
1627  /// The case of multiple alleles for a SNP would be described by
1628  /// parent-feature of type Variation-set.diff-alleles, where the child
1629  /// features of type Variation-inst, all at the same location, would
1630  /// describe individual alleles.
1631  /// population data
1632  /// Check if a value has been assigned to Population_data data member.
1633  ///
1634  /// Data member Population_data is optional;
1635  /// its type is defined as 'typedef list< CRef< CPopulation_data > > TPopulation_data'
1636  /// @return
1637  /// - true, if a value has been assigned.
1638  /// - false, otherwise.
1639  bool IsSetPopulation_data(void) const;
1640 
1641  /// Check if it is safe to call GetPopulation_data method.
1642  ///
1643  /// @return
1644  /// - true, if the data member is getatable.
1645  /// - false, otherwise.
1646  bool CanGetPopulation_data(void) const;
1647 
1648  /// Reset Population_data data member.
1649  void ResetPopulation_data(void);
1650 
1651  /// Get the Population_data member data.
1652  ///
1653  /// @return
1654  /// Reference to the member data.
1655  const TPopulation_data& GetPopulation_data(void) const;
1656 
1657  /// Assign a value to Population_data data member.
1658  ///
1659  /// @return
1660  /// Reference to the data value.
1661  TPopulation_data& SetPopulation_data(void);
1662 
1663  /// variant properties bit fields
1664  /// Check if a value has been assigned to Variant_prop data member.
1665  ///
1666  /// Data member Variant_prop is optional;
1667  /// its type is defined as 'typedef CVariantProperties TVariant_prop'
1668  /// @return
1669  /// - true, if a value has been assigned.
1670  /// - false, otherwise.
1671  bool IsSetVariant_prop(void) const;
1672 
1673  /// Check if it is safe to call GetVariant_prop method.
1674  ///
1675  /// @return
1676  /// - true, if the data member is getatable.
1677  /// - false, otherwise.
1678  bool CanGetVariant_prop(void) const;
1679 
1680  /// Reset Variant_prop data member.
1681  void ResetVariant_prop(void);
1682 
1683  /// Get the Variant_prop member data.
1684  ///
1685  /// @return
1686  /// Reference to the member data.
1687  const TVariant_prop& GetVariant_prop(void) const;
1688 
1689  /// Assign a value to Variant_prop data member.
1690  ///
1691  /// @param value
1692  /// Reference to value.
1693  void SetVariant_prop(TVariant_prop& value);
1694 
1695  /// Assign a value to Variant_prop data member.
1696  ///
1697  /// @return
1698  /// Reference to the data value.
1699  TVariant_prop& SetVariant_prop(void);
1700 
1701  /// publication support; same type as in seq-feat
1702  /// Check if a value has been assigned to Pub data member.
1703  ///
1704  /// Data member Pub is optional;
1705  /// its type is defined as 'typedef CPub_set TPub'
1706  /// @return
1707  /// - true, if a value has been assigned.
1708  /// - false, otherwise.
1709  bool IsSetPub(void) const;
1710 
1711  /// Check if it is safe to call GetPub method.
1712  ///
1713  /// @return
1714  /// - true, if the data member is getatable.
1715  /// - false, otherwise.
1716  bool CanGetPub(void) const;
1717 
1718  /// Reset Pub data member.
1719  void ResetPub(void);
1720 
1721  /// Get the Pub member data.
1722  ///
1723  /// @return
1724  /// Reference to the member data.
1725  const TPub& GetPub(void) const;
1726 
1727  /// Assign a value to Pub data member.
1728  ///
1729  /// @param value
1730  /// Reference to value.
1731  void SetPub(TPub& value);
1732 
1733  /// Assign a value to Pub data member.
1734  ///
1735  /// @return
1736  /// Reference to the data value.
1737  TPub& SetPub(void);
1738 
1739  /// References to external
1740  /// Check if a value has been assigned to Clinical_test data member.
1741  ///
1742  /// Data member Clinical_test is optional;
1743  /// its type is defined as 'typedef CDbtag TClinical_test'
1744  /// @return
1745  /// - true, if a value has been assigned.
1746  /// - false, otherwise.
1747  bool IsSetClinical_test(void) const;
1748 
1749  /// Check if it is safe to call GetClinical_test method.
1750  ///
1751  /// @return
1752  /// - true, if the data member is getatable.
1753  /// - false, otherwise.
1754  bool CanGetClinical_test(void) const;
1755 
1756  /// Reset Clinical_test data member.
1757  void ResetClinical_test(void);
1758 
1759  /// Get the Clinical_test member data.
1760  ///
1761  /// @return
1762  /// Reference to the member data.
1763  const TClinical_test& GetClinical_test(void) const;
1764 
1765  /// Assign a value to Clinical_test data member.
1766  ///
1767  /// @param value
1768  /// Reference to value.
1769  void SetClinical_test(TClinical_test& value);
1770 
1771  /// Assign a value to Clinical_test data member.
1772  ///
1773  /// @return
1774  /// Reference to the data value.
1775  TClinical_test& SetClinical_test(void);
1776 
1777  /// Check if a value has been assigned to Data data member.
1778  ///
1779  /// Data member Data is mandatory;
1780  /// its type is defined as 'typedef C_Data TData'
1781  /// @return
1782  /// - true, if a value has been assigned.
1783  /// - false, otherwise.
1784  bool IsSetData(void) const;
1785 
1786  /// Check if it is safe to call GetData method.
1787  ///
1788  /// @return
1789  /// - true, if the data member is getatable.
1790  /// - false, otherwise.
1791  bool CanGetData(void) const;
1792 
1793  /// Reset Data data member.
1794  void ResetData(void);
1795 
1796  /// Get the Data member data.
1797  ///
1798  /// @return
1799  /// Reference to the member data.
1800  const TData& GetData(void) const;
1801 
1802  /// Assign a value to Data data member.
1803  ///
1804  /// @param value
1805  /// Reference to value.
1806  void SetData(TData& value);
1807 
1808  /// Assign a value to Data data member.
1809  ///
1810  /// @return
1811  /// Reference to the data value.
1812  TData& SetData(void);
1813 
1814  /// Check if a value has been assigned to Consequence data member.
1815  ///
1816  /// Data member Consequence is optional;
1817  /// its type is defined as 'typedef list< CRef< C_E_Consequence > > TConsequence'
1818  /// @return
1819  /// - true, if a value has been assigned.
1820  /// - false, otherwise.
1821  bool IsSetConsequence(void) const;
1822 
1823  /// Check if it is safe to call GetConsequence method.
1824  ///
1825  /// @return
1826  /// - true, if the data member is getatable.
1827  /// - false, otherwise.
1828  bool CanGetConsequence(void) const;
1829 
1830  /// Reset Consequence data member.
1831  void ResetConsequence(void);
1832 
1833  /// Get the Consequence member data.
1834  ///
1835  /// @return
1836  /// Reference to the member data.
1837  const TConsequence& GetConsequence(void) const;
1838 
1839  /// Assign a value to Consequence data member.
1840  ///
1841  /// @return
1842  /// Reference to the data value.
1843  TConsequence& SetConsequence(void);
1844 
1845  /// Check if a value has been assigned to Frameshift data member.
1846  ///
1847  /// Data member Frameshift is optional;
1848  /// its type is defined as 'typedef C_Frameshift TFrameshift'
1849  /// @return
1850  /// - true, if a value has been assigned.
1851  /// - false, otherwise.
1852  bool IsSetFrameshift(void) const;
1853 
1854  /// Check if it is safe to call GetFrameshift method.
1855  ///
1856  /// @return
1857  /// - true, if the data member is getatable.
1858  /// - false, otherwise.
1859  bool CanGetFrameshift(void) const;
1860 
1861  /// Reset Frameshift data member.
1862  void ResetFrameshift(void);
1863 
1864  /// Get the Frameshift member data.
1865  ///
1866  /// @return
1867  /// Reference to the member data.
1868  const TFrameshift& GetFrameshift(void) const;
1869 
1870  /// Assign a value to Frameshift data member.
1871  ///
1872  /// @param value
1873  /// Reference to value.
1874  void SetFrameshift(TFrameshift& value);
1875 
1876  /// Assign a value to Frameshift data member.
1877  ///
1878  /// @return
1879  /// Reference to the data value.
1880  TFrameshift& SetFrameshift(void);
1881 
1882  /// Additional undescribed extensions
1883  /// Check if a value has been assigned to Ext data member.
1884  ///
1885  /// Data member Ext is optional;
1886  /// its type is defined as 'typedef list< CRef< CUser_object > > TExt'
1887  /// @return
1888  /// - true, if a value has been assigned.
1889  /// - false, otherwise.
1890  bool IsSetExt(void) const;
1891 
1892  /// Check if it is safe to call GetExt method.
1893  ///
1894  /// @return
1895  /// - true, if the data member is getatable.
1896  /// - false, otherwise.
1897  bool CanGetExt(void) const;
1898 
1899  /// Reset Ext data member.
1900  void ResetExt(void);
1901 
1902  /// Get the Ext member data.
1903  ///
1904  /// @return
1905  /// Reference to the member data.
1906  const TExt& GetExt(void) const;
1907 
1908  /// Assign a value to Ext data member.
1909  ///
1910  /// @return
1911  /// Reference to the data value.
1912  TExt& SetExt(void);
1913 
1914  /// Check if a value has been assigned to Somatic_origin data member.
1915  ///
1916  /// Data member Somatic_origin is optional;
1917  /// its type is defined as 'typedef list< CRef< C_E_Somatic_origin > > TSomatic_origin'
1918  /// @return
1919  /// - true, if a value has been assigned.
1920  /// - false, otherwise.
1921  bool IsSetSomatic_origin(void) const;
1922 
1923  /// Check if it is safe to call GetSomatic_origin method.
1924  ///
1925  /// @return
1926  /// - true, if the data member is getatable.
1927  /// - false, otherwise.
1928  bool CanGetSomatic_origin(void) const;
1929 
1930  /// Reset Somatic_origin data member.
1931  void ResetSomatic_origin(void);
1932 
1933  /// Get the Somatic_origin member data.
1934  ///
1935  /// @return
1936  /// Reference to the member data.
1937  const TSomatic_origin& GetSomatic_origin(void) const;
1938 
1939  /// Assign a value to Somatic_origin data member.
1940  ///
1941  /// @return
1942  /// Reference to the data value.
1943  TSomatic_origin& SetSomatic_origin(void);
1944 
1945  /// Check if a value has been assigned to Exceptions data member.
1946  ///
1947  /// Data member Exceptions is optional;
1948  /// its type is defined as 'typedef list< CRef< CVariationException > > TExceptions'
1949  /// @return
1950  /// - true, if a value has been assigned.
1951  /// - false, otherwise.
1952  bool IsSetExceptions(void) const;
1953 
1954  /// Check if it is safe to call GetExceptions method.
1955  ///
1956  /// @return
1957  /// - true, if the data member is getatable.
1958  /// - false, otherwise.
1959  bool CanGetExceptions(void) const;
1960 
1961  /// Reset Exceptions data member.
1962  void ResetExceptions(void);
1963 
1964  /// Get the Exceptions member data.
1965  ///
1966  /// @return
1967  /// Reference to the member data.
1968  const TExceptions& GetExceptions(void) const;
1969 
1970  /// Assign a value to Exceptions data member.
1971  ///
1972  /// @return
1973  /// Reference to the data value.
1974  TExceptions& SetExceptions(void);
1975 
1976  /// Check if a value has been assigned to So_terms data member.
1977  ///
1978  /// Data member So_terms is optional;
1979  /// its type is defined as 'typedef list< int > TSo_terms'
1980  /// @return
1981  /// - true, if a value has been assigned.
1982  /// - false, otherwise.
1983  bool IsSetSo_terms(void) const;
1984 
1985  /// Check if it is safe to call GetSo_terms method.
1986  ///
1987  /// @return
1988  /// - true, if the data member is getatable.
1989  /// - false, otherwise.
1990  bool CanGetSo_terms(void) const;
1991 
1992  /// Reset So_terms data member.
1993  void ResetSo_terms(void);
1994 
1995  /// Get the So_terms member data.
1996  ///
1997  /// @return
1998  /// Reference to the member data.
1999  const TSo_terms& GetSo_terms(void) const;
2000 
2001  /// Assign a value to So_terms data member.
2002  ///
2003  /// @return
2004  /// Reference to the data value.
2005  TSo_terms& SetSo_terms(void);
2006 
2007  /// Reset the whole object
2008  virtual void Reset(void);
2009 
2010 
2011 private:
2012  // Prohibit copy constructor and assignment operator
2015 
2016  // data
2017  Uint4 m_set_State[2];
2020  list< CRef< CObject_id > > m_Sample_id;
2021  list< CRef< CDbtag > > m_Other_ids;
2022  string m_Name;
2023  list< string > m_Synonyms;
2025  list< CRef< CVariantPlacement > > m_Placements;
2026  list< CRef< CPhenotype > > m_Phenotype;
2028  list< CRef< CPopulation_data > > m_Population_data;
2033  list< CRef< C_E_Consequence > > m_Consequence;
2035  list< CRef< CUser_object > > m_Ext;
2036  list< CRef< C_E_Somatic_origin > > m_Somatic_origin;
2037  list< CRef< CVariationException > > m_Exceptions;
2038  list< int > m_So_terms;
2039 };
2040 
2041 /* @} */
2042 
2043 
2044 
2045 
2046 
2047 ///////////////////////////////////////////////////////////
2048 ///////////////////// inline methods //////////////////////
2049 ///////////////////////////////////////////////////////////
2050 inline
2052 {
2053  return ((m_set_State[0] & 0x3) != 0);
2054 }
2055 
2056 inline
2058 {
2059  return IsSetType();
2060 }
2061 
2062 inline
2064 {
2065  m_Type = (EData_set_type)(0);
2066  m_set_State[0] &= ~0x3;
2067 }
2068 
2069 inline
2071 {
2072  if (!CanGetType()) {
2073  ThrowUnassigned(0);
2074  }
2075  return m_Type;
2076 }
2077 
2078 inline
2080 {
2081  m_Type = value;
2082  m_set_State[0] |= 0x3;
2083 }
2084 
2085 inline
2087 {
2088 #ifdef _DEBUG
2089  if (!IsSetType()) {
2090  memset(&m_Type,UnassignedByte(),sizeof(m_Type));
2091  }
2092 #endif
2093  m_set_State[0] |= 0x1;
2094  return m_Type;
2095 }
2096 
2097 inline
2099 {
2100  return ((m_set_State[0] & 0xc) != 0);
2101 }
2102 
2103 inline
2105 {
2106  return true;
2107 }
2108 
2109 inline
2111 {
2112  return m_Variations;
2113 }
2114 
2115 inline
2117 {
2118  m_set_State[0] |= 0x4;
2119  return m_Variations;
2120 }
2121 
2122 inline
2124 {
2125  return ((m_set_State[0] & 0x30) != 0);
2126 }
2127 
2128 inline
2130 {
2131  return IsSetName();
2132 }
2133 
2134 inline
2136 {
2137  if (!CanGetName()) {
2138  ThrowUnassigned(2);
2139  }
2140  return m_Name;
2141 }
2142 
2143 inline
2145 {
2146  m_Name = value;
2147  m_set_State[0] |= 0x30;
2148 }
2149 
2150 inline
2152 {
2153  m_Name = std::forward<CVariation_Base::C_Data::C_Set::TName>(value);
2154  m_set_State[0] |= 0x30;
2155 }
2156 
2157 inline
2159 {
2160 #ifdef _DEBUG
2161  if (!IsSetName()) {
2163  }
2164 #endif
2165  m_set_State[0] |= 0x10;
2166  return m_Name;
2167 }
2168 
2169 inline
2171 {
2172  return m_choice;
2173 }
2174 
2175 inline
2177 {
2178  if ( m_choice != index )
2179  ThrowInvalidSelection(index);
2180 }
2181 
2182 inline
2183 void CVariation_Base::C_Data::Select(E_Choice index, NCBI_NS_NCBI::EResetVariant reset, NCBI_NS_NCBI::CObjectMemoryPool* pool)
2184 {
2185  if ( reset == NCBI_NS_NCBI::eDoResetVariant || m_choice != index ) {
2186  if ( m_choice != e_not_set )
2187  ResetSelection();
2188  DoSelect(index, pool);
2189  }
2190 }
2191 
2192 inline
2194 {
2195  Select(index, reset, 0);
2196 }
2197 
2198 inline
2200 {
2201  return m_choice == e_Unknown;
2202 }
2203 
2204 inline
2206 {
2208 }
2209 
2210 inline
2212 {
2213  return m_choice == e_Note;
2214 }
2215 
2216 inline
2218 {
2220  return *m_string;
2221 }
2222 
2223 inline
2225 {
2227  return *m_string;
2228 }
2229 
2230 inline
2232 {
2233  return m_choice == e_Uniparental_disomy;
2234 }
2235 
2236 inline
2238 {
2240 }
2241 
2242 inline
2244 {
2245  return m_choice == e_Instance;
2246 }
2247 
2248 inline
2250 {
2251  return m_choice == e_Set;
2252 }
2253 
2254 inline
2256 {
2257  return m_choice == e_Complex;
2258 }
2259 
2260 inline
2262 {
2264 }
2265 
2266 inline
2268 {
2269  return m_choice == e_Seq;
2270 }
2271 
2272 inline
2274 {
2275  return ((m_set_State[0] & 0x3) != 0);
2276 }
2277 
2278 inline
2280 {
2281  return IsSetReference();
2282 }
2283 
2284 inline
2286 {
2287  if (!CanGetReference()) {
2288  ThrowUnassigned(0);
2289  }
2290  return m_Reference;
2291 }
2292 
2293 inline
2295 {
2296  m_Reference = value;
2297  m_set_State[0] |= 0x3;
2298 }
2299 
2300 inline
2302 {
2303  m_Reference = std::forward<CVariation_Base::C_E_Consequence::C_Loss_of_heterozygosity::TReference>(value);
2304  m_set_State[0] |= 0x3;
2305 }
2306 
2307 inline
2309 {
2310 #ifdef _DEBUG
2311  if (!IsSetReference()) {
2312  m_Reference = UnassignedString();
2313  }
2314 #endif
2315  m_set_State[0] |= 0x1;
2316  return m_Reference;
2317 }
2318 
2319 inline
2321 {
2322  return ((m_set_State[0] & 0xc) != 0);
2323 }
2324 
2325 inline
2327 {
2328  return IsSetTest();
2329 }
2330 
2331 inline
2333 {
2334  if (!CanGetTest()) {
2335  ThrowUnassigned(1);
2336  }
2337  return m_Test;
2338 }
2339 
2340 inline
2342 {
2343  m_Test = value;
2344  m_set_State[0] |= 0xc;
2345 }
2346 
2347 inline
2349 {
2350  m_Test = std::forward<CVariation_Base::C_E_Consequence::C_Loss_of_heterozygosity::TTest>(value);
2351  m_set_State[0] |= 0xc;
2352 }
2353 
2354 inline
2356 {
2357 #ifdef _DEBUG
2358  if (!IsSetTest()) {
2359  m_Test = UnassignedString();
2360  }
2361 #endif
2362  m_set_State[0] |= 0x4;
2363  return m_Test;
2364 }
2365 
2366 inline
2368 {
2369  return m_choice;
2370 }
2371 
2372 inline
2374 {
2375  if ( m_choice != index )
2376  ThrowInvalidSelection(index);
2377 }
2378 
2379 inline
2380 void CVariation_Base::C_E_Consequence::Select(E_Choice index, NCBI_NS_NCBI::EResetVariant reset, NCBI_NS_NCBI::CObjectMemoryPool* pool)
2381 {
2382  if ( reset == NCBI_NS_NCBI::eDoResetVariant || m_choice != index ) {
2383  if ( m_choice != e_not_set )
2384  ResetSelection();
2385  DoSelect(index, pool);
2386  }
2387 }
2388 
2389 inline
2391 {
2392  Select(index, reset, 0);
2393 }
2394 
2395 inline
2397 {
2398  return m_choice == e_Unknown;
2399 }
2400 
2401 inline
2403 {
2405 }
2406 
2407 inline
2409 {
2410  return m_choice == e_Splicing;
2411 }
2412 
2413 inline
2415 {
2417 }
2418 
2419 inline
2421 {
2422  return m_choice == e_Note;
2423 }
2424 
2425 inline
2427 {
2429  return *m_string;
2430 }
2431 
2432 inline
2434 {
2436  return *m_string;
2437 }
2438 
2439 inline
2441 {
2442  return m_choice == e_Variation;
2443 }
2444 
2445 inline
2447 {
2448  return m_choice == e_Loss_of_heterozygosity;
2449 }
2450 
2451 inline
2453 {
2454  return ((m_set_State[0] & 0x3) != 0);
2455 }
2456 
2457 inline
2459 {
2460  return IsSetPhase();
2461 }
2462 
2463 inline
2465 {
2466  m_Phase = 0;
2467  m_set_State[0] &= ~0x3;
2468 }
2469 
2470 inline
2472 {
2473  if (!CanGetPhase()) {
2474  ThrowUnassigned(0);
2475  }
2476  return m_Phase;
2477 }
2478 
2479 inline
2481 {
2482  m_Phase = value;
2483  m_set_State[0] |= 0x3;
2484 }
2485 
2486 inline
2488 {
2489 #ifdef _DEBUG
2490  if (!IsSetPhase()) {
2491  memset(&m_Phase,UnassignedByte(),sizeof(m_Phase));
2492  }
2493 #endif
2494  m_set_State[0] |= 0x1;
2495  return m_Phase;
2496 }
2497 
2498 inline
2500 {
2501  return ((m_set_State[0] & 0xc) != 0);
2502 }
2503 
2504 inline
2506 {
2507  return IsSetX_length();
2508 }
2509 
2510 inline
2512 {
2513  m_X_length = 0;
2514  m_set_State[0] &= ~0xc;
2515 }
2516 
2517 inline
2519 {
2520  if (!CanGetX_length()) {
2521  ThrowUnassigned(1);
2522  }
2523  return m_X_length;
2524 }
2525 
2526 inline
2528 {
2529  m_X_length = value;
2530  m_set_State[0] |= 0xc;
2531 }
2532 
2533 inline
2535 {
2536 #ifdef _DEBUG
2537  if (!IsSetX_length()) {
2538  memset(&m_X_length,UnassignedByte(),sizeof(m_X_length));
2539  }
2540 #endif
2541  m_set_State[0] |= 0x4;
2542  return m_X_length;
2543 }
2544 
2545 inline
2547 {
2548  return ((m_set_State[0] & 0x3) != 0);
2549 }
2550 
2551 inline
2553 {
2554  return IsSetDescription();
2555 }
2556 
2557 inline
2559 {
2560  if (!CanGetDescription()) {
2561  ThrowUnassigned(0);
2562  }
2563  return m_Description;
2564 }
2565 
2566 inline
2568 {
2569  m_Description = value;
2570  m_set_State[0] |= 0x3;
2571 }
2572 
2573 inline
2575 {
2576  m_Description = std::forward<CVariation_Base::C_E_Somatic_origin::C_Condition::TDescription>(value);
2577  m_set_State[0] |= 0x3;
2578 }
2579 
2580 inline
2582 {
2583 #ifdef _DEBUG
2584  if (!IsSetDescription()) {
2586  }
2587 #endif
2588  m_set_State[0] |= 0x1;
2589  return m_Description;
2590 }
2591 
2592 inline
2594 {
2595  return ((m_set_State[0] & 0xc) != 0);
2596 }
2597 
2598 inline
2600 {
2601  return true;
2602 }
2603 
2604 inline
2606 {
2607  return m_Object_id;
2608 }
2609 
2610 inline
2612 {
2613  m_set_State[0] |= 0x4;
2614  return m_Object_id;
2615 }
2616 
2617 inline
2619 {
2620  return m_Source.NotEmpty();
2621 }
2622 
2623 inline
2625 {
2626  return IsSetSource();
2627 }
2628 
2629 inline
2631 {
2632  if (!CanGetSource()) {
2633  ThrowUnassigned(0);
2634  }
2635  return (*m_Source);
2636 }
2637 
2638 inline
2640 {
2641  return m_Condition.NotEmpty();
2642 }
2643 
2644 inline
2646 {
2647  return IsSetCondition();
2648 }
2649 
2650 inline
2652 {
2653  if (!CanGetCondition()) {
2654  ThrowUnassigned(1);
2655  }
2656  return (*m_Condition);
2657 }
2658 
2659 inline
2661 {
2662  return m_Id.NotEmpty();
2663 }
2664 
2665 inline
2667 {
2668  return IsSetId();
2669 }
2670 
2671 inline
2673 {
2674  if (!CanGetId()) {
2675  ThrowUnassigned(0);
2676  }
2677  return (*m_Id);
2678 }
2679 
2680 inline
2682 {
2683  return m_Parent_id.NotEmpty();
2684 }
2685 
2686 inline
2688 {
2689  return IsSetParent_id();
2690 }
2691 
2692 inline
2694 {
2695  if (!CanGetParent_id()) {
2696  ThrowUnassigned(1);
2697  }
2698  return (*m_Parent_id);
2699 }
2700 
2701 inline
2703 {
2704  return ((m_set_State[0] & 0x30) != 0);
2705 }
2706 
2707 inline
2709 {
2710  return true;
2711 }
2712 
2713 inline
2715 {
2716  return m_Sample_id;
2717 }
2718 
2719 inline
2721 {
2722  m_set_State[0] |= 0x10;
2723  return m_Sample_id;
2724 }
2725 
2726 inline
2728 {
2729  return ((m_set_State[0] & 0xc0) != 0);
2730 }
2731 
2732 inline
2734 {
2735  return true;
2736 }
2737 
2738 inline
2740 {
2741  return m_Other_ids;
2742 }
2743 
2744 inline
2746 {
2747  m_set_State[0] |= 0x40;
2748  return m_Other_ids;
2749 }
2750 
2751 inline
2753 {
2754  return ((m_set_State[0] & 0x300) != 0);
2755 }
2756 
2757 inline
2759 {
2760  return IsSetName();
2761 }
2762 
2763 inline
2765 {
2766  if (!CanGetName()) {
2767  ThrowUnassigned(4);
2768  }
2769  return m_Name;
2770 }
2771 
2772 inline
2774 {
2775  m_Name = value;
2776  m_set_State[0] |= 0x300;
2777 }
2778 
2779 inline
2781 {
2782  m_Name = std::forward<CVariation_Base::TName>(value);
2783  m_set_State[0] |= 0x300;
2784 }
2785 
2786 inline
2788 {
2789 #ifdef _DEBUG
2790  if (!IsSetName()) {
2792  }
2793 #endif
2794  m_set_State[0] |= 0x100;
2795  return m_Name;
2796 }
2797 
2798 inline
2800 {
2801  return ((m_set_State[0] & 0xc00) != 0);
2802 }
2803 
2804 inline
2806 {
2807  return true;
2808 }
2809 
2810 inline
2812 {
2813  return m_Synonyms;
2814 }
2815 
2816 inline
2818 {
2819  m_set_State[0] |= 0x400;
2820  return m_Synonyms;
2821 }
2822 
2823 inline
2825 {
2826  return ((m_set_State[0] & 0x3000) != 0);
2827 }
2828 
2829 inline
2831 {
2832  return IsSetDescription();
2833 }
2834 
2835 inline
2837 {
2838  if (!CanGetDescription()) {
2839  ThrowUnassigned(6);
2840  }
2841  return m_Description;
2842 }
2843 
2844 inline
2846 {
2847  m_Description = value;
2848  m_set_State[0] |= 0x3000;
2849 }
2850 
2851 inline
2853 {
2854  m_Description = std::forward<CVariation_Base::TDescription>(value);
2855  m_set_State[0] |= 0x3000;
2856 }
2857 
2858 inline
2860 {
2861 #ifdef _DEBUG
2862  if (!IsSetDescription()) {
2864  }
2865 #endif
2866  m_set_State[0] |= 0x1000;
2867  return m_Description;
2868 }
2869 
2870 inline
2872 {
2873  return ((m_set_State[0] & 0xc000) != 0);
2874 }
2875 
2876 inline
2878 {
2879  return true;
2880 }
2881 
2882 inline
2884 {
2885  return m_Placements;
2886 }
2887 
2888 inline
2890 {
2891  m_set_State[0] |= 0x4000;
2892  return m_Placements;
2893 }
2894 
2895 inline
2897 {
2898  return ((m_set_State[0] & 0x30000) != 0);
2899 }
2900 
2901 inline
2903 {
2904  return true;
2905 }
2906 
2907 inline
2909 {
2910  return m_Phenotype;
2911 }
2912 
2913 inline
2915 {
2916  m_set_State[0] |= 0x10000;
2917  return m_Phenotype;
2918 }
2919 
2920 inline
2922 {
2923  return m_Method.NotEmpty();
2924 }
2925 
2926 inline
2928 {
2929  return IsSetMethod();
2930 }
2931 
2932 inline
2934 {
2935  if (!CanGetMethod()) {
2936  ThrowUnassigned(9);
2937  }
2938  return (*m_Method);
2939 }
2940 
2941 inline
2943 {
2944  return ((m_set_State[0] & 0x300000) != 0);
2945 }
2946 
2947 inline
2949 {
2950  return true;
2951 }
2952 
2953 inline
2955 {
2956  return m_Population_data;
2957 }
2958 
2959 inline
2961 {
2962  m_set_State[0] |= 0x100000;
2963  return m_Population_data;
2964 }
2965 
2966 inline
2968 {
2969  return m_Variant_prop.NotEmpty();
2970 }
2971 
2972 inline
2974 {
2975  return IsSetVariant_prop();
2976 }
2977 
2978 inline
2980 {
2981  if (!CanGetVariant_prop()) {
2982  ThrowUnassigned(11);
2983  }
2984  return (*m_Variant_prop);
2985 }
2986 
2987 inline
2989 {
2990  return m_Pub.NotEmpty();
2991 }
2992 
2993 inline
2995 {
2996  return IsSetPub();
2997 }
2998 
2999 inline
3001 {
3002  if (!CanGetPub()) {
3003  ThrowUnassigned(12);
3004  }
3005  return (*m_Pub);
3006 }
3007 
3008 inline
3010 {
3011  return m_Clinical_test.NotEmpty();
3012 }
3013 
3014 inline
3016 {
3017  return IsSetClinical_test();
3018 }
3019 
3020 inline
3022 {
3023  if (!CanGetClinical_test()) {
3024  ThrowUnassigned(13);
3025  }
3026  return (*m_Clinical_test);
3027 }
3028 
3029 inline
3031 {
3032  return m_Data.NotEmpty();
3033 }
3034 
3035 inline
3037 {
3038  return true;
3039 }
3040 
3041 inline
3043 {
3044  if ( !m_Data ) {
3045  const_cast<CVariation_Base*>(this)->ResetData();
3046  }
3047  return (*m_Data);
3048 }
3049 
3050 inline
3052 {
3053  if ( !m_Data ) {
3054  ResetData();
3055  }
3056  return (*m_Data);
3057 }
3058 
3059 inline
3061 {
3062  return ((m_set_State[0] & 0xc0000000) != 0);
3063 }
3064 
3065 inline
3067 {
3068  return true;
3069 }
3070 
3071 inline
3073 {
3074  return m_Consequence;
3075 }
3076 
3077 inline
3079 {
3080  m_set_State[0] |= 0x40000000;
3081  return m_Consequence;
3082 }
3083 
3084 inline
3086 {
3087  return m_Frameshift.NotEmpty();
3088 }
3089 
3090 inline
3092 {
3093  return IsSetFrameshift();
3094 }
3095 
3096 inline
3098 {
3099  if (!CanGetFrameshift()) {
3100  ThrowUnassigned(16);
3101  }
3102  return (*m_Frameshift);
3103 }
3104 
3105 inline
3107 {
3108  return ((m_set_State[1] & 0xc) != 0);
3109 }
3110 
3111 inline
3113 {
3114  return true;
3115 }
3116 
3117 inline
3119 {
3120  return m_Ext;
3121 }
3122 
3123 inline
3125 {
3126  m_set_State[1] |= 0x4;
3127  return m_Ext;
3128 }
3129 
3130 inline
3132 {
3133  return ((m_set_State[1] & 0x30) != 0);
3134 }
3135 
3136 inline
3138 {
3139  return true;
3140 }
3141 
3142 inline
3144 {
3145  return m_Somatic_origin;
3146 }
3147 
3148 inline
3150 {
3151  m_set_State[1] |= 0x10;
3152  return m_Somatic_origin;
3153 }
3154 
3155 inline
3157 {
3158  return ((m_set_State[1] & 0xc0) != 0);
3159 }
3160 
3161 inline
3163 {
3164  return true;
3165 }
3166 
3167 inline
3169 {
3170  return m_Exceptions;
3171 }
3172 
3173 inline
3175 {
3176  m_set_State[1] |= 0x40;
3177  return m_Exceptions;
3178 }
3179 
3180 inline
3182 {
3183  return ((m_set_State[1] & 0x300) != 0);
3184 }
3185 
3186 inline
3188 {
3189  return true;
3190 }
3191 
3192 inline
3194 {
3195  return m_So_terms;
3196 }
3197 
3198 inline
3200 {
3201  m_set_State[1] |= 0x100;
3202  return m_So_terms;
3203 }
3204 
3205 ///////////////////////////////////////////////////////////
3206 ////////////////// end of inline methods //////////////////
3207 ///////////////////////////////////////////////////////////
3208 
3209 
3210 
3211 
3212 
3213 END_objects_SCOPE // namespace ncbi::objects::
3214 
3216 
3217 
3218 #endif // OBJECTS_VARIATION_VARIATION_BASE_HPP
Definition: Dbtag.hpp:53
CPhenotype –.
Definition: Phenotype.hpp:66
CPopulation_data –.
CRef –.
Definition: ncbiobj.hpp:618
Base class for all serializable objects.
Definition: serialbase.hpp:150
CVariantPlacement –.
CVariationException –.
CVariationMethod –.
Set of related Variations.
Definition: Variation_.hpp:127
condition related to this origin's type
Definition: Variation_.hpp:999
Frameshift-related info.
Definition: Variation_.hpp:861
CVariation_Base –.
Definition: Variation_.hpp:91
CVariation_inst –.
static char UnassignedByte(void)
Definition: serialbase.hpp:181
void ThrowUnassigned(TMemberIndex index) const
EResetVariant
Definition: serialbase.hpp:76
#define ENUM_METHOD_NAME(EnumName)
Definition: serialbase.hpp:994
static string UnassignedString(void)
Definition: serialbase.hpp:175
@ eDoResetVariant
Definition: serialbase.hpp:77
@ eDoNotResetVariant
Definition: serialbase.hpp:78
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
bool NotEmpty(void) const THROWS_NONE
Check if CRef is not empty – pointing to an object and has a non-null value.
Definition: ncbiobj.hpp:726
uint32_t Uint4
4-byte (32-bit) unsigned integer
Definition: ncbitype.h:103
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define NCBI_VARIATION_EXPORT
Definition: ncbi_export.h:873
bool CanGetVariant_prop(void) const
Check if it is safe to call GetVariant_prop method.
bool CanGetCondition(void) const
Check if it is safe to call GetCondition method.
bool CanGetMethod(void) const
Check if it is safe to call GetMethod method.
C_Frameshift & operator=(const C_Frameshift &)
bool IsSetName(void) const
names and synonyms some variants have well-known canonical names and possible accepted synonyms Check...
bool CanGetReference(void) const
Check if it is safe to call GetReference method.
CRef< TId > m_Id
C_Loss_of_heterozygosity(const C_Loss_of_heterozygosity &)
void ResetSelection(void)
Reset the selection (set it to e_not_set).
Definition: Variation_.cpp:133
C_E_Consequence(const C_E_Consequence &)
const TSo_terms & GetSo_terms(void) const
Get the So_terms member data.
Tparent::CMemberIndex< E_memberIndex, 3 > TmemberIndex
Definition: Variation_.hpp:566
C_Loss_of_heterozygosity TLoss_of_heterozygosity
Definition: Variation_.hpp:730
bool IsSetOther_ids(void) const
Check if a value has been assigned to Other_ids data member.
TSomatic_origin & SetSomatic_origin(void)
Assign a value to Somatic_origin data member.
bool IsUnknown(void) const
Check if variant Unknown is selected.
bool IsComplex(void) const
Check if variant Complex is selected.
list< CRef< CVariantPlacement > > TPlacements
bool IsNote(void) const
Check if variant Note is selected.
Tparent::CMemberIndex< E_memberIndex, 3 > TmemberIndex
Definition: Variation_.hpp:882
CRef< TFrameshift > m_Frameshift
C_Data & operator=(const C_Data &)
void Select(E_Choice index, EResetVariant reset, CObjectMemoryPool *pool)
Select the requested variant if needed, allocating CObject variants from memory pool.
list< CRef< C_E_Consequence > > m_Consequence
bool CanGetTest(void) const
Check if it is safe to call GetTest method.
bool IsSetPhenotype(void) const
phenotype Check if a value has been assigned to Phenotype data member.
bool IsSetFrameshift(void) const
Check if a value has been assigned to Frameshift data member.
E_ChoiceStopper
Maximum+1 value of the choice variant enumerator.
Definition: Variation_.hpp:676
void Select(E_Choice index, EResetVariant reset, CObjectMemoryPool *pool)
Select the requested variant if needed, allocating CObject variants from memory pool.
TObject_id & SetObject_id(void)
Assign a value to Object_id data member.
bool CanGetOther_ids(void) const
Check if it is safe to call GetOther_ids method.
bool CanGetFrameshift(void) const
Check if it is safe to call GetFrameshift method.
const TPopulation_data & GetPopulation_data(void) const
Get the Population_data member data.
bool CanGetPopulation_data(void) const
Check if it is safe to call GetPopulation_data method.
list< CRef< CVariation > > TVariations
Definition: Variation_.hpp:158
CVariation_inst TInstance
Definition: Variation_.hpp:360
bool CanGetType(void) const
Check if it is safe to call GetType method.
TExt & SetExt(void)
Assign a value to Ext data member.
NCBI_NS_NCBI::CSerialObject * m_object
Definition: Variation_.hpp:519
bool IsVariation(void) const
Check if variant Variation is selected.
bool CanGetData(void) const
Check if it is safe to call GetData method.
bool IsSetPlacements(void) const
where this beast is seen note that this is a set of locations, and there are no restrictions to the c...
const TClinical_test & GetClinical_test(void) const
Get the Clinical_test member data.
Tparent::CMemberIndex< E_memberIndex, 3 > TmemberIndex
TExceptions & SetExceptions(void)
Assign a value to Exceptions data member.
bool IsLoss_of_heterozygosity(void) const
Check if variant Loss_of_heterozygosity is selected.
C_Frameshift(const C_Frameshift &)
const TName & GetName(void) const
Get the Name member data.
bool IsSplicing(void) const
Check if variant Splicing is selected.
bool CanGetPlacements(void) const
Check if it is safe to call GetPlacements method.
const TExceptions & GetExceptions(void) const
Get the Exceptions member data.
TTest & SetTest(void)
Assign a value to Test data member.
list< CRef< CDbtag > > m_Other_ids
bool IsUnknown(void) const
Check if variant Unknown is selected.
bool CanGetSo_terms(void) const
Check if it is safe to call GetSo_terms method.
bool CanGetSomatic_origin(void) const
Check if it is safe to call GetSomatic_origin method.
void ResetX_length(void)
Reset X_length data member.
C_Loss_of_heterozygosity & operator=(const C_Loss_of_heterozygosity &)
TSample_id & SetSample_id(void)
Assign a value to Sample_id data member.
bool IsSetPub(void) const
publication support; same type as in seq-feat Check if a value has been assigned to Pub data member.
TX_length GetX_length(void) const
Get the X_length member data.
list< CRef< CPopulation_data > > m_Population_data
TReference & SetReference(void)
Assign a value to Reference data member.
list< string > m_Synonyms
CRef< TPub > m_Pub
bool IsInstance(void) const
Check if variant Instance is selected.
const TSample_id & GetSample_id(void) const
Get the Sample_id member data.
TPhase & SetPhase(void)
Assign a value to Phase data member.
bool CanGetDescription(void) const
Check if it is safe to call GetDescription method.
bool CanGetName(void) const
Check if it is safe to call GetName method.
TName & SetName(void)
Assign a value to Name data member.
CRef< TData > m_Data
bool CanGetId(void) const
Check if it is safe to call GetId method.
bool IsSetSource(void) const
description of the somatic origin itself Check if a value has been assigned to Source data member.
const TExt & GetExt(void) const
Get the Ext member data.
TSo_terms & SetSo_terms(void)
Assign a value to So_terms data member.
list< string > TSynonyms
list< CRef< CObject_id > > m_Sample_id
list< CRef< CPhenotype > > m_Phenotype
list< CRef< CPhenotype > > TPhenotype
list< CRef< CVariantPlacement > > m_Placements
bool CanGetPhase(void) const
Check if it is safe to call GetPhase method.
const TPhenotype & GetPhenotype(void) const
Get the Phenotype member data.
CRef< TClinical_test > m_Clinical_test
const TCondition & GetCondition(void) const
Get the Condition member data.
bool CanGetExceptions(void) const
Check if it is safe to call GetExceptions method.
CVariation_Base(const CVariation_Base &)
CVariationMethod TMethod
bool IsSetId(void) const
ids (i.e., SNP rsid / ssid, dbVar nsv/nssv) expected values include 'dbSNP|rs12334',...
const TNote & GetNote(void) const
Get the variant data.
CVariantProperties TVariant_prop
NCBI_NS_NCBI::CUnionBuffer< NCBI_NS_STD::string > m_string
Definition: Variation_.hpp:518
CRef< TVariant_prop > m_Variant_prop
Tparent::CMemberIndex< E_memberIndex, 4 > TmemberIndex
Definition: Variation_.hpp:168
const TOther_ids & GetOther_ids(void) const
Get the Other_ids member data.
bool IsSetParent_id(void) const
Check if a value has been assigned to Parent_id data member.
const TDescription & GetDescription(void) const
Get the Description member data.
const TSomatic_origin & GetSomatic_origin(void) const
Get the Somatic_origin member data.
bool IsSetDescription(void) const
Check if a value has been assigned to Description data member.
bool IsSetVariations(void) const
Check if a value has been assigned to Variations data member.
list< int > TSo_terms
void SetUnknown(void)
Select the variant.
bool CanGetParent_id(void) const
Check if it is safe to call GetParent_id method.
bool CanGetVariations(void) const
Check if it is safe to call GetVariations method.
list< CRef< CObject_id > > TSample_id
C_Frameshift TFrameshift
void Select(E_Choice index, EResetVariant reset=eDoResetVariant)
Select the requested variant if needed.
NCBI_NS_NCBI::CUnionBuffer< NCBI_NS_STD::string > m_string
Definition: Variation_.hpp:849
const TNote & GetNote(void) const
Get the variant data.
const TPub & GetPub(void) const
Get the Pub member data.
const TVariations & GetVariations(void) const
Get the Variations member data.
list< int > m_So_terms
bool CanGetDescription(void) const
Check if it is safe to call GetDescription method.
bool IsSetReference(void) const
In germline comparison, it will be reference genome assembly (default) or reference/normal population...
bool IsSetExceptions(void) const
Check if a value has been assigned to Exceptions data member.
const TFrameshift & GetFrameshift(void) const
Get the Frameshift member data.
bool IsSetType(void) const
Check if a value has been assigned to Type data member.
E_ChoiceStopper
Maximum+1 value of the choice variant enumerator.
Definition: Variation_.hpp:307
bool IsSetData(void) const
Check if a value has been assigned to Data data member.
const TName & GetName(void) const
Get the Name member data.
bool IsSetName(void) const
Check if a value has been assigned to Name data member.
list< CRef< CPopulation_data > > TPopulation_data
bool CanGetX_length(void) const
Check if it is safe to call GetX_length method.
void SetUniparental_disomy(void)
Select the variant.
bool IsNote(void) const
Check if variant Note is selected.
bool CanGetClinical_test(void) const
Check if it is safe to call GetClinical_test method.
TType & SetType(void)
Assign a value to Type data member.
const TMethod & GetMethod(void) const
Get the Method member data.
const TPlacements & GetPlacements(void) const
Get the Placements member data.
bool IsSetVariant_prop(void) const
variant properties bit fields Check if a value has been assigned to Variant_prop data member.
bool IsSetSample_id(void) const
Check if a value has been assigned to Sample_id data member.
C_Set & operator=(const C_Set &)
list< CRef< CUser_object > > TExt
bool CanGetPub(void) const
Check if it is safe to call GetPub method.
bool IsSetSo_terms(void) const
Check if a value has been assigned to So_terms data member.
const TDescription & GetDescription(void) const
Get the Description member data.
C_E_Somatic_origin(const C_E_Somatic_origin &)
Tparent::CMemberIndex< E_memberIndex, 22 > TmemberIndex
const TSynonyms & GetSynonyms(void) const
Get the Synonyms member data.
list< CRef< CVariation > > m_Variations
Definition: Variation_.hpp:291
TPhenotype & SetPhenotype(void)
Assign a value to Phenotype data member.
void SetComplex(void)
Select the variant.
TPlacements & SetPlacements(void)
Assign a value to Placements data member.
bool CanGetName(void) const
Check if it is safe to call GetName method.
CVariation_Base & operator=(const CVariation_Base &)
const TSource & GetSource(void) const
Get the Source member data.
const TTest & GetTest(void) const
Get the Test member data.
bool CanGetSource(void) const
Check if it is safe to call GetSource method.
bool IsSeq(void) const
Check if variant Seq is selected.
bool IsSetPhase(void) const
Check if a value has been assigned to Phase data member.
void ResetType(void)
Reset Type data member.
const TData & GetData(void) const
Get the Data member data.
C_E_Consequence C_E
TData & SetData(void)
Assign a value to Data data member.
bool CanGetSynonyms(void) const
Check if it is safe to call GetSynonyms method.
void ResetData(void)
Reset Data data member.
Definition: Variation_.cpp:764
NCBI_NS_NCBI::CUnionBuffer< NCBI_NS_STD::string > m_string
Definition: Variation_.hpp:518
void SetSplicing(void)
Select the variant.
bool IsSetCondition(void) const
Check if a value has been assigned to Condition data member.
E_Choice Which(void) const
Which variant is currently selected.
TName & SetName(void)
Assign a value to Name data member.
bool IsSetSynonyms(void) const
Check if a value has been assigned to Synonyms data member.
Uint4 m_set_State[2]
bool IsSetExt(void) const
Additional undescribed extensions Check if a value has been assigned to Ext data member.
void Select(E_Choice index, EResetVariant reset=eDoResetVariant)
Select the requested variant if needed.
NCBI_NS_NCBI::CSerialObject * m_object
Definition: Variation_.hpp:850
bool IsSetMethod(void) const
sequencing / acuisition method Check if a value has been assigned to Method data member.
const TObject_id & GetObject_id(void) const
Get the Object_id member data.
const TParent_id & GetParent_id(void) const
Get the Parent_id member data.
bool CanGetConsequence(void) const
Check if it is safe to call GetConsequence method.
bool IsSetX_length(void) const
Check if a value has been assigned to X_length data member.
TNote & SetNote(void)
Select the variant.
bool CanGetSample_id(void) const
Check if it is safe to call GetSample_id method.
list< CRef< CDbtag > > TOther_ids
list< CRef< CVariationException > > m_Exceptions
C_E_Consequence & operator=(const C_E_Consequence &)
TVariations & SetVariations(void)
Assign a value to Variations data member.
bool IsSetSomatic_origin(void) const
Check if a value has been assigned to Somatic_origin data member.
const TId & GetId(void) const
Get the Id member data.
E_Choice Which(void) const
Which variant is currently selected.
TDescription & SetDescription(void)
Assign a value to Description data member.
TX_length & SetX_length(void)
Assign a value to X_length data member.
C_Condition & operator=(const C_Condition &)
list< CRef< C_E_Somatic_origin > > TSomatic_origin
list< CRef< C_E_Somatic_origin > > m_Somatic_origin
TOther_ids & SetOther_ids(void)
Assign a value to Other_ids data member.
CSerialObject Tparent
Definition: Variation_.hpp:92
const TVariant_prop & GetVariant_prop(void) const
Get the Variant_prop member data.
bool IsSetPopulation_data(void) const
Note about SNP representation and pretinent fields: allele-frequency, population, quality-codes: The ...
void CheckSelected(E_Choice index) const
Verify selection, throw exception if it differs from the expected.
bool IsSetObject_id(void) const
reference to BioTerm / other descriptive database Check if a value has been assigned to Object_id dat...
void ResetPhase(void)
Reset Phase data member.
void CheckSelected(E_Choice index) const
Verify selection, throw exception if it differs from the expected.
C_E_Somatic_origin & operator=(const C_E_Somatic_origin &)
bool IsSet(void) const
Check if variant Set is selected.
TPopulation_data & SetPopulation_data(void)
Assign a value to Population_data data member.
TNote & SetNote(void)
Select the variant.
bool IsSetClinical_test(void) const
References to external Check if a value has been assigned to Clinical_test data member.
void SetUnknown(void)
Select the variant.
const TConsequence & GetConsequence(void) const
Get the Consequence member data.
const TReference & GetReference(void) const
Get the Reference member data.
TDescription & SetDescription(void)
Assign a value to Description data member.
CRef< TMethod > m_Method
void DoSelect(E_Choice index, CObjectMemoryPool *pool=0)
Definition: Variation_.cpp:150
bool IsSetTest(void) const
Name of the testing subject type or the testing tissue.
bool IsUniparental_disomy(void) const
Check if variant Uniparental_disomy is selected.
TSynonyms & SetSynonyms(void)
Assign a value to Synonyms data member.
TType GetType(void) const
Get the Type member data.
list< CRef< CVariationException > > TExceptions
bool CanGetObject_id(void) const
Check if it is safe to call GetObject_id method.
void ThrowInvalidSelection(E_Choice index) const
Throw 'InvalidSelection' exception.
Definition: Variation_.cpp:187
bool IsSetDescription(void) const
tag for comment and descriptions Check if a value has been assigned to Description data member.
E_Choice
Choice variants.
Definition: Variation_.hpp:296
bool CanGetPhenotype(void) const
Check if it is safe to call GetPhenotype method.
TConsequence & SetConsequence(void)
Assign a value to Consequence data member.
C_Data(const C_Data &)
list< CRef< CUser_object > > m_Ext
list< CRef< C_E_Consequence > > TConsequence
bool CanGetExt(void) const
Check if it is safe to call GetExt method.
bool IsSetConsequence(void) const
Check if a value has been assigned to Consequence data member.
TPhase GetPhase(void) const
Get the Phase member data.
Tparent::CMemberIndex< E_memberIndex, 3 > TmemberIndex
CRef< TParent_id > m_Parent_id
@ e_Splicing
some effect on splicing
Definition: Variation_.hpp:670
@ e_Variation
Describe resulting variation in the product, e.g. missense, nonsense, silent, neutral,...
Definition: Variation_.hpp:672
@ e_Complex
variant is a complex and undescribed change at the location This type of variant is known to occur in...
Definition: Variation_.hpp:303
@ e_Instance
actual sequence-edit at feat.location
Definition: Variation_.hpp:301
@ e_not_set
No variant selected.
Definition: Variation_.hpp:297
@ e_Seq
Sequnece as it exists post-alteration.
Definition: Variation_.hpp:304
@ e_not_set
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
static void SetTest()
Definition: stress32.cpp:16843
Modified on Sat Apr 13 11:45:07 2024 by modify_doxy.py rev. 669887