90 switch(
id.GetType() ) {
134 #define DEFCHOOSER(type, name) \
136 struct STypeChooser<CSeqEdit_Cmd::e_##type> { \
137 typedef CSeqEdit_Cmd_##name TCommand; \
138 static inline TCommand& GetCommand(CSeqEdit_Cmd& cmd) \
139 { return cmd.Set##type(); } \
173 template<
typename THandle>
183 template<
typename THandle>
199 template<
typename THandle>
205 .SetAdd_descr(
const_cast<CSeq_descr&
>(descr));
223 template<
typename THandle>
229 .SetSet_descr(
const_cast<CSeq_descr&
>(descr));
247 template<
typename THandle>
268 template<
typename THandle>
275 SetAdd_desc(
const_cast<CSeqdesc&
>(desc));
291 template<
typename THandle>
298 SetRemove_desc(
const_cast<CSeqdesc&
>(desc));
320 #define DEFINSTCH(type) \
322 struct SSeqAttrChanger<CSeqEdit_Cmd_ChangeSeqAttr::TData::e_##type> { \
323 typedef CSeqEdit_Cmd_ChangeSeqAttr::TData::T##type TParam; \
324 static inline void CreateCmd(const CBioseq_Handle& handle, \
325 const TParam& value, \
326 IEditsDBEngine& engine) \
328 CRef<CSeqEdit_Cmd> cmd; \
329 CSeqEdit_Cmd_ChangeSeqAttr& c = \
330 SCmdCreator<CSeqEdit_Cmd::e_Change_seqattr>::CreateCmd(handle,cmd); \
331 c.SetData().Set##type(const_cast<TParam&>(value)); \
332 engine.SaveCommand(*cmd); \
552 #define DEFINSTCH(type) \
554 struct SSetAttrChanger<CSeqEdit_Cmd_ChangeSetAttr::TData::e_##type> { \
555 typedef CSeqEdit_Cmd_ChangeSetAttr::TData::T##type TParam; \
556 static inline void CreateCmd(const CBioseq_set_Handle& handle, \
557 const TParam& value, \
558 IEditsDBEngine& engine) \
560 CRef<CSeqEdit_Cmd> cmd; \
561 CSeqEdit_Cmd_ChangeSetAttr& c = \
562 SCmdCreator<CSeqEdit_Cmd::e_Change_setattr>::CreateCmd(handle,cmd); \
563 c.SetData().Set##type(const_cast<TParam&>(value)); \
564 engine.SaveCommand(*cmd); \
698 else if (entry.
IsSeq()) {
889 template<
typename Holder>
890 static void Set(Holder& holder,
CSeq_feat& feat) { holder.SetFeat(feat); }
903 template<
typename Holder>
904 static void Set(Holder& holder,
CSeq_align& align) { holder.SetAlign(align); }
916 template<
typename Holder>
917 static void Set(Holder& holder,
CSeq_graph& graph) { holder.SetGraph(graph); }
920 template<
typename T>
static inline
925 typedef typename TAnnotObjTrait::TCont TCont;
928 const TCont& cont = TAnnotObjTrait::GetCont(*annot);
929 if( cont.size() > 1 ) {
930 ITERATE(
typename TCont, it, cont) {
931 if ( !(*it)->Equals(new_obj) ) {
932 T& obj =
const_cast<T&
>(**it);
933 TAnnotObjTrait::Set(
cmd.SetSearch_param().SetObj(), obj);
940 cmd.SetSearch_param()
946 template<
typename T>
static inline
956 T& nc_value =
const_cast<T&
>(
value);
984 template<
typename T>
static inline
994 T& nc_value =
const_cast<T&
>(old_value);
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.
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.
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.
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.
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.
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.
User-defined methods of the data storage class.
void transform(Container &c, UnaryFunction *op)
IEditsDBEngine & GetDBEngine()
virtual void ResetBioseqSetRelease(const CBioseq_set_Handle &, ECallMode)
virtual void ResetSeqInstExt(const CBioseq_Handle &, ECallMode)
virtual void Attach(const CBioObjectId &old_id, const CSeq_entry_Handle &entry, const CBioseq_Handle &what, ECallMode)
virtual void AddId(const CBioseq_Handle &, const CSeq_id_Handle &, ECallMode)
ID operation.
virtual void ResetDescr(const CBioseq_Handle &, ECallMode)
virtual void SetBioseqSetDate(const CBioseq_set_Handle &, const CBioseq_set::TDate &, ECallMode)
virtual void RemoveId(const CBioseq_Handle &, const CSeq_id_Handle &, ECallMode)
virtual void CommitTransaction()
Called when a transaction is finished.
virtual void SetBioseqSetId(const CBioseq_set_Handle &, const CBioseq_set::TId &, ECallMode)
virtual void RollbackTransaction()
Called when a transaction should be undone.
virtual void SetBioseqSetColl(const CBioseq_set_Handle &, const CBioseq_set::TColl &, ECallMode)
virtual void SetSeqInstRepr(const CBioseq_Handle &, CSeq_inst::TRepr, ECallMode)
virtual void ResetBioseqSetColl(const CBioseq_set_Handle &, ECallMode)
virtual void ResetBioseqSetDate(const CBioseq_set_Handle &, ECallMode)
virtual void SetBioseqSetRelease(const CBioseq_set_Handle &, const CBioseq_set::TRelease &, ECallMode)
virtual void SetDescr(const CBioseq_Handle &, const CSeq_descr &, ECallMode)
virtual void ResetSeqInst(const CBioseq_Handle &, ECallMode)
virtual void AddDesc(const CBioseq_Handle &, const CSeqdesc &, ECallMode)
virtual void ResetBioseqSetId(const CBioseq_set_Handle &, ECallMode)
virtual void SetSeqInstMol(const CBioseq_Handle &, CSeq_inst::TMol, ECallMode)
virtual void ResetSeqInstTopology(const CBioseq_Handle &, ECallMode)
virtual void Remove(const CSeq_entry_Handle &entry, const CSeq_annot_Handle &what, ECallMode)
virtual void BeginTransaction()
Called when a transaction has just been started.
virtual void ResetSeqInstSeq_data(const CBioseq_Handle &, ECallMode)
virtual void SetSeqInstFuzz(const CBioseq_Handle &info, const CSeq_inst::TFuzz &fuzz, ECallMode)
virtual void SetSeqInstSeq_data(const CBioseq_Handle &info, const CSeq_inst::TSeq_data &data, ECallMode)
virtual void SetSeqInstLength(const CBioseq_Handle &, CSeq_inst::TLength, ECallMode)
virtual void RemoveDesc(const CBioseq_Handle &, const CSeqdesc &, ECallMode)
virtual void ResetSeqInstFuzz(const CBioseq_Handle &, ECallMode)
virtual void Add(const CSeq_annot_Handle &handle, const CSeq_feat &obj, ECallMode)
virtual void Detach(const CSeq_entry_Handle &entry, const CBioseq_Handle &what, ECallMode)
virtual void SetSeqInst(const CBioseq_Handle &, const CSeq_inst &, ECallMode)
CSeq_inst operatoions.
virtual void SetSeqInstHist(const CBioseq_Handle &info, const CSeq_inst::THist &hist, ECallMode)
virtual void Replace(const CSeq_feat_Handle &handle, const CSeq_feat &old_value, ECallMode)
virtual void SetSeqInstStrand(const CBioseq_Handle &info, CSeq_inst::TStrand strand, ECallMode)
virtual void ResetBioseqSetClass(const CBioseq_set_Handle &, ECallMode)
virtual void AddDescr(const CBioseq_Handle &, const CSeq_descr &, ECallMode)
Description operations.
virtual void ResetSeqInstLength(const CBioseq_Handle &, ECallMode)
virtual void ResetSeqInstHist(const CBioseq_Handle &, ECallMode)
virtual void SetSeqInstExt(const CBioseq_Handle &info, const CSeq_inst::TExt &ext, ECallMode)
virtual void ResetSeqInstMol(const CBioseq_Handle &, ECallMode)
virtual void ResetSeqInstStrand(const CBioseq_Handle &, ECallMode)
virtual void ResetIds(const CBioseq_Handle &, const TIds &, ECallMode)
virtual void SetSeqInstTopology(const CBioseq_Handle &info, CSeq_inst::TTopology topology, ECallMode)
virtual void SetBioseqSetLevel(const CBioseq_set_Handle &, CBioseq_set::TLevel, ECallMode)
virtual void ResetSeqInstRepr(const CBioseq_Handle &, ECallMode)
virtual void ResetBioseqSetLevel(const CBioseq_set_Handle &, ECallMode)
virtual void SetBioseqSetClass(const CBioseq_set_Handle &, CBioseq_set::TClass, ECallMode)
CEditsSaver(IEditsDBEngine &)
CSeqEdit_Cmd_AddAnnot –.
CSeqEdit_Cmd_AttachSeqEntry –.
CSeqEdit_Cmd_RemoveAnnot –.
CSeqEdit_Cmd_ReplaceAnnot –.
@Seq_descr.hpp User-defined methods of the data storage class.
namespace ncbi::objects::
ECallMode
This flag can be used for optimization purpose.
virtual void NotifyIdChanged(const CSeq_id_Handle &id, const string &newblobid)=0
virtual void BeginTransaction()=0
virtual void RollbackTransaction()=0
virtual void CommitTransaction()=0
virtual void SaveCommand(const CSeqEdit_Cmd &cmd)=0
iterator_bool insert(const value_type &val)
const_iterator begin() const
const_iterator end() const
static void s_SetSearchParam(CSeqEdit_Cmd_AddAnnot &cmd, const T &new_obj, const CSeq_annot_Handle &handle)
static void s_SetDescr(const THandle &handle, const CSeq_descr &descr, IEditsDBEngine &engine)
#define DEFCHOOSER(type, name)
static void s_AddDesc(const THandle &handle, const CSeqdesc &desc, IEditsDBEngine &engine)
static void s_RemoveAnnot(const CSeq_entry_Handle &entry, const CSeq_annot_Handle &annot, const T &old_value, IEditsDBEngine &engine)
static void s_ResetSetAttr(const CBioseq_set_Handle &handle, CSeqEdit_Cmd_ResetSetAttr::TWhat what, IEditsDBEngine &engine)
static void s_CollectSeqIds(const CSeq_entry &entry, IEditSaver::TIds &ids)
static void s_RemoveDesc(const THandle &handle, const CSeqdesc &desc, IEditsDBEngine &engine)
static void s_AddDescr(const THandle &handle, const CSeq_descr &descr, IEditsDBEngine &engine)
static void s_ResetSeqAttr(const CBioseq_Handle &handle, CSeqEdit_Cmd_ResetSeqAttr::TWhat what, IEditsDBEngine &engine)
static CRef< CSeqEdit_Id > s_Convert(const CBioObjectId &id)
static void s_AddAnnot(const CSeq_annot_Handle &handle, const T &value, IEditsDBEngine &engine)
static CRef< CSeq_id > s_ConvertId(const CSeq_id_Handle &handle)
static void s_ResetDescr(const THandle &handle, IEditsDBEngine &engine)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
CConstRef< CSeq_id > GetSeqId(void) const
static CSeq_id_Handle GetHandle(const CSeq_id &id)
Normal way of getting a handle, works for any seq-id.
vector< CSeq_id_Handle > TId
const CSeq_annot_Handle & GetAnnot(void) const
Get an annotation handle for the current seq-graph.
CConstRef< CSeq_graph > GetSeq_graph(void) const
Get constant reference to the current seq-graph.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to seq-annot for this feature.
virtual CConstRef< CSeq_feat > GetSeq_feat(void) const
E_Choice Which(void) const
const CBioObjectId & GetBioObjectId(void) const
Get unique object id.
CConstRef< CSeq_annot > GetCompleteSeq_annot(void) const
Complete and return const reference to the current seq-annot.
CConstRef< CBioseq_set > GetCompleteBioseq_set(void) const
Return the complete bioseq-set object.
const CBioObjectId & GetBioObjectId(void) const
Get unique object id.
CConstRef< CSeq_align > GetSeq_align(void) const
Get const reference to current seq-align.
CSeq_entry_Handle GetParentEntry(void) const
Get parent Seq-entry handle.
CConstRef< CSeq_entry > GetCompleteSeq_entry(void) const
Complete and get const reference to the seq-entry.
const CBioObjectId & GetBioObjectId(void) const
Get unique object id.
const string & GetName(void) const
const CSeq_annot_Handle & GetAnnot(void) const
Get handle to the seq-annot.
const TId & GetId(void) const
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
void SetData(TData &value)
Assign a value to Data data member.
TUnique_num & SetUnique_num(void)
Select the variant.
void SetData(TData &value)
Assign a value to Data data member.
TBioseqset_id & SetBioseqset_id(void)
Select the variant.
TBioseq_id & SetBioseq_id(void)
Select the variant.
list< CRef< CSeq_id > > TRemove_ids
void SetIndex(TIndex value)
Assign a value to Index data member.
void SetData(TData &value)
Assign a value to Data data member.
void SetSeq_entry(TSeq_entry &value)
Assign a value to Seq_entry data member.
@ eWhat_strand
strand field of seq-inst object
@ eWhat_repr
repr field of seq-inst object
@ eWhat_mol
mol field of seq-inst object
@ eWhat_ext
extr field of seq-inst object
@ eWhat_length
length field of seq-inst object
@ eWhat_hist
hist field of seq-inst object
@ eWhat_fuzz
fuzz field of seq-inst object
@ eWhat_topology
topology field of seq-inst object
@ eWhat_seq_data
seq-data field of seq-inst object
@ eWhat_inst
whole seq-inst object
const TSeq & GetSeq(void) const
Get the variant data.
const TSet & GetSet(void) const
Get the variant data.
bool IsSeq(void) const
Check if variant Seq is selected.
bool IsSetSeq_set(void) const
Check if a value has been assigned to Seq_set data member.
bool IsSet(void) const
Check if variant Set is selected.
const TSeq_set & GetSeq_set(void) const
Get the Seq_set member data.
list< CRef< CSeq_entry > > TSeq_set
@ e_not_set
No variant selected.
const TGraph & GetGraph(void) const
Get the variant data.
ERepr
representation class
list< CRef< CSeq_graph > > TGraph
const TId & GetId(void) const
Get the Id member data.
bool IsSetData(void) const
Check if a value has been assigned to Data data member.
list< CRef< CSeq_align > > TAlign
const TDesc & GetDesc(void) const
Get the Desc member data.
list< CRef< CSeq_id > > TId
bool IsSetDesc(void) const
used only for stand alone Seq-annots Check if a value has been assigned to Desc data member.
const TAlign & GetAlign(void) const
Get the variant data.
ETopology
topology of molecule
EMol
molecule class in living organism
const TFtable & GetFtable(void) const
Get the variant data.
EStrand
strandedness in living organism
list< CRef< CSeq_feat > > TFtable
const TData & GetData(void) const
Get the Data member data.
E_Choice Which(void) const
Which variant is currently selected.
static PyObject * Date(PyObject *self, PyObject *args)
const GenericPointer< typename T::ValueType > T2 value
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
static bool GetSeqId(const T &d, set< string > &labels, const string name="", bool detect=false, bool found=false)
static void Set(Holder &holder, CSeq_align &align)
CSeq_annot::TData::TAlign TCont
static const TCont & GetCont(const CSeq_annot &annot)
CSeq_annot::TData::TFtable TCont
static const TCont & GetCont(const CSeq_annot &annot)
static void Set(Holder &holder, CSeq_feat &feat)
CSeq_annot::TData::TGraph TCont
static void Set(Holder &holder, CSeq_graph &graph)
static const TCont & GetCont(const CSeq_annot &annot)
SCmdCreator< type > TCmdCreator
static TCommand & PrepareCmd(const CSeq_annot_Handle &annot, CRef< CSeqEdit_Cmd > &cmd)
TCmdCreator::TCommand TCommand
static TCommand & PrepareCmd(const CSeq_annot_Handle &annot, const CSeq_entry_Handle &entry, CRef< CSeqEdit_Cmd > &cmd)
static TCommand & CreateCmd(const THandle &handle, CRef< CSeqEdit_Cmd > &holder)
STypeChooser< type > TTypeChooser
static TCommand & CreateCmd(const THandle &handle, const CBioObjectId &id, CRef< CSeqEdit_Cmd > &holder)
TTypeChooser::TCommand TCommand
string ToString(const wxRect &rc)