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

Go to the SVN repository for this file.

1 /* $Id: gb_block_field.hpp 95059 2021-10-02 09:47:34Z stakhovv $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Colleen Bollin
27  */
28 
29 
30 #ifndef _GB_BLOCK_FIELD_H_
31 #define _GB_BLOCK_FIELD_H_
32 
33 #include <corelib/ncbistd.hpp>
34 
35 #include <objmgr/scope.hpp>
36 
37 #include <objmgr/scope.hpp>
38 #include <objmgr/bioseq_handle.hpp>
39 #include <objects/seq/Seqdesc.hpp>
41 
43 
45 
48 
49 
51 {
52 public:
54  eGBBlockFieldType_Keyword = 0,
56  eGBBlockFieldType_Unknown };
57 
58  CGBBlockField(EGBBlockFieldType field_type = eGBBlockFieldType_Keyword)
59  : m_FieldType(field_type),
60  m_StringConstraint() { m_Subtype = CSeqdesc::e_Genbank; }
61  string GetVal(const CObject& object) override;
62  vector<string> GetVals(const CObject& object) override;
63  bool IsEmpty(const CObject& object) const override;
64  void ClearVal(CObject& object) override;
65  bool SetVal(CObject& object, const string& val, EExistingText existing_text) override;
66  string IsValid(const string& value) override { return string(); }
67  vector<string> IsValid(const vector<string>& values) override { return vector<string>(); }
68  void SetConstraint(const string& field, CConstRef<CStringConstraint> string_constraint) override;
69  bool AllowMultipleValues() override;
70 
71  static EGBBlockFieldType GetTypeForLabel(string label);
72  static string GetLabelForType(EGBBlockFieldType field_type);
73 
74 protected:
77 };
78 
79 
83 
84 #endif
85 
CConstRef –.
Definition: ncbiobj.hpp:1266
CRef< CStringConstraint > m_StringConstraint
CGBBlockField(EGBBlockFieldType field_type=eGBBlockFieldType_Keyword)
@ eGBBlockFieldType_ExtraAccession
vector< string > IsValid(const vector< string > &values) override
string IsValid(const string &value) override
EGBBlockFieldType m_FieldType
CObject –.
Definition: ncbiobj.hpp:180
char value[7]
Definition: config.c:431
Include a standard set of the NCBI C++ Toolkit most basic headers.
string
Definition: cgiapp.hpp:687
#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 NCBI_XOBJEDIT_EXPORT
Definition: ncbi_export.h:1291
static const char label[]
@ e_Genbank
GenBank specific info.
Definition: Seqdesc_.hpp:121
Definition: fix_pub.hpp:45
EExistingText
Modified on Wed Nov 29 02:21:02 2023 by modify_doxy.py rev. 669887