79 new_feat->
Assign(feat_it->GetOriginalFeature());
93 new_desc->
Assign(orig_desc);
111 bool modified =
false;
113 CPub& pub = **pub_iter;
115 switch (pub.
Which()) {
173 const string *
str = 0;
174 switch ((*item)->Which()) {
176 str = &(*item)->GetName();
180 str = &(*item)->GetTsub();
184 str = &(*item)->GetTrans();
188 str = &(*item)->GetJta();
192 str = &(*item)->GetIso_jta();
196 str = &(*item)->GetMl_jta();
200 str = &(*item)->GetCoden();
204 str = &(*item)->GetIssn();
208 str = &(*item)->GetAbr();
212 str = &(*item)->GetIsbn();
227 switch ((*item)->Which()) {
229 (*item)->SetName(
value);
233 (*item)->SetTsub(
value);
237 (*item)->SetTrans(
value);
241 (*item)->SetJta(
value);
245 (*item)->SetIso_jta(
value);
249 (*item)->SetMl_jta(
value);
253 (*item)->SetCoden(
value);
257 (*item)->SetIssn(
value);
261 (*item)->SetAbr(
value);
265 (*item)->SetIsbn(
value);
276 string fixed_title = macro::CMacroFunction_FixPubCaps::s_FixCapitalizationInTitle(title,
true,
m_tse);
277 if (fixed_title != title) {
287 bool modified =
false;
308 vector<TEntrezId> uids;
309 uids.push_back(pmid);
314 ecli.
Fetch(
"pubmed", uids, asnPubMedEntry,
"asn.1");
318 LOG_POST(
Error <<
"CReloadPublications::LookUpByPmid(): error fetching ID " << pmid <<
": " << e.
GetMsg());
322 if (pubmed_entry->CanGetMedent() && pubmed_entry->GetMedent().CanGetCit())
324 CCit_art& article = pubmed_entry->SetMedent().SetCit();
332 bool modified =
false;
335 CPub& pub = **pub_iter;
336 switch (pub.
Which()) {
347 CPub& pub = **pub_iter;
348 switch (pub.
Which()) {
363 bool modified =
false;
375 CPub& pub = **pub_iter;
377 switch ( pub.
Which() ) {
410 if ( !authors )
continue;
437 for (string::const_iterator p =
orig.begin(); p !=
orig.end(); ++p)
439 bool need_dot =
false;
443 string::const_iterator
n = p;
445 if (
n !=
orig.end() && *
n ==
'.')
458 bool modified =
false;
471 middle_init = middle_init.substr(first_init.length());
474 string init = first_init;
487 bool changed =
false;
495 string::size_type first_good_char_pos =
str.find_first_not_of(
" ;,");
496 if( first_good_char_pos == string::npos ) {
500 }
else if( first_good_char_pos > 0 ) {
501 copy(
str.begin() + first_good_char_pos,
str.end(),
str.begin() );
502 str.resize(
str.length() - first_good_char_pos );
509 string::size_type last_good_char_pos =
str.find_last_not_of(
" ;,");
510 _ASSERT( last_good_char_pos != string::npos );
511 if( last_good_char_pos == (
str.length() - 1) ) {
514 }
else if(
str[last_good_char_pos+1] ==
';' ) {
520 string::size_type last_ampersand_pos =
str.find_last_of(
"& ,", last_good_char_pos );
521 if( last_ampersand_pos == string::npos ) {
523 str.resize( last_good_char_pos + 1 );
526 switch(
str[last_ampersand_pos] ) {
529 if( (last_good_char_pos + 2) ==
str.length() ) {
534 str.resize( last_good_char_pos + 2 );
541 str.resize( last_good_char_pos + 1 );
549 str.resize( last_good_char_pos + 1 );
560 if (initials.find(
'.') ==
NPOS) {
565 #define EXTRACTSUFFIXFROMINITIALS( OLD, NEW ) \
566 if( NStr::EndsWith(initials, OLD) ) { \
567 initials.resize( initials.length() - strlen(OLD) ); \
568 SET_FIELD(name, Suffix, NEW); \
579 #undef EXTRACTSUFFIXFROMINITIALS
583 #define TRUNCATE_SPACES(o, x) \
584 if ((o).IsSet##x()) { \
585 NStr::TruncateSpacesInPlace((o).Set##x()); \
586 if (NStr::IsBlank((o).Get##x())) { \
591 #define CLEAN_STRING_MEMBER(o, x) \
592 if ((o).IsSet##x()) { \
593 s_CleanVisString((o).Set##x()); \
594 if (NStr::IsBlank((o).Get##x())) { \
616 bool modified =
false;
621 bool fix_initials =
true;
627 original_name->Assign( name );
631 bool upcaseinits =
false;
636 string first_initials;
660 string::size_type next_pos = 0;
661 while ( next_pos <
first.length() ) {
663 next_pos =
first.find_first_not_of(
" -", next_pos);
664 if( string::npos == next_pos )
break;
667 first_initials +=
first[next_pos];
670 next_pos =
first.find_first_of(
" -", next_pos);
671 if( string::npos == next_pos )
break;
673 if(
first[next_pos] ==
'-' ) {
674 first_initials +=
'-';
690 string::size_type initials_first_good_idx = 0;
691 for( ; initials_first_good_idx < initials.length() &&
692 initials_first_good_idx < first_initials.length() &&
693 initials[initials_first_good_idx] == first_initials[initials_first_good_idx] ;
694 ++initials_first_good_idx )
699 if( initials_first_good_idx > 0 ) {
700 initials.erase( 0, initials_first_good_idx );
704 SET_FIELD(name, Initials, first_initials );
720 if( fix_initials && ! first_initials.empty() ) {
731 string::const_iterator initials_iter = initials.begin();
733 for( ; initials_iter != initials.end(); ++initials_iter ) {
734 const char ch = *initials_iter;
748 if( (initials_iter + 1) != initials.end()) {
749 const char next_char = *(initials_iter + 1);
758 if( initials != new_initials ) {
759 initials.swap(new_initials);
760 new_initials.clear();
819 if( ! initials.empty() &&
islower(initials[0]) ) {
820 initials[0] =
toupper(initials[0]);
847 SET_FIELD(name, Suffix, initials.substr( initials.length() - 3 ) );
848 initials.resize( initials.length() - 3 );
853 if( ! original_name->Equals(name) ) {
868 bool modified =
false;
883 new_desc->
Assign(*seqdesc);
891 else if (sub_block) {
904 bool modified =
false;
906 if (author_names.
IsStd()) {
907 for (
auto&& auth_it : author_names.
SetStd()) {
909 modified |= macro::CMacroFunction_AuthorFix::s_ReverseAuthorNames(pid.
SetName());
921 bool modified =
false;
923 if (author_names.
IsStd()) {
924 for (
auto&& auth_it : author_names.
SetStd()) {
927 modified |= macro::CMacroFunction_AuthorFix::s_TruncateMiddleInitials(pid.
SetName());
939 return (
orig != name);
947 bool modified =
false;
949 if (author_names.
IsStd()) {
950 for (
auto&& auth_it : author_names.
SetStd()) {
972 bool modified =
false;
974 if (author_names.
IsStd()) {
975 for (
auto&& auth_it : author_names.
SetStd()) {
992 bool modified =
false;
993 auto &author_names = authors.
SetNames();
994 if (author_names.IsStd()) {
995 auto auth_it = author_names.SetStd().begin();
996 while (auth_it != author_names.SetStd().end()) {
999 auth_it = author_names.SetStd().erase(auth_it);
1015 bool modified =
false;
1017 if (author_names.
IsStd()) {
1018 for (
auto&& auth_it : author_names.
SetStd()) {
1049 bool modified =
false;
1051 if (author_names.
IsStd()) {
1052 for (
auto&& auth_it : author_names.
SetStd()) {
1074 bool modified =
false;
1081 switch (author_names.
Which()) {
1083 for (
auto&& auth_it : author_names.
SetStd()) {
1084 if (auth_it->IsSetAffil()) {
1099 bool modified =
false;
1108 if (!affil.
IsStd()) {
1112 bool modified =
false;
1113 auto& std = affil.
SetStd();
1114 if (std.IsSetCountry() && !
NStr::IsBlank(std.GetCountry())) {
1140 if (!affil.
IsStd()) {
1144 bool modified =
false;
1145 auto& std = affil.
SetStd();
1148 string affil = std.GetAffil();
1159 if (affil != std.GetAffil())
1162 std.SetAffil(affil);
1168 string div = std.GetDiv();
1179 if (div != std.GetDiv())
1188 string city = std.GetCity();
1198 if (city != std.GetCity())
1207 string street = std.GetStreet();
1217 if (street != std.GetStreet())
1220 std.SetStreet(street);
1226 string country = std.GetCountry();
1235 if (country != std.GetCountry())
1238 std.SetCountry(country);
1246 string state = std.GetSub();
1260 string sub = std.GetSub();
1267 if (sub != std.GetSub())
1296 new_feat->
Assign(feat_it->GetOriginalFeature());
1299 const auto& pubs = edited_pub.
GetPub().
Get();
1315 if ((*it)->IsPub()) {
1318 new_desc->
Assign(orig_desc);
1321 const auto& pubs = edited_pub.
GetPub().
Get();
1345 bool modified =
false;
1346 auto& pubs = pubdesc.
SetPub().Set();
1347 for (CPub_set::TPub::iterator pub_iter = pubs.begin(); pub_iter != pubs.end(); )
1349 CPub& pub = **pub_iter;
1350 bool to_delete =
false;
1351 switch( pub.
Which() ) {
1355 if (
gen.IsSetCit() && !
gen.GetCit().empty() ) {
1356 const string& cit =
gen.GetCit();
1448 pub_iter = pubs.erase(pub_iter);
1461 bool modified =
false;
1462 auto& pubs = pubdesc.
SetPub().Set();
1463 for (CPub_set::TPub::iterator pub_iter = pubs.begin(); pub_iter != pubs.end(); )
1465 CPub& pub = **pub_iter;
1466 bool to_delete =
false;
1467 switch( pub.
Which() ) {
1543 pub_iter = pubs.erase(pub_iter);
1554 bool modified =
false;
1555 auto& pubs = pubdesc.
SetPub().Set();
1556 for (CPub_set::TPub::iterator pub_iter = pubs.begin(); pub_iter != pubs.end(); )
1558 CPub& pub = **pub_iter;
1559 bool to_delete =
false;
1560 switch( pub.
Which() ) {
1564 if (
gen.IsSetCit() && !
gen.GetCit().empty() ) {
1565 const string& cit =
gen.GetCit();
1663 pub_iter = pubs.erase(pub_iter);
1683 bool modified =
false;
1685 const CPub& pub = **pub_iter;
1698 bool modified =
false;
1699 auto& pubs = pubdesc.
SetPub().Set();
1700 for (
auto pub_iter = pubs.begin(); pub_iter != pubs.end(); )
1702 if ((*pub_iter)->IsSub())
1708 pub_iter = pubs.erase(pub_iter);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
CSeq_entry_Handle GetSeqEntryForSeqdesc(CRef< CScope > scope, const CSeqdesc &seq_desc)
@Affil.hpp User-defined methods of the data storage class.
@Auth_list.hpp User-defined methods of the data storage class.
void AddCommand(IEditCommand &command)
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
void SetConstraint(const string &input)
~CConvertAuthorToConsortiumWhereConstraint()
void Fetch(const string &db, const vector< objects::CSeq_id_Handle > &uids, CNcbiOstream &ostr, const string &retmode="xml")
void SetMaxReturn(int ret_max)
virtual bool x_ApplyToCAffil(objects::CAffil &affil)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
virtual bool x_ApplyToCAffil(objects::CAffil &affil)
bool x_FixTitle(string &title)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
static string s_GetTitle(const objects::CTitle &title)
static void s_SetTitle(objects::CTitle &title, const string &value)
virtual bool x_ApplyToCAffil(objects::CAffil &affil)
@Name_std.hpp User-defined methods of the data storage class.
bool GetLabel(string *label, ELabelType type=eContent, TLabelFlags flags=0, ELabelVersion version=eLabel_DefaultVersion) const
Concatenate a label for this pub to label.
@Pubdesc.hpp User-defined methods of the data storage class.
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
void LookUpByPmid(objects::CPub &pub, TEntrezId pmid, bool &modified)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
map< string, int > m_collisions
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
virtual void x_ApplyToSeqAndFeat(CCmdComposite *composite)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
bool ApplyToPubdesc(CConstRef< CObject > obj, objects::CSeq_entry_Handle tse, CCmdComposite &composite)
namespace ncbi::objects::
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
@ eLabel_V1
Traditional GetLabel semantics, modeled on the C Toolkit's PubLabelUnique.
@ fLabel_Unique
Append a unique tag [V1].
virtual bool x_ApplyToCAffil(objects::CAffil &affil)=0
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)
static string s_CapitalizeInitial(const string &orig)
static bool s_FixInitials(objects::CPerson_id &pid)
void x_ApplyToPubequiv(objects::CPub_equiv &pe, bool &modified)
static void s_FixEtAl(objects::CName_std &name)
virtual bool x_ApplyToCAuth(objects::CAuth_list &authors)=0
static void s_ExtractSuffixFromInitials(objects::CName_std &name)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)
virtual void x_ApplyToSeqSubmit(CCmdComposite *composite)
static bool s_FixInitialsNew(objects::CPerson_id &pid)
CConstRef< objects::CSubmit_block > m_SubmitBlock
void x_ApplyToDescriptors(const objects::CSeq_entry &se, CCmdComposite *composite)
objects::CSeq_entry_Handle m_tse
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)=0
virtual void x_ApplyToSeqSubmit(CCmdComposite *composite)
CRef< CCmdComposite > GetCommand(objects::CSeq_entry_Handle tse, CConstRef< objects::CSeq_submit > submit=CConstRef< objects::CSeq_submit >(nullptr))
void x_ApplyToSeqAndFeat(CCmdComposite *composite)
void x_ApplyToDescriptors(const objects::CSeq_entry &se, CCmdComposite *composite)
objects::CSeq_entry_Handle m_tse
virtual void x_ApplyToSeqAndFeat(CCmdComposite *composite)
CRef< CCmdComposite > GetCommand(objects::CSeq_entry_Handle tse)
virtual bool x_ApplyToPubdesc(objects::CPubdesc &pubdesc)=0
void FixAbbreviationsInElement(string &result, bool fix_end_of_sentence=true)
CChangeUnindexedObjectCommand< objects::CSubmit_block > CChangeSubmitBlockCommand
static void DLIST_NAME() init(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)
static auto & FixOrdinalNumbers
static auto & FixCapitalizationInElement
static auto & CapitalizeAfterApostrophe
static auto & FixUSAAbbreviationInAffil
static auto & FixKnownAbbreviationsInElement
static auto & FixShortWordsInElement
static auto & FindReplaceString_CountryFixes
static auto & FixAffiliationShortWordsInElement
static auto & GetStateAbbreviation
static auto & InsertMissingSpacesAfterNo
static auto & FixStateAbbreviationsInAffil
static auto & InsertMissingSpacesAfterCommas
SStrictId_Entrez::TId TEntrezId
TEntrezId type for entrez ids which require the same strictness as TGi.
#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.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
const string & GetMsg(void) const
Get message string.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
#define MSerial_AsnText
I/O stream manipulators –.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
TObjectType * GetPointerOrNull(void) const THROWS_NONE
Get pointer value.
CTempString GetMatch(CTempString str, size_t offset=0, size_t idx=0, TMatch flags=fMatch_default, bool noreturn=false)
Get matching pattern and subpatterns.
int NumFound() const
Get number of patterns + subpatterns.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)
Check if a string is blank (has no text).
static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate spaces in a string (in-place)
static bool EqualCase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-sensitive equality of a substring with another string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
static string & ToUpper(string &str)
Convert string to upper case – string& version.
const char *const kEmptyCStr
Empty "C" string (points to a '\0').
@ eTrunc_Begin
Truncate leading spaces only.
@ eNocase
Case insensitive compare.
static const char label[]
const TDescr & GetDescr(void) const
Get the Descr member data.
void SetBook(TBook &value)
Assign a value to Book data member.
bool IsSetDescr(void) const
description of changes for public view Check if a value has been assigned to Descr data member.
TStd & SetStd(void)
Select the variant.
const TCit & GetCit(void) const
Get the Cit member data.
bool IsSetAffil(void) const
author affiliation Check if a value has been assigned to Affil data member.
bool IsSetAuthors(void) const
Check if a value has been assigned to Authors data member.
bool IsSetAuthors(void) const
authors (ANSI requires) Check if a value has been assigned to Authors data member.
void SetTitle(TTitle &value)
Assign a value to Title data member.
const TJournal & GetJournal(void) const
Get the variant data.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
bool IsSetPrepub(void) const
Check if a value has been assigned to Prepub data member.
const TFrom & GetFrom(void) const
Get the From member data.
bool CanGetImp(void) const
Check if it is safe to call GetImp method.
bool IsSetTitle(void) const
title of paper (ANSI requires) Check if a value has been assigned to Title data member.
const TTitle & GetTitle(void) const
Get the Title member data.
void SetAffil(TAffil &value)
Assign a value to Affil data member.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
bool IsSetImp(void) const
Check if a value has been assigned to Imp data member.
TPrepub GetPrepub(void) const
Get the Prepub member data.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
list< CRef< C_E > > Tdata
const TTitle & GetTitle(void) const
Get the Title member data.
void SetCit(TCit &value)
Assign a value to Cit data member.
void SetDescr(const TDescr &value)
Assign a value to Descr data member.
bool IsSetNames(void) const
Check if a value has been assigned to Names data member.
bool IsSetTitle(void) const
eg.
void SetNames(TNames &value)
Assign a value to Names data member.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
const TCountry & GetCountry(void) const
Get the Country member data.
void SetTitle(const TTitle &value)
Assign a value to Title data member.
bool IsSetTitle(void) const
Check if a value has been assigned to Title data member.
bool IsBook(void) const
Check if variant Book is selected.
const TImp & GetImp(void) const
Get the Imp member data.
void SetTitle(const TTitle &value)
Assign a value to Title data member.
bool IsJournal(void) const
Check if variant Journal is selected.
bool IsStd(void) const
Check if variant Std is selected.
const TImp & GetImp(void) const
Get the Imp member data.
const TTitle & GetTitle(void) const
Get the Title member data.
const Tdata & Get(void) const
Get the member data.
void SetAuthors(TAuthors &value)
Assign a value to Authors data member.
TStd & SetStd(void)
Select the variant.
E_Choice Which(void) const
Which variant is currently selected.
bool IsSetImp(void) const
Check if a value has been assigned to Imp data member.
Tdata & Set(void)
Assign a value to data member.
bool IsStd(void) const
Check if variant Std is selected.
const TBook & GetBook(void) const
Get the variant data.
@ e_Ml_jta
specifically MEDLINE jta J
@ e_Trans
Title, Translated AJB.
@ e_Abr
Title, Abbreviated B.
@ e_Jta
Title, Abbreviated J.
@ e_Tsub
Title, Subordinate A B.
@ e_Iso_jta
specifically ISO jta J
@ e_Name
Title, Anal,Coll,Mono AJB.
@ ePrepub_in_press
accepted, not published
bool IsConsortium(void) const
Check if variant Consortium is selected.
void SetInitials(const TInitials &value)
Assign a value to Initials data member.
bool IsSetSuffix(void) const
Jr, Sr, III Check if a value has been assigned to Suffix data member.
const TInitials & GetInitials(void) const
Get the Initials member data.
bool IsName(void) const
Check if variant Name is selected.
virtual void Reset(void)
Reset the whole object.
void SetLast(const TLast &value)
Assign a value to Last data member.
void SetFirst(const TFirst &value)
Assign a value to First data member.
bool IsSetInitials(void) const
first + middle initials Check if a value has been assigned to Initials data member.
TConsortium & SetConsortium(void)
Select the variant.
bool IsSetLast(void) const
Check if a value has been assigned to Last data member.
const TSuffix & GetSuffix(void) const
Get the Suffix member data.
void Select(E_Choice index, EResetVariant reset=eDoResetVariant)
Select the requested variant if needed.
TName & SetName(void)
Select the variant.
const TFirst & GetFirst(void) const
Get the First member data.
const TLast & GetLast(void) const
Get the Last member data.
const TName & GetName(void) const
Get the variant data.
bool IsSetFirst(void) const
Check if a value has been assigned to First data member.
void ResetSuffix(void)
Reset Suffix data member.
@ e_Consortium
consortium name
TProc & SetProc(void)
Select the variant.
const TMan & GetMan(void) const
Get the variant data.
TBook & SetBook(void)
Select the variant.
const TPmid & GetPmid(void) const
Get the variant data.
const TArticle & GetArticle(void) const
Get the variant data.
const TJournal & GetJournal(void) const
Get the variant data.
const TSub & GetSub(void) const
Get the variant data.
const TPatent & GetPatent(void) const
Get the variant data.
const Tdata & Get(void) const
Get the member data.
TEquiv & SetEquiv(void)
Select the variant.
E_Choice Which(void) const
Which variant is currently selected.
TMan & SetMan(void)
Select the variant.
TSub & SetSub(void)
Select the variant.
TGen & SetGen(void)
Select the variant.
const TGen & GetGen(void) const
Get the variant data.
TPatent & SetPatent(void)
Select the variant.
TArticle & SetArticle(void)
Select the variant.
const TBook & GetBook(void) const
Get the variant data.
@ e_Gen
general or generic unparsed
@ e_Proc
proceedings of a meeting
@ e_Equiv
to cite a variety of ways
@ e_Man
manuscript, thesis, or letter
void SetData(TData &value)
Assign a value to Data data member.
@ e_Pub
publication applies to this seq
const TSet & GetSet(void) const
Get the variant data.
bool IsSet(void) const
Check if variant Set is selected.
void SetPub(TPub &value)
Assign a value to Pub data member.
TPub & SetPub(void)
Select the variant.
bool IsSetPub(void) const
the citation(s) Check if a value has been assigned to Pub data member.
const TPub & GetPub(void) const
Get the Pub member data.
void SetCit(TCit &value)
Assign a value to Cit data member.
const TSub & GetSub(void) const
Get the Sub member data.
bool IsSetSub(void) const
Check if a value has been assigned to Sub data member.
where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
static const char * suffix[]
#define EDIT_EACH_PUB_ON_PUBEQUIV(Itr, Var)
#define FOR_EACH_PUB_ON_PUBDESC(Itr, Var)
FOR_EACH_PUB_ON_PUBDESC EDIT_EACH_PUB_ON_PUBDESC.
#define EDIT_EACH_PUB_ON_PUBDESC(Itr, Var)
static bool s_FixNameCap(string &name, bool bApostrophes)
static bool s_CleanVisString(string &str)
#define TRUNCATE_SPACES(o, x)
#define EXTRACTSUFFIXFROMINITIALS(OLD, NEW)
#define CLEAN_STRING_MEMBER(o, x)
string GetFirstInitial(string input, bool skip_rest)
#define FOR_EACH_SEQENTRY_ON_SEQSET(Itr, Var)
FOR_EACH_SEQENTRY_ON_SEQSET EDIT_EACH_SEQENTRY_ON_SEQSET.
#define FOR_EACH_SEQDESC_ON_SEQENTRY(Itr, Var)
FOR_EACH_SEQDESC_ON_SEQENTRY EDIT_EACH_SEQDESC_ON_SEQENTRY.
#define RESET_FIELD(Var, Fld)
RESET_FIELD base macro.
#define GET_MUTABLE(Var, Fld)
GET_MUTABLE base macro.
#define RAW_FIELD_IS_EMPTY_OR_UNSET(Var, Fld)
RAW_FIELD_IS_EMPTY_OR_UNSET macro.
#define FIELD_IS_SET(Var, Fld)
FIELD_IS_SET base macro.
#define FIELD_EQUALS(Var, Fld, Value)
FIELD_EQUALS base macro.
#define GET_FIELD(Var, Fld)
GET_FIELD base macro.
#define SET_FIELD(Var, Fld, Val)
SET_FIELD base macro.
#define GET_STRING_FLD_OR_BLANK(Var, Fld)
GET_STRING_FLD_OR_BLANK base macro.
static const char * str(char *buf, int n)