NCBI C++ ToolKit
qualifiers.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef OBJTOOLS_FORMAT_ITEMS___QUALIFIERS__HPP
2 #define OBJTOOLS_FORMAT_ITEMS___QUALIFIERS__HPP
3 
4 /* $Id: qualifiers.hpp 82405 2018-05-29 17:40:10Z kans $
5 * ===========================================================================
6 *
7 * PUBLIC DOMAIN NOTICE
8 * National Center for Biotechnology Information
9 *
10 * This software/database is a "United States Government Work" under the
11 * terms of the United States Copyright Act. It was written as part of
12 * the author's official duties as a United States Government employee and
13 * thus cannot be copyrighted. This software/database is freely available
14 * to the public for use. The National Library of Medicine and the U.S.
15 * Government have not placed any restriction on its use or reproduction.
16 *
17 * Although all reasonable efforts have been taken to ensure the accuracy
18 * and reliability of the software and data, the NLM and the U.S.
19 * Government do not and cannot warrant the performance or results that
20 * may be obtained by using this software or data. The NLM and the U.S.
21 * Government disclaim all warranties, express or implied, including
22 * warranties of performance, merchantability or fitness for any particular
23 * purpose.
24 *
25 * Please cite the author in any work or product based on this material.
26 *
27 * ===========================================================================
28 *
29 * Author: Aaron Ucko, Mati Shomrat
30 *
31 * File Description:
32 * new (early 2003) flat-file generator -- qualifier types
33 * (mainly of interest to implementors)
34 *
35 */
36 #include <corelib/ncbistd.hpp>
37 #include <corelib/ncbiobj.hpp>
38 
42 #include <objects/pub/Pub_set.hpp>
52 #include <objects/seq/Seq_inst.hpp>
53 #include <objects/seq/MolInfo.hpp>
56 
57 
60 
61 class CBioseqContext;
62 
63 
64 /////////////////////////////////////////////////////////////////////////////
65 // low-level formatted qualifier
66 
68 {
69 public:
70  enum EStyle {
71  eEmpty, // /name [value ignored]
72  eQuoted, // /name="value"
73  eUnquoted // /name=value
74  };
75  typedef EStyle TStyle;
76 
77  enum FFlags {
78  // This turns off redundancy checks so
79  // we show this qual even if it is redundant with
80  // the others.
81  fFlags_showEvenIfRedund = 1 << 0
82  };
83  typedef int TFlags;
84 
85  // The level of trimming to do for this feature
86  enum ETrim {
87  // *vast* majority use this
89 
90  // a few quals need "junk" like extra periods.
91  // for example, there's a gene allele of "2.." in
92  // DQ533690.1 which needs both periods.
93  eTrim_WhitespaceOnly
94  };
95 
96  CFormatQual(const CTempString& name,
97  const CTempString& value,
98  const CTempString& prefix,
99  const CTempString& suffix,
100  TStyle style = eQuoted,
101  TFlags flags = 0,
102  ETrim trim = eTrim_Normal );
103  CFormatQual(const CTempString& name,
104  const CTempString& value,
105  TStyle style = eQuoted,
106  TFlags flags = 0,
107  ETrim trim = eTrim_Normal );
108 
109  const string& GetName (void) const { return m_Name; }
110  const string& GetValue (void) const { return m_Value; }
111  TStyle GetStyle (void) const { return m_Style; }
112  const string& GetPrefix(void) const { return m_Prefix; }
113  const string& GetSuffix(void) const { return m_Suffix; }
114  TFlags GetFlags (void) const { return m_Flags; }
115  ETrim GetTrim (void) const { return m_Trim; }
116 
117  void SetAddPeriod(bool add = true) { m_AddPeriod = add; }
118  bool GetAddPeriod(void) const { return m_AddPeriod; }
119 
120 private:
121  string m_Name, m_Value, m_Prefix, m_Suffix;
126 };
127 
129 typedef vector<TFlatQual> TFlatQuals;
130 
131 
132 /////////////////////////////////////////////////////////////////////////////
133 // abstract qualifier value
134 
136 {
137 public:
138  enum EFlags {
139  fIsNote = 0x1,
140  fIsSource = 0x2,
141  fAddPeriod = 0x4,
142  fPrependNewline = 0x8
143  };
144  typedef int TFlags; // binary OR of EFlags
145 
146  static const string kSemicolon; // ";"
147  static const string kSemicolonEOL; // ";\n"
148  static const string kComma; // ","
149  static const string kEOL; // "\n" - end of line
150  static const string kSpace; // " "
151 
152  virtual void Format(TFlatQuals& quals, const CTempString& name,
153  CBioseqContext& ctx, TFlags flags = 0) const = 0;
154 
155 protected:
158 
159  IFlatQVal(const string* pfx = &kSpace, const string* sfx = &kEmptyStr)
160  : m_Prefix(pfx), m_Suffix(sfx)
161  { }
165  ETrim trim = CFormatQual::eTrim_Normal ) const {
166  TFlatQual res(new CFormatQual(n, v, *m_Prefix, *m_Suffix, st, flags, trim));
167  q.push_back(res);
168  return res;
169  }
170 
171  mutable const string* m_Prefix;
172  mutable const string* m_Suffix;
173 };
174 
175 
176 /////////////////////////////////////////////////////////////////////////////
177 // qualifiers container
178 
179 template<typename Key>
181 {
182 public:
183  // typedef
186  typedef typename TQualMMap::iterator iterator;
187  typedef typename TQualMMap::size_type size_type;
188 
189  // constructor
190  CQualContainer(void) {}
191 
192  iterator begin(void) { return m_Quals.begin(); }
193  const_iterator begin(void) const { return m_Quals.begin(); }
194  iterator end(void) { return m_Quals.end(); }
195  const_iterator end(void) const { return m_Quals.end(); }
196 
197  void AddQual(const Key& key, const IFlatQVal* value) {
198  typedef typename TQualMMap::value_type TMapPair;
199  m_Quals.insert(TMapPair(key, CConstRef<IFlatQVal>(value)));
200  }
201 
202  bool HasQual(const Key& key) const {
203  return Find(key) != m_Quals.end();
204  }
205  inline
207  return m_Quals.find(key);
208  }
209  inline
210  const_iterator LowerBound(const Key& key) const {
211  return m_Quals.find(key);
212  }
214  iterator next = it;
215  if ( next != end() ) {
216  ++next;
217  m_Quals.erase(it);
218  }
219  return next;
220  }
221  void RemoveQuals(const Key& key) {
222  m_Quals.erase(key);
223  }
224  iterator Find(const Key& key) {
225  return m_Quals.find(key);
226  }
227  const_iterator Find(const Key& key) const {
228  return m_Quals.find(key);
229  }
230  size_type Size() const {
231  return m_Quals.size();
232  }
233 
234 private:
236 };
237 
238 
239 /////////////////////////////////////////////////////////////////////////////
240 // concrete qualifiers
241 
243 {
244 public:
245  CFlatBoolQVal(bool value) : m_Value(value) { }
247  { if (m_Value) { x_AddFQ(q, n, kEmptyStr, CFormatQual::eEmpty); } }
248 private:
249  bool m_Value;
250 };
251 
252 
254 {
255 public:
256  CFlatIntQVal(int value) : m_Value(value) { }
257  void Format(TFlatQuals& q, const CTempString& n, CBioseqContext&, TFlags) const;
258 private:
259  int m_Value;
260 };
261 
262 
263 // potential flags:
264 // tilde mode?
265 // expand SGML entities?
266 // (handle via subclasses?)
268 {
269 public:
273  CFlatStringQVal(const CTempString& value, const string& pfx, const string& sfx,
276  ETrim trim );
277 
278  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
279  TFlags flags) const;
280 
281  const string& GetValue(void) const { return m_Value; }
282  void SetAddPeriod( bool addPeriod = true ) { m_AddPeriod = ( addPeriod ? IFlatQVal::fAddPeriod : 0 ); }
283 
284 protected:
285  mutable string m_Value;
289 };
290 
291 
293 {
294 public:
295  CFlatNumberQVal(const string& value) :
296  CFlatStringQVal(value, CFormatQual::eUnquoted)
297  {}
298 
299  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
300  TFlags flags) const;
301 };
302 
303 
305 {
306 public:
308  {}
309 
310  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
311  TFlags flags) const;
312 };
313 
314 
316 {
317 public:
318  CFlatGeneQVal(const string& value) : CFlatStringQVal(value, CFormatQual::eTrim_WhitespaceOnly)
319  {}
320 
321  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
322  TFlags flags) const;
323 };
324 
325 
327 {
328 public:
330  {}
331 
332  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
333  TFlags flags) const;
334 };
335 
336 
338 {
339 public:
340  typedef list<string> TValue;
341 
342  CFlatStringListQVal(const list<string>& value,
344  : m_Value(value), m_Style(style) { }
345  CFlatStringListQVal(const list<string>::const_iterator& begin,
346  const list<string>::const_iterator& end,
348  : m_Value(begin, end), m_Style(style) { }
349  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
350  TFlags flags) const;
351 
352  const TValue& GetValue(void) const { return m_Value; }
353  TValue& SetValue(void) { return m_Value; }
354 
355 protected:
358 };
359 
360 
362 {
363 public:
365  CFlatStringListQVal(syns)
366  {
367  m_Suffix = &kSemicolon;
368  }
369 
370  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
371  TFlags flags) const;
372 };
373 
375 {
376 public:
378  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
379  TFlags flags) const;
380 
381 private:
383 };
384 
386 {
387 public:
389  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
390  TFlags flags) const;
391 
392 private:
394 };
395 
396 
398 {
399 public:
400  CFlatCodonQVal(unsigned int codon, unsigned char aa, bool is_ascii = true);
401  // CFlatCodonQVal(const string& value); // for imports
402  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
403  TFlags flags) const;
404 
405 private:
406  string m_Codon, m_AA;
407  bool m_Checked;
408 };
409 
410 
412 {
413 public:
415  const string& = "" );
416  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
417  TFlags flags) const;
418 protected:
419  string m_str;
420 };
421 
422 
424 {
425 public:
426  CFlatInferenceQVal( const string& = "" );
427  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
428  TFlags flags) const;
429 
430 protected:
431  string m_str;
432 };
433 
434 
436 {
437 public:
438  CFlatIllegalQVal(const CGb_qual& value) : m_Value(&value) { }
439  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
440  TFlags flags) const;
441 
442 private:
444 };
445 
446 
448 {
449 public:
450  CFlatLabelQVal(const string& value)
451  : CFlatStringQVal(value, CFormatQual::eUnquoted) { }
452  // XXX - should override Format to check syntax
453 };
454 
455 
457 {
458 public:
461 
462  CFlatMolTypeQVal(TBiomol biomol, TMol mol) : m_Biomol(biomol), m_Mol(mol) { }
463  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
464  TFlags flags) const;
465 
466 private:
469 };
470 
471 
473 {
474 public:
476 
477  CFlatSubmitterSeqidQVal(TTech tech) : m_Tech(tech) { }
478  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
479  TFlags flags) const;
480 
481 private:
483 };
484 
485 
487 {
488 public:
490  IFlatQVal(&kSpace, &kSemicolon), m_Value(&value) { }
491 
492  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
493  TFlags flags) const;
494 
495 private:
497 };
498 
499 
501 {
502 public:
504  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
505  TFlags flags) const;
506 
507 private:
509 };
510 
511 
513 {
514 public:
515  CFlatPubSetQVal(const CPub_set& value) : m_Value(&value) { }
516  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
517  TFlags flags) const;
518 
519 private:
521 };
522 
523 
525 {
526 public:
527  CFlatSeqIdQVal(const CSeq_id& value, bool add_gi_prefix = false)
528  : m_Value(&value), m_GiPrefix(add_gi_prefix) { }
529  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
530  TFlags flags) const;
531 
532 private:
535 };
536 
537 
539 {
540 public:
541  CFlatSeqLocQVal(const CSeq_loc& value) : m_Value(&value) { }
543  TFlags) const
544  { x_AddFQ(q, n, CFlatSeqLoc(*m_Value, ctx).GetString()); }
545 
546 private:
548 };
549 
550 
552 {
553 public:
555  IFlatQVal(&kSpace, &kSemicolon), m_Value(&value)
556  { }
557 
558  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
559  TFlags flags) const;
560 
561 private:
563 };
564 
566 {
567 public:
569  const string& fwd_name,
570  const string& fwd_seq,
571  const string& rev_name,
572  const string& rev_seq ) :
573  IFlatQVal( &kSpace, &kSemicolon),
574  m_fwd_name( fwd_name ),
575  m_fwd_seq( fwd_seq ),
576  m_rev_name( rev_name ),
577  m_rev_seq( rev_seq )
578  {
579  NStr::ToLower( m_fwd_seq );
580  NStr::ToLower( m_rev_seq );
581  }
582 
583  void Format(
584  TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx, TFlags flags) const;
585 
586 protected:
587  string m_fwd_name;
588  string m_fwd_seq;
589  string m_rev_name;
590  string m_rev_seq;
591 };
592 
594 {
595 public:
598 
599  CFlatXrefQVal(const TXref& value, const TQuals* quals = 0)
600  : m_Value(value), m_Quals(quals) { }
601  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
602  TFlags flags) const;
603 
604 private:
605  bool x_XrefInGeneXref(const CDbtag& dbtag) const;
606 
609 };
610 
611 
613 {
614 public:
615  CFlatModelEvQVal(const CUser_object& value) : m_Value(&value) { }
616  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
617  TFlags flags) const;
618 
619 private:
621 };
622 
623 
625 {
626 public:
627  CFlatGoQVal(const CUser_field& value) : m_Value(&value) { }
628  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
629  TFlags flags) const;
630 
631  bool Equals( const CFlatGoQVal &rhs ) const;
632 
633  const string & GetTextString(void) const;
634  int GetPubmedId(void) const;
635 
636 private:
638 };
639 
640 
642 {
643 public:
644  CFlatAnticodonQVal(const CSeq_loc& ac, const string& aa) :
645  m_Anticodon(&ac), m_Aa(aa){ }
646  void Format(TFlatQuals& q, const CTempString& n, CBioseqContext& ctx,
647  TFlags) const;
648 
649 private:
651  string m_Aa;
652 };
653 
654 
656 {
657 public:
658  CFlatTrnaCodonsQVal(const CTrna_ext& trna, const string& comment) :
659  IFlatQVal(&kEmptyStr, &kSemicolon), m_Value(&trna), m_Seqfeat_note(comment)
660  {}
661  void Format(TFlatQuals& q, const CTempString& n, CBioseqContext& ctx,
662  TFlags) const;
663 
664 private:
666  const string& m_Seqfeat_note;
667 };
668 
669 
671 {
672 public:
673  CFlatProductNamesQVal(const CProt_ref::TName& value, const string& gene) :
674  IFlatQVal(&kSpace, &kSemicolon), m_Value(value), m_Gene(gene)
675  {}
676 
677  void Format(TFlatQuals& quals, const CTempString& name, CBioseqContext& ctx,
678  TFlags flags) const;
679 
680  const CProt_ref::TName& GetValue(void) const { return m_Value; }
681  CProt_ref::TName& SetValue(void) { return m_Value; }
682 
683 private:
685  string m_Gene;
686 };
687 
688 // ...
689 
692 
693 #endif /* OBJTOOLS_FORMAT_ITEMS___QUALIFIERS__HPP */
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
Definition: Dbtag.hpp:53
CConstRef< CSeq_loc > m_Anticodon
Definition: qualifiers.hpp:650
CFlatAnticodonQVal(const CSeq_loc &ac, const string &aa)
Definition: qualifiers.hpp:644
CFlatBondQVal(const string &value)
Definition: qualifiers.hpp:307
void Format(TFlatQuals &q, const CTempString &n, CBioseqContext &, TFlags) const
Definition: qualifiers.hpp:246
CFlatBoolQVal(bool value)
Definition: qualifiers.hpp:245
CCdregion::TCode_break m_Value
Definition: qualifiers.hpp:393
CFlatCodeBreakQVal(const CCdregion::TCode_break &value)
Definition: qualifiers.hpp:388
CFlatGeneQVal(const string &value)
Definition: qualifiers.hpp:318
CFlatGeneSynonymsQVal(const CGene_ref::TSyn &syns)
Definition: qualifiers.hpp:364
CFlatGoQVal(const CUser_field &value)
Definition: qualifiers.hpp:627
CConstRef< CUser_field > m_Value
Definition: qualifiers.hpp:637
CConstRef< CGb_qual > m_Value
Definition: qualifiers.hpp:443
CFlatIllegalQVal(const CGb_qual &value)
Definition: qualifiers.hpp:438
CFlatIntQVal(int value)
Definition: qualifiers.hpp:256
CFlatLabelQVal(const string &value)
Definition: qualifiers.hpp:450
CFlatModelEvQVal(const CUser_object &value)
Definition: qualifiers.hpp:615
CConstRef< CUser_object > m_Value
Definition: qualifiers.hpp:620
CFlatMolTypeQVal(TBiomol biomol, TMol mol)
Definition: qualifiers.hpp:462
CMolInfo::TBiomol TBiomol
Definition: qualifiers.hpp:459
CSeq_inst::TMol TMol
Definition: qualifiers.hpp:460
CFlatNomenclatureQVal(const CGene_ref_Base::TFormal_name &value)
Definition: qualifiers.hpp:377
CConstRef< CGene_ref_Base::TFormal_name > m_Value
Definition: qualifiers.hpp:382
CFlatNumberQVal(const string &value)
Definition: qualifiers.hpp:295
CFlatOrgModQVal(const COrgMod &value)
Definition: qualifiers.hpp:489
CConstRef< COrgMod > m_Value
Definition: qualifiers.hpp:496
CFlatOrganelleQVal(CBioSource::TGenome value)
Definition: qualifiers.hpp:503
CBioSource::TGenome m_Value
Definition: qualifiers.hpp:508
CFlatProductNamesQVal(const CProt_ref::TName &value, const string &gene)
Definition: qualifiers.hpp:673
CProt_ref::TName & SetValue(void)
Definition: qualifiers.hpp:681
CProt_ref::TName m_Value
Definition: qualifiers.hpp:684
const CProt_ref::TName & GetValue(void) const
Definition: qualifiers.hpp:680
CFlatPubSetQVal(const CPub_set &value)
Definition: qualifiers.hpp:515
CConstRef< CPub_set > m_Value
Definition: qualifiers.hpp:520
CFlatSeqIdQVal(const CSeq_id &value, bool add_gi_prefix=false)
Definition: qualifiers.hpp:527
CConstRef< CSeq_id > m_Value
Definition: qualifiers.hpp:533
CConstRef< CSeq_loc > m_Value
Definition: qualifiers.hpp:547
void Format(TFlatQuals &q, const CTempString &n, CBioseqContext &ctx, TFlags) const
Definition: qualifiers.hpp:542
CFlatSeqLocQVal(const CSeq_loc &value)
Definition: qualifiers.hpp:541
CFlatSiteQVal(const string &value)
Definition: qualifiers.hpp:329
const TValue & GetValue(void) const
Definition: qualifiers.hpp:352
list< string > TValue
Definition: qualifiers.hpp:340
CFlatStringListQVal(const list< string >::const_iterator &begin, const list< string >::const_iterator &end, TStyle style=CFormatQual::eQuoted)
Definition: qualifiers.hpp:345
TValue & SetValue(void)
Definition: qualifiers.hpp:353
CFlatStringListQVal(const list< string > &value, TStyle style=CFormatQual::eQuoted)
Definition: qualifiers.hpp:342
IFlatQVal::TFlags m_AddPeriod
Definition: qualifiers.hpp:288
void SetAddPeriod(bool addPeriod=true)
Definition: qualifiers.hpp:282
const string & GetValue(void) const
Definition: qualifiers.hpp:281
CFlatSubSourcePrimer(const string &fwd_name, const string &fwd_seq, const string &rev_name, const string &rev_seq)
Definition: qualifiers.hpp:568
CConstRef< CSubSource > m_Value
Definition: qualifiers.hpp:562
CFlatSubSourceQVal(const CSubSource &value)
Definition: qualifiers.hpp:554
CMolInfo::TTech TTech
Definition: qualifiers.hpp:475
CFlatSubmitterSeqidQVal(TTech tech)
Definition: qualifiers.hpp:477
const string & m_Seqfeat_note
Definition: qualifiers.hpp:666
CFlatTrnaCodonsQVal(const CTrna_ext &trna, const string &comment)
Definition: qualifiers.hpp:658
CConstRef< CTrna_ext > m_Value
Definition: qualifiers.hpp:665
CFlatXrefQVal(const TXref &value, const TQuals *quals=0)
Definition: qualifiers.hpp:599
CSeq_feat::TDbxref TXref
Definition: qualifiers.hpp:596
CQualContainer< EFeatureQualifier > TQuals
Definition: qualifiers.hpp:597
CConstRef< TQuals > m_Quals
Definition: qualifiers.hpp:608
void SetAddPeriod(bool add=true)
Definition: qualifiers.hpp:117
bool m_AddPeriod
Definition: qualifiers.hpp:125
TFlags GetFlags(void) const
Definition: qualifiers.hpp:114
TFlags m_Flags
Definition: qualifiers.hpp:123
const string & GetSuffix(void) const
Definition: qualifiers.hpp:113
TStyle m_Style
Definition: qualifiers.hpp:122
EStyle TStyle
Definition: qualifiers.hpp:75
const string & GetName(void) const
Definition: qualifiers.hpp:109
TStyle GetStyle(void) const
Definition: qualifiers.hpp:111
string m_Value
Definition: qualifiers.hpp:121
const string & GetPrefix(void) const
Definition: qualifiers.hpp:112
ETrim GetTrim(void) const
Definition: qualifiers.hpp:115
const string & GetValue(void) const
Definition: qualifiers.hpp:110
bool GetAddPeriod(void) const
Definition: qualifiers.hpp:118
@Gb_qual.hpp User-defined methods of the data storage class.
Definition: Gb_qual.hpp:61
CGene_nomenclature –.
CObject –.
Definition: ncbiobj.hpp:180
@OrgMod.hpp User-defined methods of the data storage class.
Definition: OrgMod.hpp:54
const_iterator begin(void) const
Definition: qualifiers.hpp:193
iterator begin(void)
Definition: qualifiers.hpp:192
const_iterator Find(const Key &key) const
Definition: qualifiers.hpp:227
void RemoveQuals(const Key &key)
Definition: qualifiers.hpp:221
TQualMMap::iterator iterator
Definition: qualifiers.hpp:186
void AddQual(const Key &key, const IFlatQVal *value)
Definition: qualifiers.hpp:197
iterator Erase(iterator it)
Definition: qualifiers.hpp:213
size_type Size() const
Definition: qualifiers.hpp:230
iterator LowerBound(Key &key)
Definition: qualifiers.hpp:206
const_iterator end(void) const
Definition: qualifiers.hpp:195
CQualContainer(void)
Definition: qualifiers.hpp:190
const_iterator LowerBound(const Key &key) const
Definition: qualifiers.hpp:210
multimap< Key, CConstRef< IFlatQVal > > TQualMMap
Definition: qualifiers.hpp:184
iterator Find(const Key &key)
Definition: qualifiers.hpp:224
TQualMMap::size_type size_type
Definition: qualifiers.hpp:187
bool HasQual(const Key &key) const
Definition: qualifiers.hpp:202
TQualMMap m_Quals
Definition: qualifiers.hpp:235
iterator end(void)
Definition: qualifiers.hpp:194
TQualMMap::const_iterator const_iterator
Definition: qualifiers.hpp:185
CRef –.
Definition: ncbiobj.hpp:618
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
Definition: tempstr.hpp:65
static const string kSpace
Definition: qualifiers.hpp:150
static const string kSemicolonEOL
Definition: qualifiers.hpp:147
static const string kSemicolon
Definition: qualifiers.hpp:146
static const string kEOL
Definition: qualifiers.hpp:149
TFlatQual x_AddFQ(TFlatQuals &q, const CTempString &n, const CTempString &v, TStyle st=CFormatQual::eQuoted, CFormatQual::TFlags flags=0, ETrim trim=CFormatQual::eTrim_Normal) const
Definition: qualifiers.hpp:162
const string * m_Prefix
Definition: qualifiers.hpp:171
CFormatQual::ETrim ETrim
Definition: qualifiers.hpp:157
const string * m_Suffix
Definition: qualifiers.hpp:172
virtual void Format(TFlatQuals &quals, const CTempString &name, CBioseqContext &ctx, TFlags flags=0) const =0
CFormatQual::TStyle TStyle
Definition: qualifiers.hpp:156
IFlatQVal(const string *pfx=&kSpace, const string *sfx=&kEmptyStr)
Definition: qualifiers.hpp:159
static const string kComma
Definition: qualifiers.hpp:148
Include a standard set of the NCBI C++ Toolkit most basic headers.
static uch flags
CS_CONTEXT * ctx
Definition: t0006.c:12
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
Definition: dlist.tmpl.h:56
static const int kSpace
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define END_SCOPE(ns)
End the previously defined scope.
Definition: ncbistl.hpp:75
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define BEGIN_SCOPE(ns)
Define a new scope.
Definition: ncbistl.hpp:72
#define kEmptyStr
Definition: ncbistr.hpp:123
static string & ToLower(string &str)
Convert string to lower case – string& version.
Definition: ncbistr.cpp:405
#define NCBI_FORMAT_EXPORT
Definition: ncbi_export.h:496
list< string > TSyn
Definition: Gene_ref_.hpp:102
list< string > TName
Definition: Prot_ref_.hpp:108
vector< CRef< CDbtag > > TDbxref
Definition: Seq_feat_.hpp:123
list< CRef< CCode_break > > TCode_break
Definition: Cdregion_.hpp:111
EMol
molecule class in living organism
Definition: Seq_inst_.hpp:108
yy_size_t n
const struct ncbi::grid::netcache::search::fields::KEY key
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
static bool Equals(const CVariation::TPlacements &p1, const CVariation::TPlacements &p2)
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
Format
Definition: njn_ioutil.hpp:52
vector< TFlatQual > TFlatQuals
Definition: qualifiers.hpp:129
CRef< CFormatQual > TFlatQual
Definition: qualifiers.hpp:128
static SLJIT_INLINE sljit_ins st(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
Modified on Fri Sep 20 14:57:23 2024 by modify_doxy.py rev. 669887