49 bool modified =
false;
53 biosource.
SetOrg().ResetCommon();
64 biosource.
SetOrg(*new_org);
65 string new_name = biosource.
SetOrg().GetTaxname();
66 if (!new_name.empty() && new_name != name)
93 vector<string> submit;
98 vector<CRef<COrg_ref>> request_list;
99 for (
auto&& it : submit)
104 request_list.push_back(new_org);
111 if (reply->IsSetReply() )
113 const auto& ans = reply->GetReply();
114 for (
auto&& it : ans)
117 it->GetData().IsSetOrg() &&
118 it->GetData().GetOrg().GetTaxId() >= 0)
120 org->
Assign(it->GetData().GetOrg());
129 vector<string> words;
131 if (words.size() == 1)
133 vector<string> subwords;
136 for (
int i = 0;
i < subwords.size() - 1;
i++)
138 string new_name = subwords[0];
139 for (
int j = 1; j <=
i; j++)
140 new_name +=
"_" + subwords[j];
141 new_name +=
" " + subwords[
i+1];
142 for (
int j =
i+2; j < subwords.size(); j++)
143 new_name +=
"_" + subwords[j];
144 submit.push_back(new_name);
148 if (words.size() == 2)
152 string new_name = words[0] +
" " + words[1] +
" " + words[2] +
" " + words[3];
153 submit.push_back(new_name);
157 string new_name = words[0] +
" " + words[1] +
" " + words[2];
158 submit.push_back(new_name);
160 if (words.size() >= 2)
162 string new_name = words[0] +
" " + words[1];
163 submit.push_back(new_name);
User-defined methods of the data storage class.
const string & GetTaxname(void) const
bool IsSetTaxname(void) const
static void s_PermuteTaxname(const string &name, vector< string > &submit)
static void s_GetNameFromTaxonServer(CRef< objects::COrg_ref > org)
CRef< CCmdComposite > GetCommand(objects::CSeq_entry_Handle tse)
virtual bool x_ApplyToBioSource(objects::CBioSource &biosource)
static bool s_HasTaxId(const objects::CBioSource &)
virtual CRef< CTaxon3_reply > SendOrgRefList(const vector< CRef< COrg_ref > > &list, COrg_ref::fOrgref_parts result_parts=COrg_ref::eOrgref_default, fT3reply_parts t3result_parts=eT3reply_default)
CRef< CCmdComposite > x_GetCommand(objects::CSeq_entry_Handle tse, const string &title)
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static bool Equal(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2, ECase use_case=eCase)
Test for equality of a substring with another string.
@ fSplit_Tokenize
All delimiters are merged and trimmed, to get non-empty tokens only.
@ eNocase
Case insensitive compare.
void SetSubtype(TSubtype value)
Assign a value to Subtype data member.
bool IsSetOrg(void) const
Check if a value has been assigned to Org data member.
const TOrg & GetOrg(void) const
Get the Org member data.
void SetOrg(TOrg &value)
Assign a value to Org data member.
void SetName(const TName &value)
Assign a value to Name data member.
TSubtype & SetSubtype(void)
Assign a value to Subtype data member.
const TTaxname & GetTaxname(void) const
Get the Taxname member data.
void SetTaxname(const TTaxname &value)
Assign a value to Taxname data member.
#define EDIT_EACH_ORGMOD_ON_ORGNAME(Itr, Var)
#define ERASE_ORGMOD_ON_ORGNAME(Itr, Var)
ERASE_ORGMOD_ON_ORGNAME.