⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reference_item.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: reference_item.hpp,v $ * PRODUCTION Revision 1000.1  2004/06/01 19:40:17  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9 * PRODUCTION * =========================================================================== */#ifndef OBJTOOLS_FORMAT_ITEMS___REFERENCE_ITEM__HPP#define OBJTOOLS_FORMAT_ITEMS___REFERENCE_ITEM__HPP/*  $Id: reference_item.hpp,v 1000.1 2004/06/01 19:40:17 gouriano Exp $* ===========================================================================**                            PUBLIC DOMAIN NOTICE*               National Center for Biotechnology Information**  This software/database is a "United States Government Work" under the*  terms of the United States Copyright Act.  It was written as part of*  the author's official duties as a United States Government employee and*  thus cannot be copyrighted.  This software/database is freely available*  to the public for use. The National Library of Medicine and the U.S.*  Government have not placed any restriction on its use or reproduction.**  Although all reasonable efforts have been taken to ensure the accuracy*  and reliability of the software and data, the NLM and the U.S.*  Government do not and cannot warrant the performance or results that*  may be obtained by using this software or data. The NLM and the U.S.*  Government disclaim all warranties, express or implied, including*  warranties of performance, merchantability or fitness for any particular*  purpose.**  Please cite the author in any work or product based on this material.** ===========================================================================** Author:  Aaron Ucko, NCBI*          Mati Shomrat** File Description:*   Reference item for flat-file generator**/#include <corelib/ncbistd.hpp>#include <objects/general/Date_std.hpp>#include <objects/seq/Pubdesc.hpp>#include <objects/biblio/Imprint.hpp>#include <objtools/format/items/item_base.hpp>BEGIN_NCBI_SCOPEBEGIN_SCOPE(objects)class CSeq_loc;class CSeqdesc;class CSeq_feat;class CAuth_list;class CCit_art;class CCit_book;class CCit_gen;class CCit_jour;class CCit_let;class CCit_pat;class CCit_proc;class CCit_sub;class CImprint;class CMedline_entry;class CPub;class CPub_equiv;class CPub_set;class CTitle;class CAffil;class CBioseqContext;class IFormatter;class CReferenceItem : public CFlatItem{public:    enum ECategory {        eUnknown,     // none of the below        ePublished,   // published paper        eUnpublished, // unpublished paper        eSubmission   // direct submission    };    typedef ECategory                       TCategory;    typedef vector<CRef<CReferenceItem> >   TReferences;    CReferenceItem(const CPubdesc& pub, CBioseqContext& ctx,        const CSeq_loc* loc = 0);    CReferenceItem(const CSeqdesc&  desc, CBioseqContext& ctx);    CReferenceItem(const CSeq_feat& feat, CBioseqContext& ctx);            void Format(IFormatter& formatter, IFlatTextOStream& text_os) const;    // sort, merge duplicates and cleans up remaining items    static void Rearrange(TReferences& refs, CBioseqContext& ctx);    bool Matches(const CPub_set& ps) const;           // typically has to go through m_Pub(desc), since we don't want to store    // format-dependent strings    //void GetTitles(string& title, string& journal, const CBioseqContext& ctx)    //    const;            const CPubdesc&     GetPubdesc   (void) const { return *m_Pubdesc;   }    CPubdesc::TReftype  GetReftype   (void) const { return GetPubdesc().GetReftype(); }    TCategory           GetCategory  (void) const { return m_Category;   }    const CDate*        GetDate      (void) const { return m_Date;       }    CImprint::TPrepub   GetPrepub    (void) const { return m_Prepub;     }    int                 GetSerial    (void) const { return m_Serial;     }    const CSeq_loc*     GetLoc       (void) const { return m_Loc;        }    const CAuth_list*   GetAuthors   (void) const { return m_Authors;    }    const string&       GetConsortium(void) const { return m_Consortium; }    const string&       GetTitle     (void) const { return m_Title;      }    const string&       GetJournal   (void) const { return m_Journal;    }    const int           GetPMID      (void) const { return m_PMID;       }    const int           GetMUID      (void) const { return m_MUID;       }    const string&       GetRemark    (void) const { return m_Remark;     }    const string&       GetVolume    (void) const { return m_Volume;     }    const string&       GetPages     (void) const { return m_Pages;      }    const string&       GetIssue     (void) const { return m_Issue;      }    const CCit_book*    GetBook      (void) const { return m_Book;       }    bool                JustUids     (void) const { return m_JustUids;   }    static string GetAuthString(const CAuth_list* alp);    static void GetAuthNames(list<string>& authors, const CAuth_list* alp);    static void FormatAffil(const CAffil& affil, string& result);    void SetLoc(const CConstRef<CSeq_loc>& loc);private:        void x_GatherInfo(CBioseqContext& ctx);    void x_Init(const CPub&           pub,  CBioseqContext& ctx);    void x_Init(const CCit_gen&       gen,  CBioseqContext& ctx);    void x_Init(const CCit_sub&       sub,  CBioseqContext& ctx);    void x_Init(const CMedline_entry& mle,  CBioseqContext& ctx);    void x_Init(const CCit_art&       art,  CBioseqContext& ctx);    void x_Init(const CCit_jour&      jour, CBioseqContext& ctx);    void x_Init(const CCit_book&      book, CBioseqContext& ctx,         bool for_art = false);    void x_Init(const CCit_pat&       pat,  CBioseqContext& ctx);    void x_Init(const CCit_let&       man,  CBioseqContext& ctx);    void x_AddAuthors(const CAuth_list& auth);    void x_SetJournal(const CTitle& title, CBioseqContext& ctx);    void x_SetJournal(const CCit_gen& gen, CBioseqContext& ctx);    void x_AddImprint(const CImprint& imp, CBioseqContext& ctx);        // Genbank format specific    void x_GatherRemark(CBioseqContext& ctx);    void x_CleanData(void);    bool x_Matches(const CPub& pub) const;    CConstRef<CPubdesc>   m_Pubdesc;    CConstRef<CPub>       m_Pub;         // main entry    CConstRef<CSeq_loc>   m_Loc;         // null if from a descriptor    int                   m_PMID;    int                   m_MUID;    TCategory             m_Category;    // (un)published / submitted    int                   m_Serial;    CConstRef<CAuth_list> m_Authors;    string                m_Consortium;    string                m_Title;    string                m_Journal;     // or contact info for submissions    string                m_Volume;      // normally numeric    string                m_Issue;    string                m_Pages;    CConstRef<CDate>      m_Date;    string                m_Remark;      // genbank specific    bool                  m_JustUids;    CConstRef<CCit_book>  m_Book;    CImprint::TPrepub     m_Prepub;    string        m_UniqueStr;};/////////////////////////////////////////////////////////////////////////////// INLINE METHODS/*inline string CReferenceItem::x_GetURL(int id){    return "http://www.ncbi.nlm.nih.gov/entrez/utils/qmap.cgi?uid="        + NStr::IntToString(id) + "&form=6&db=m&Dopt=r";}*/END_SCOPE(objects)END_NCBI_SCOPE/** ===========================================================================** $Log: reference_item.hpp,v $* Revision 1000.1  2004/06/01 19:40:17  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9** Revision 1.9  2004/05/20 13:47:08  shomrat* Added m_UniqueStr to be used for citation matching** Revision 1.8  2004/05/06 17:43:44  shomrat* moved non-public class to src file** Revision 1.7  2004/04/27 15:08:46  shomrat* + GetPrepub** Revision 1.6  2004/04/22 15:39:18  shomrat* Changes in context** Revision 1.5  2004/04/13 16:42:53  shomrat* + GetAuthNames()** Revision 1.4  2004/03/18 15:28:01  shomrat* + GetBook** Revision 1.3  2004/03/10 16:23:49  shomrat* + x_GatherRemark** Revision 1.2  2004/02/11 16:35:50  shomrat* using typdef TReferences** Revision 1.1  2003/12/17 19:49:28  shomrat* Initial revision (adapted from flat lib)*** ===========================================================================*/#endif  /* OBJTOOLS_FORMAT_ITEMS___REFERENCE_ITEM__HPP */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -