Pub.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
- /*
- * ===========================================================================
- * PRODUCTION $Log: Pub.cpp,v $
- * PRODUCTION Revision 1000.3 2004/06/01 19:32:57 gouriano
- * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.7
- * PRODUCTION
- * ===========================================================================
- */
- /* $Id: Pub.cpp,v 1000.3 2004/06/01 19:32:57 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: .......
- *
- * File Description:
- * .......
- *
- * Remark:
- * This code was originally generated by application DATATOOL
- * using specifications from the ASN data definition file
- * 'pub.asn'.
- */
- #include <ncbi_pch.hpp>
- #include <objects/pub/Pub.hpp>
- #include <objects/pub/Pub_equiv.hpp>
- #include <objects/biblio/PubMedId.hpp>
- #include <objects/biblio/Cit_art.hpp>
- #include <objects/biblio/Cit_jour.hpp>
- #include <objects/biblio/Cit_book.hpp>
- #include <objects/biblio/Cit_proc.hpp>
- #include <objects/biblio/Cit_let.hpp>
- #include <objects/biblio/Cit_sub.hpp>
- #include <objects/biblio/Cit_pat.hpp>
- #include <objects/biblio/Id_pat.hpp>
- #include <objects/biblio/Cit_gen.hpp>
- #include <objects/medline/Medline_entry.hpp>
- // generated classes
- BEGIN_NCBI_SCOPE
- BEGIN_objects_SCOPE // namespace ncbi::objects::
- // destructor
- CPub::~CPub(void)
- {
- }
- // Appends a label to "label"
- void CPub::GetLabel(string* label,
- ELabelType type,
- bool unique) const
- {
- static const char* s_PubTypes[14] = {
- "Unknown",
- "Generic",
- "Submit",
- "Medline",
- "MUID",
- "Article",
- "Journal",
- "Book",
- "Proceedings",
- "Patent",
- "PatID",
- "Manuscript",
- "Equiv",
- "PMID" };
- // Check that label exists
- if (!label) {
- return;
- }
- // Get the index into the s_PubTypes array corresponding to pub type
- int idx = static_cast<int>(Which());
- idx = idx >= 0 && idx < 14 ? idx : 0;
- if (type == eType) {
- // Append pub type to label and return
- *label += s_PubTypes[idx];
- return;
- }
- if (type == eBoth) {
- // Append pub type to label
- *label += string(s_PubTypes[idx]) + ": ";
- }
- switch (Which()) {
- case e_Muid:
- *label += "NLM" + NStr::IntToString(GetMuid());
- break;
- case e_Pmid:
- *label += "PM" + NStr::IntToString(GetPmid().Get());
- break;
- case e_Equiv:
- GetEquiv().GetLabel(label);
- break;
- case e_Medline:
- GetMedline().GetLabel(label, unique);
- break;
- case e_Article:
- GetArticle().GetLabel(label, unique);
- break;
- case e_Journal:
- GetJournal().GetLabel(label);
- break;
- case e_Book:
- GetBook().GetLabel(label);
- break;
- case e_Proc:
- GetProc().GetLabel(label);
- break;
- case e_Man:
- GetMan().GetLabel(label);
- break;
- case e_Sub:
- GetSub().GetLabel(label);
- break;
- case e_Patent:
- GetPatent().GetLabel(label);
- break;
- case e_Pat_id:
- {
- GetPat_id().GetLabel(label);
- break;
- }
- case e_Gen:
- GetGen().GetLabel(label, unique);
- break;
- default:
- break;
- }
- }
- END_objects_SCOPE // namespace ncbi::objects::
- END_NCBI_SCOPE
- /*
- * ===========================================================================
- * $Log: Pub.cpp,v $
- * Revision 1000.3 2004/06/01 19:32:57 gouriano
- * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.7
- *
- * Revision 6.7 2004/05/19 17:24:52 gorelenk
- * Added include of PCH - ncbi_pch.hpp
- *
- * Revision 6.6 2004/02/24 15:53:48 grichenk
- * Redesigned GetLabel(), moved most functionality from pub to biblio
- *
- * Revision 6.5 2003/11/21 14:45:02 grichenk
- * Replaced runtime_error with CException
- *
- * Revision 6.4 2002/07/11 18:20:27 ucko
- * Move include of Pub.hpp to top and CVS log to bottom.
- *
- * Revision 6.3 2002/06/30 03:24:52 vakatov
- * Get rid of warnings caused by constless char* initialization
- *
- * Revision 6.2 2002/01/12 07:33:28 vakatov
- * Get rid of unused variables (in CATCH())
- *
- * Revision 6.1 2002/01/10 19:38:00 clausen
- * Added GetLabel
- *
- * ===========================================================================
- */
- /* Original file checksum: lines: 61, chars: 1862, CRC32: d27bbf43 */