48 const string& message,
86 string msg =
"Molinfo is not a valid set descriptor. Skipping.";
96 string descName = descriptor.
IsSource() ?
99 string msg = descName +
100 "descriptors can only reside on a bioseq or a nuc-prot set. Skipping.";
115 if (descriptors.empty()) {
121 string msg =
"Cannot apply descriptors to set of unknown class";
126 const auto setClass = bioseqSet.
GetClass();
127 auto src_it = descriptors.begin();
128 auto& dest = bioseqSet.
SetDescr().Set();
130 while (src_it != descriptors.end()) {
131 auto pDescriptor = *src_it;
136 dest.push_back(*src_it);
146 if (seqEntry.
IsSet()) {
150 if (seqEntry.
IsSeq()) {
151 for (
auto pDescriptor : descriptors) {
152 seqEntry.
SetDescr().Set().emplace_back(pDescriptor);
static CLineError * Create(EProblem eProblem, EDiagSev eSeverity, const std::string &strSeqId, unsigned int uLine, const std::string &strFeatureName=string(""), const std::string &strQualifierName=string(""), const std::string &strQualifierValue=string(""), const std::string &strErrorMessage=string(""), const TVecOfLines &vecOfOtherLines=TVecOfLines())
Use this because the constructor is protected.
void SetDescr(CSeq_descr &value)
virtual bool PutError(const ILineError &)=0
Store error in the container, and return true if error was stored fine, and return false if the calle...
@ eProblem_GeneralParsingError
Include a standard set of the NCBI C++ Toolkit most basic headers.
static void sReportError(ILineErrorListener *pEC, EDiagSev severity, const string &message, ILineError::EProblem problemType=ILineError::eProblem_GeneralParsingError)
static bool s_IsDBLink(const CSeqdesc &descriptor)
void g_ApplyDescriptors(const list< CRef< CSeqdesc >> &descriptors, CSeq_entry &seqEntry, ILineErrorListener *pEC)
static void sApplyDescriptors(const list< CRef< CSeqdesc >> &descriptors, CBioseq_set &bioseqSet, ILineErrorListener *pEC)
static bool sReportInvalidDescriptor(const CBioseq_set::EClass setClass, const CSeqdesc &descriptor, ILineErrorListener *pEC)
EDiagSev
Severity level for the posted diagnostics.
@ eDiag_Warning
Warning message.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
bool IsSetClass(void) const
Check if a value has been assigned to Class data member.
TSet & SetSet(void)
Select the variant.
TClass GetClass(void) const
Get the Class member data.
bool IsSeq(void) const
Check if variant Seq is selected.
bool IsSet(void) const
Check if variant Set is selected.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
@ eClass_nuc_prot
nuc acid and coded proteins
const TUser & GetUser(void) const
Get the variant data.
bool IsMolinfo(void) const
Check if variant Molinfo is selected.
bool IsSource(void) const
Check if variant Source is selected.
bool IsUser(void) const
Check if variant User is selected.