NCBI C++ ToolKit
fix_structured_vouchers.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: fix_structured_vouchers.cpp 42189 2019-01-09 22:13:08Z asztalos $
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  * Authors: Igor Filippov
27  */
28 
29 #include <ncbi_pch.hpp>
32 
35 
36 
38 {
39  return x_GetCommand(tse, "Fix Structured Vouchers");
40 }
41 
43 {
44  bool modified = false;
45  EDIT_EACH_ORGMOD_ON_BIOSOURCE(orgmod, biosource)
46  {
47  if ((*orgmod)->IsSetSubtype() && (*orgmod)->IsSetSubname() &&
48  ((*orgmod)->GetSubtype() == COrgMod::eSubtype_specimen_voucher
49  || (*orgmod)->GetSubtype() == COrgMod::eSubtype_culture_collection
50  || (*orgmod)->GetSubtype() == COrgMod::eSubtype_bio_material))
51  {
52  string voucher_type;
53  if ((*orgmod)->GetSubtype() == COrgMod::eSubtype_specimen_voucher)
54  voucher_type = "s";
55  else if ((*orgmod)->GetSubtype() == COrgMod::eSubtype_culture_collection)
56  voucher_type = "c";
57  else if ((*orgmod)->GetSubtype() == COrgMod::eSubtype_bio_material)
58  voucher_type = "b";
59  string val = (*orgmod)->GetSubname();
60  string old_val = val;
61  COrgMod::FixStructuredVoucher(val, voucher_type);
62  if (old_val != val)
63  {
64  (*orgmod)->SetSubname(val);
65  modified = true;
66  }
67  }
68  }
69  return modified;
70 }
71 
virtual bool x_ApplyToBioSource(objects::CBioSource &biosource)
CRef< CCmdComposite > GetCommand(objects::CSeq_entry_Handle tse)
static bool FixStructuredVoucher(string &val, const string &voucher_type)
Definition: OrgMod.cpp:662
CSeq_entry_Handle –.
CRef< CCmdComposite > x_GetCommand(objects::CSeq_entry_Handle tse, const string &title)
USING_SCOPE(objects)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
@ eSubtype_specimen_voucher
Definition: OrgMod_.hpp:106
@ eSubtype_bio_material
Definition: OrgMod_.hpp:119
@ eSubtype_culture_collection
Definition: OrgMod_.hpp:118
#define EDIT_EACH_ORGMOD_ON_BIOSOURCE(Itr, Var)
Modified on Wed Apr 17 13:10:41 2024 by modify_doxy.py rev. 669887