Id_pat.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: Id_pat.cpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 19:31:36  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.4
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /* $Id: Id_pat.cpp,v 1000.2 2004/06/01 19:31:36 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Author:  .......
  35.  *
  36.  * File Description:
  37.  *   .......
  38.  *
  39.  * Remark:
  40.  *   This code was originally generated by application DATATOOL
  41.  *   using specifications from the ASN data definition file
  42.  *   'biblio.asn'.
  43.  *
  44.  * ---------------------------------------------------------------------------
  45.  * $Log: Id_pat.cpp,v $
  46.  * Revision 1000.2  2004/06/01 19:31:36  gouriano
  47.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.4
  48.  *
  49.  * Revision 6.4  2004/05/19 17:18:17  gorelenk
  50.  * Added include of PCH - ncbi_pch.hpp
  51.  *
  52.  * Revision 6.3  2004/02/24 15:53:46  grichenk
  53.  * Redesigned GetLabel(), moved most functionality from pub to biblio
  54.  *
  55.  * Revision 6.2  2000/12/26 17:28:46  vasilche
  56.  * Simplified and formatted code.
  57.  *
  58.  * Revision 6.1  2000/11/30 21:45:07  ostell
  59.  * added Match()
  60.  *
  61.  *
  62.  * ===========================================================================
  63.  */
  64. // standard includes
  65. // generated includes
  66. #include <ncbi_pch.hpp>
  67. #include <objects/biblio/Id_pat.hpp>
  68. #include <objects/biblio/label_util.hpp>
  69. // generated classes
  70. BEGIN_NCBI_SCOPE
  71. BEGIN_objects_SCOPE // namespace ncbi::objects::
  72. // destructor
  73. CId_pat::~CId_pat(void)
  74. {
  75. }
  76. bool CId_pat::Id_Match(const C_Id& id1, const C_Id& id2)
  77. {
  78. C_Id::E_Choice type1 = id1.Which();
  79. C_Id::E_Choice type2 = id2.Which();
  80. if (type1 != type2)
  81. return false;
  82.     switch ( type1 ) {
  83.     case C_Id::e_Number:
  84.         return AStrEquiv(id1.GetNumber(), id2.GetNumber(), PNocase());
  85.     case C_Id::e_App_number:
  86.         return AStrEquiv(id1.GetApp_number(), id2.GetApp_number(), PNocase());
  87.     default:
  88.         return false;
  89.     }
  90. }
  91. // comparison function
  92. bool CId_pat::Match(const CId_pat& idp2) const
  93. {
  94.     return AStrEquiv(GetCountry(), idp2.GetCountry(), PNocase()) &&
  95.         Id_Match(GetId(), idp2.GetId());
  96. }
  97. void CId_pat::GetLabel(string* label) const
  98. {
  99.     GetLabelContent(label, false, 0, 0, 0, 0, 0,
  100.         &GetCountry(),
  101.         GetId().IsNumber() ? &GetId().GetNumber() :
  102.             (GetId().IsApp_number() ? &GetId().GetApp_number() : 0));
  103. }
  104. END_objects_SCOPE // namespace ncbi::objects::
  105. END_NCBI_SCOPE
  106. /* Original file checksum: lines: 61, chars: 1877, CRC32: 1b7c366f */