78 "Unable to find User-field " +
str);
101 list<string>::iterator iter = toks.begin();
103 for (++iter; iter != toks.end(); ++iter) {
104 if ( !sub.empty() ) {
124 if ( !sub.empty() ) {
152 const string& obj_subtype,
175 field_ref = *field_iter;
182 field_ref->
SetLabel().SetStr(toks.front());
183 SetData().push_back(field_ref);
243 #ifdef NCBI_STRICT_GI
295 const vector<string>&
value)
307 const vector<int>&
value)
319 const vector<double>&
value)
358 static const char*
s_expres =
"experimental_results";
359 static const char*
s_exp =
"experiment";
435 return GetData().front()->GetData().GetObject();
479 obj.
GetData().front()->GetData().GetObject();
498 if (
tag &&
tag->GetData().IsStr()) {
499 if ( !
label.empty() ) {
506 if ( !
label.empty() ) {
520 return "[experiment]";
634 auto it = sc_ObjectTypeMap.find(
label.c_str());
635 if (it == sc_ObjectTypeMap.end()) {
649 for (
auto it = sc_ObjectTypeMap.begin(); it != sc_ObjectTypeMap.end(); it++) {
650 if (it->second == obj_type) {
711 CUser_object::TData::iterator it =
SetData().begin();
712 while (it !=
SetData().end()) {
777 CUser_object::TData::iterator it =
SetData().begin();
778 while (it !=
SetData().end()) {
885 method->
SetValue(
"ExtendedSeqEntryCleanup");
907 while (it !=
SetData().end()) {
908 bool do_remove =
false;
909 if ((*it)->IsSetLabel()) {
910 if ((*it)->GetLabel().IsStr()) {
911 if (
NStr::Equal((*it)->GetLabel().GetStr(), field_name, ecase)) {
914 }
else if ((*it)->GetLabel().IsId()) {
916 if (
NStr::Equal((*it)->GetLabel().GetStr(), field_name, ecase)) {
942 string url =
"https://submit.ncbi.nlm.nih.gov/ft/byid/" + upload_id;
990 for (
auto it = sc_RefGeneTrackingStatusMap.begin(); it != sc_RefGeneTrackingStatusMap.end(); it++) {
991 if (it->second == status) {
1014 auto it = sc_RefGeneTrackingStatusMap.find(field->
GetData().
GetStr().c_str());
1015 if (it != sc_RefGeneTrackingStatusMap.end()) {
1132 top->
SetData().SetFields().push_back(uf);
1138 top->
SetData().SetFields().push_back(uf);
1144 top->
SetData().SetFields().push_back(uf);
1150 top->
SetData().SetFields().push_back(uf);
1156 top->
SetData().SetFields().push_back(uf);
1162 top->
SetData().SetFields().push_back(uf);
1181 string accession, acc_name, comment;
1185 if (it->IsSetLabel() && it->GetLabel().IsStr() && it->IsSetData()) {
1187 const string&
label = it->GetLabel().GetStr();
1189 if (it->GetData().IsStr()) {
1190 accession = it->GetData().GetStr();
1195 if (it->GetData().IsStr()) {
1196 acc_name = it->GetData().GetStr();
1201 if (it->GetData().IsStr()) {
1202 comment = it->GetData().GetStr();
1209 if (it->GetData().IsInt()) {
1210 from = it->GetData().GetInt();
1215 if (it->GetData().IsInt()) {
1216 to = it->GetData().GetInt();
1228 if (rval->IsEmpty()) {
1244 field.
SetData().SetFields().push_back(ident);
1275 for (
auto it : acc_list) {
1278 field.
SetData().SetFields().push_back(acc);
1298 rval.push_back(acc);
static const TObjectTypePair k_object_type_map[]
CStaticArrayMap< const char *, CUser_object::ERefGeneTrackingStatus, PNocase_CStr > TRefGeneTrackingStatusMap
static const char * kFileTrack
const string kRGTAComment
const string kRefGeneTrackingGenerated
static const char * kAutoDefOptions
static const char * kRefGeneTracking
static const char * s_expres
static const char * kUnreviewed
static const char * kStructuredComment
static const char * s_count
static const char * kOrigIdAltSpell
SStaticPair< const char *, CUser_object::ERefGeneTrackingStatus > TRefGeneTrackingStatusPair
static const char * s_ncbi
static const char * kUnverified
const string kRGTAAccession
static const char * kValidationSuppression
const string kRefGeneTrackingCollaborator
const string kRefGeneTrackingCollaboratorURL
SStaticPair< const char *, CUser_object::EObjectType > TObjectTypePair
static const char * s_exp
static const char * kOriginalId
DEFINE_STATIC_ARRAY_MAP(TObjectTypeMap, sc_ObjectTypeMap, k_object_type_map)
const string kRefGeneTrackingStatus
static const char * kDBLink
const string kRefGeneTrackingIdenticalTo
static string s_GetUserObjectContent(const CUser_object &obj)
static const char * kNcbiCleanup
CStaticArrayMap< const char *, CUser_object::EObjectType, PNocase_CStr > TObjectTypeMap
const string kRefGeneTrackingAssembly
SAFE_CONST_STATIC_STRING(kUnverifiedOrganism, "Organism")
const string kRefGeneTrackingGenomicSource
static string s_GetUserObjectType(const CUser_object &obj)
static const TRefGeneTrackingStatusPair k_refgene_tracking_status_map[]
static const char * s_sage
static const char * s_tag
class CStaticArrayMap<> provides access to a static array in much the same way as CStaticArraySet<>,...
CRef< CUser_field > SetFieldRef(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase)
Return a field reference representing the tokenized key, or a NULL reference if the key cannot be cre...
CUser_field & SetString(const char *value)
CUser_field & SetGi(TGi gi)
CUser_field & SetValue(int value)
set a data field to a given value Int8 and TGi values can be stored into 'str' field if the value doe...
CConstRef< CUser_field > GetFieldRef(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Return a field reference representing the tokenized key, or a NULL reference if the key doesn't exist...
CUser_field & SetBool(bool value)
static CRef< CRefGeneTrackingAccession > MakeAccessionFromUserField(const CUser_field &field)
CRef< CUser_field > MakeAccessionField() const
const string & GetRefGeneTrackingCollaborator() const
void SetObjectType(EObjectType obj_type)
void ResetRefGeneTrackingAssembly()
void ResetRefGeneTrackingStatus()
CConstRef< CUser_field > GetFieldRef(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
void RemoveUnreviewedUnannotated()
void RemoveUnverifiedFeature()
void AddUnverifiedOrganism()
void SetRefGeneTrackingCollaboratorURL(const string &collaborator_url)
ECategory GetCategory(void) const
accessors: classify a given user object
void AddUnreviewedUnannotated()
bool x_IsUnverifiedType(const string &val) const
const string & GetRefGeneTrackingCollaboratorURL() const
void AddUnverifiedContaminant()
@ eRefGeneTrackingStatus_INFERRED
@ eRefGeneTrackingStatus_VALIDATED
@ eRefGeneTrackingStatus_WGS
@ eRefGeneTrackingStatus_PREDICTED
@ eRefGeneTrackingStatus_Error
@ eRefGeneTrackingStatus_NotSet
@ eRefGeneTrackingStatus_PROVISIONAL
@ eRefGeneTrackingStatus_PIPELINE
@ eRefGeneTrackingStatus_REVIEWED
void ResetRefGeneTrackingCollaboratorURL()
CUser_object & SetCategory(ECategory category)
format a user object as a given type.
void SetRefGeneTrackingAssembly(const TRefGeneTrackingAccessions &acc_list)
void ResetRefGeneTrackingGenerated()
void RemoveUnverifiedMisassembled()
ECategory
enums for implicit typing of user objects
void x_AddUnverifiedType(const string &val)
void ResetRefGeneTrackingGenomicSource()
void SetRefGeneTrackingStatus(ERefGeneTrackingStatus status)
void RemoveUnverifiedContaminant()
void SetRefGeneTrackingCollaborator(const string &collaborator)
void SetRefGeneTrackingIdenticalTo(const CRefGeneTrackingAccession &accession)
const string & x_GetRefGeneTrackingField(const string &field_name) const
bool RemoveNamedField(const string &field_name, NStr::ECase ecase=NStr::eCase)
void SetRefGeneTrackingGenomicSource(const string &genomic_source)
@ eObjectType_RefGeneTracking
@ eObjectType_StructuredComment
@ eObjectType_AutodefOptions
@ eObjectType_ValidationSuppression
bool IsUnverifiedMisassembled() const
void GetLabel(string *label, ELabelContent mode=eContent) const
Append a label to label.
void SetRefGeneTrackingGenerated(bool val=true)
bool HasField(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Verify that a named field exists.
void SetFileTrackUploadId(const string &upload_id)
vector< CConstRef< CRefGeneTrackingAccession > > TRefGeneTrackingAccessions
const string & GetRefGeneTrackingGenomicSource() const
void x_RemoveUnreviewedType(const string &val)
CUser_object & AddField(const string &label, const string &value, EParseField parse=eParse_String)
add a data field to the user object that holds a given value
~CUser_object(void)
destructor
bool IsUnverifiedOrganism() const
bool GetRefGeneTrackingGenerated() const
void ResetRefGeneTrackingCollaborator()
ERefGeneTrackingStatus GetRefGeneTrackingStatus() const
bool x_IsUnreviewedType(const string &val) const
ELabelContent
enum controlling what to return for a label this mirrors a request inside of feature::GetLabel()
EExperiment
sub-category experiment
EExperiment GetExperimentType(void) const
sub-category accessors:
bool IsUnverifiedContaminant() const
TRefGeneTrackingAccessions GetRefGeneTrackingAssembly() const
void x_RemoveUnverifiedType(const string &val)
void SetFileTrackURL(const string &url)
void x_AddUnreviewedType(const string &val)
bool IsUnverifiedFeature() const
void UpdateNcbiCleanup(int version)
void RemoveUnverifiedOrganism()
CUser_object(void)
constructor
void AddUnverifiedMisassembled()
const CUser_object & GetExperiment(void) const
bool IsUnreviewedUnannotated() const
CConstRef< CRefGeneTrackingAccession > GetRefGeneTrackingIdenticalTo() const
CUser_field & SetField(const string &str, const string &delim=".", const string &obj_subtype=kEmptyStr, NStr::ECase use_case=NStr::eCase)
Access a named field in this user object.
CRef< CUser_field > SetFieldRef(const string &str, const string &delim=".", const string &obj_subtype=kEmptyStr, NStr::ECase use_case=NStr::eCase)
EParseField
how to interpret the value in the AddField() conversion functions below.
const CUser_field & GetField(const string &str, const string &delim=".", NStr::ECase use_case=NStr::eCase) const
Access a named field in this user object.
void ResetRefGeneTrackingIdenticalTo()
CUser_object & SetExperiment(EExperiment category)
format a user object as a given type.
void x_SetRefGeneTrackingField(const string &field_name, const string &value)
EObjectType GetObjectType() const
void AddUnverifiedFeature()
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
const TSeqPos kInvalidSeqPos
Define special value for invalid sequence position.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
bool Empty(void) const THROWS_NONE
Check if CConstRef is empty – not pointing to any object which means having a null value.
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
int64_t Int8
8-byte (64-bit) signed integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
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 IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static string Join(const TContainer &arr, const CTempString &delim)
Join strings using the specified delimiter.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
ECase
Which type of string comparison.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
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.
int Year(void) const
Get year.
int Day(void) const
Get day.
int Month(void) const
Get month.
@ eCurrent
Use current time. See also CCurrentTime.
static const char label[]
const TStr & GetStr(void) const
Get the variant data.
bool IsSetData(void) const
the object itself Check if a value has been assigned to Data data member.
bool IsStr(void) const
Check if variant Str is selected.
bool IsSetType(void) const
type of object within class Check if a value has been assigned to Type data member.
const TData & GetData(void) const
Get the Data member data.
TClass & SetClass(void)
Assign a value to Class data member.
const TFields & GetFields(void) const
Get the variant data.
TBool GetBool(void) const
Get the variant data.
bool IsFields(void) const
Check if variant Fields is selected.
bool IsInt(void) const
Check if variant Int is selected.
bool IsSetClass(void) const
endeavor which designed this object Check if a value has been assigned to Class data member.
const TClass & GetClass(void) const
Get the Class member data.
bool IsStr(void) const
Check if variant Str is selected.
TType & SetType(void)
Assign a value to Type data member.
bool IsSetLabel(void) const
field label Check if a value has been assigned to Label data member.
TData & SetData(void)
Assign a value to Data data member.
const TStr & GetStr(void) const
Get the variant data.
void SetLabel(TLabel &value)
Assign a value to Label data member.
TInt GetInt(void) const
Get the variant data.
TStr & SetStr(void)
Select the variant.
virtual void Reset(void)
Reset the whole object.
const TData & GetData(void) const
Get the Data member data.
const TObject & GetObject(void) const
Get the variant data.
void ResetType(void)
Reset Type data member.
void ResetData(void)
Reset Data data member.
void SetData(TData &value)
Assign a value to Data data member.
const TLabel & GetLabel(void) const
Get the Label member data.
const TType & GetType(void) const
Get the Type member data.
bool IsSetData(void) const
Check if a value has been assigned to Data data member.
bool IsBool(void) const
Check if variant Bool is selected.
void ResetData(void)
Reset Data data member.
vector< CRef< CUser_field > > TData
E_Choice Which(void) const
Which variant is currently selected.
@ e_Object
for using other definitions
constexpr bool empty(list< Ts... >) noexcept
const struct ncbi::grid::netcache::search::fields::SIZE size
double f(double x_, const double &y_)
static const char * str(char *buf, int n)
Template structure SStaticPair is simlified replacement of STL pair<> Main reason of introducing this...