NCBI C++ ToolKit
Apad_.cpp
Go to the documentation of this file.
00001 /* $Id$
00002  * ===========================================================================
00003  *
00004  *                            PUBLIC DOMAIN NOTICE
00005  *               National Center for Biotechnology Information
00006  *
00007  *  This software/database is a "United States Government Work" under the
00008  *  terms of the United States Copyright Act.  It was written as part of
00009  *  the author's official duties as a United States Government employee and
00010  *  thus cannot be copyrighted.  This software/database is freely available
00011  *  to the public for use. The National Library of Medicine and the U.S.
00012  *  Government have not placed any restriction on its use or reproduction.
00013  *
00014  *  Although all reasonable efforts have been taken to ensure the accuracy
00015  *  and reliability of the software and data, the NLM and the U.S.
00016  *  Government do not and cannot warrant the performance or results that
00017  *  may be obtained by using this software or data. The NLM and the U.S.
00018  *  Government disclaim all warranties, express or implied, including
00019  *  warranties of performance, merchantability or fitness for any particular
00020  *  purpose.
00021  *
00022  *  Please cite the author in any work or product based on this material.
00023  *
00024  * ===========================================================================
00025  *
00026  * File Description:
00027  *   This code was generated by application DATATOOL
00028  *   using the following specifications:
00029  *   'linkout.dtd'.
00030  *
00031  * ATTENTION:
00032  *   Don't edit or commit this file into CVS as this file will
00033  *   be overridden (by DATATOOL) without warning!
00034  * ===========================================================================
00035  */
00036 
00037 // standard includes
00038 #include <ncbi_pch.hpp>
00039 #include <serial/serialimpl.hpp>
00040 
00041 // generated includes
00042 #include <objtools/eutils/linkout/Apad.hpp>
00043 #include <objtools/eutils/linkout/Normalize.hpp>
00044 #include <objtools/eutils/linkout/Pad.hpp>
00045 #include <objtools/eutils/linkout/Strip.hpp>
00046 #include <objtools/eutils/linkout/Subs.hpp>
00047 #include <objtools/eutils/linkout/Tolower.hpp>
00048 #include <objtools/eutils/linkout/Toupper.hpp>
00049 BEGIN_linkout_SCOPE // namespace linkout::
00050 
00051 
00052 // generated classes
00053 
00054 BEGIN_NAMED_ENUM_IN_INFO("", CApad_Base::C_Attlist::, EAttlist_align, false)
00055 {
00056     SET_ENUM_INTERNAL_NAME("apad.Attlist", "align");
00057     SET_ENUM_MODULE("linkout");
00058     ADD_ENUM_VALUE("left", eAttlist_align_left);
00059     ADD_ENUM_VALUE("right", eAttlist_align_right);
00060 }
00061 END_ENUM_INFO
00062 
00063 void CApad_Base::C_Attlist::ResetWith(void)
00064 {
00065     m_With.erase();
00066     m_set_State[0] &= ~0x3;
00067 }
00068 
00069 void CApad_Base::C_Attlist::ResetWidth(void)
00070 {
00071     m_Width.erase();
00072     m_set_State[0] &= ~0xc;
00073 }
00074 
00075 void CApad_Base::C_Attlist::Reset(void)
00076 {
00077     ResetWith();
00078     ResetWidth();
00079     ResetAlign();
00080 }
00081 
00082 BEGIN_NAMED_CLASS_INFO("", CApad_Base::C_Attlist)
00083 {
00084     SET_INTERNAL_NAME("apad", "Attlist");
00085     SET_CLASS_MODULE("linkout");
00086     ADD_NAMED_STD_MEMBER("with", m_With)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix();
00087     ADD_NAMED_STD_MEMBER("width", m_Width)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix();
00088     ADD_NAMED_ENUM_MEMBER("align", m_Align, EAttlist_align)->SetDefault(new TAlign(eAttlist_align_right))->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix();
00089     info->SetRandomOrder(true);
00090 }
00091 END_CLASS_INFO
00092 
00093 // constructor
00094 CApad_Base::C_Attlist::C_Attlist(void)
00095     : m_Align(eAttlist_align_right)
00096 {
00097     memset(m_set_State,0,sizeof(m_set_State));
00098 }
00099 
00100 // destructor
00101 CApad_Base::C_Attlist::~C_Attlist(void)
00102 {
00103 }
00104 
00105 
00106 void CApad_Base::C_E_Apad::Reset(void)
00107 {
00108     if ( m_choice != e_not_set )
00109         ResetSelection();
00110 }
00111 
00112 void CApad_Base::C_E_Apad::ResetSelection(void)
00113 {
00114     switch ( m_choice ) {
00115     case e__CharData:
00116         m_string.Destruct();
00117         break;
00118     case e_Pad:
00119     case e_Apad:
00120     case e_Subs:
00121     case e_Toupper:
00122     case e_Tolower:
00123     case e_Strip:
00124     case e_Normalize:
00125         m_object->RemoveReference();
00126         break;
00127     default:
00128         break;
00129     }
00130     m_choice = e_not_set;
00131 }
00132 
00133 void CApad_Base::C_E_Apad::DoSelect(E_Choice index, NCBI_NS_NCBI::CObjectMemoryPool* pool)
00134 {
00135     switch ( index ) {
00136     case e_Pad:
00137         (m_object = new(pool) linkout::CPad())->AddReference();
00138         break;
00139     case e_Apad:
00140         (m_object = new(pool) linkout::CApad())->AddReference();
00141         break;
00142     case e_Subs:
00143         (m_object = new(pool) linkout::CSubs())->AddReference();
00144         break;
00145     case e_Toupper:
00146         (m_object = new(pool) linkout::CToupper())->AddReference();
00147         break;
00148     case e_Tolower:
00149         (m_object = new(pool) linkout::CTolower())->AddReference();
00150         break;
00151     case e_Strip:
00152         (m_object = new(pool) linkout::CStrip())->AddReference();
00153         break;
00154     case e_Normalize:
00155         (m_object = new(pool) linkout::CNormalize())->AddReference();
00156         break;
00157     case e__CharData:
00158         m_string.Construct();
00159         break;
00160     default:
00161         break;
00162     }
00163     m_choice = index;
00164 }
00165 
00166 const char* const CApad_Base::C_E_Apad::sm_SelectionNames[] = {
00167     "not set",
00168     "_CharData",
00169     "pad",
00170     "apad",
00171     "subs",
00172     "toupper",
00173     "tolower",
00174     "strip",
00175     "normalize"
00176 };
00177 
00178 NCBI_NS_STD::string CApad_Base::C_E_Apad::SelectionName(E_Choice index)
00179 {
00180     return NCBI_NS_NCBI::CInvalidChoiceSelection::GetName(index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
00181 }
00182 
00183 void CApad_Base::C_E_Apad::ThrowInvalidSelection(E_Choice index) const
00184 {
00185     throw NCBI_NS_NCBI::CInvalidChoiceSelection(DIAG_COMPILE_INFO, this, m_choice, index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
00186 }
00187 
00188 void CApad_Base::C_E_Apad::Set_CharData(const CApad_Base::C_E_Apad::T_CharData& value)
00189 {
00190     Select(e__CharData, NCBI_NS_NCBI::eDoNotResetVariant);
00191     *m_string = value;
00192 }
00193 
00194 const CApad_Base::C_E_Apad::TPad& CApad_Base::C_E_Apad::GetPad(void) const
00195 {
00196     CheckSelected(e_Pad);
00197     return *static_cast<const TPad*>(m_object);
00198 }
00199 
00200 CApad_Base::C_E_Apad::TPad& CApad_Base::C_E_Apad::SetPad(void)
00201 {
00202     Select(e_Pad, NCBI_NS_NCBI::eDoNotResetVariant);
00203     return *static_cast<TPad*>(m_object);
00204 }
00205 
00206 void CApad_Base::C_E_Apad::SetPad(CApad_Base::C_E_Apad::TPad& value)
00207 {
00208     TPad* ptr = &value;
00209     if ( m_choice != e_Pad || m_object != ptr ) {
00210         ResetSelection();
00211         (m_object = ptr)->AddReference();
00212         m_choice = e_Pad;
00213     }
00214 }
00215 
00216 const CApad_Base::C_E_Apad::TApad& CApad_Base::C_E_Apad::GetApad(void) const
00217 {
00218     CheckSelected(e_Apad);
00219     return *static_cast<const TApad*>(m_object);
00220 }
00221 
00222 CApad_Base::C_E_Apad::TApad& CApad_Base::C_E_Apad::SetApad(void)
00223 {
00224     Select(e_Apad, NCBI_NS_NCBI::eDoNotResetVariant);
00225     return *static_cast<TApad*>(m_object);
00226 }
00227 
00228 void CApad_Base::C_E_Apad::SetApad(CApad_Base::C_E_Apad::TApad& value)
00229 {
00230     TApad* ptr = &value;
00231     if ( m_choice != e_Apad || m_object != ptr ) {
00232         ResetSelection();
00233         (m_object = ptr)->AddReference();
00234         m_choice = e_Apad;
00235     }
00236 }
00237 
00238 const CApad_Base::C_E_Apad::TSubs& CApad_Base::C_E_Apad::GetSubs(void) const
00239 {
00240     CheckSelected(e_Subs);
00241     return *static_cast<const TSubs*>(m_object);
00242 }
00243 
00244 CApad_Base::C_E_Apad::TSubs& CApad_Base::C_E_Apad::SetSubs(void)
00245 {
00246     Select(e_Subs, NCBI_NS_NCBI::eDoNotResetVariant);
00247     return *static_cast<TSubs*>(m_object);
00248 }
00249 
00250 void CApad_Base::C_E_Apad::SetSubs(CApad_Base::C_E_Apad::TSubs& value)
00251 {
00252     TSubs* ptr = &value;
00253     if ( m_choice != e_Subs || m_object != ptr ) {
00254         ResetSelection();
00255         (m_object = ptr)->AddReference();
00256         m_choice = e_Subs;
00257     }
00258 }
00259 
00260 const CApad_Base::C_E_Apad::TToupper& CApad_Base::C_E_Apad::GetToupper(void) const
00261 {
00262     CheckSelected(e_Toupper);
00263     return *static_cast<const TToupper*>(m_object);
00264 }
00265 
00266 CApad_Base::C_E_Apad::TToupper& CApad_Base::C_E_Apad::SetToupper(void)
00267 {
00268     Select(e_Toupper, NCBI_NS_NCBI::eDoNotResetVariant);
00269     return *static_cast<TToupper*>(m_object);
00270 }
00271 
00272 void CApad_Base::C_E_Apad::SetToupper(CApad_Base::C_E_Apad::TToupper& value)
00273 {
00274     TToupper* ptr = &value;
00275     if ( m_choice != e_Toupper || m_object != ptr ) {
00276         ResetSelection();
00277         (m_object = ptr)->AddReference();
00278         m_choice = e_Toupper;
00279     }
00280 }
00281 
00282 const CApad_Base::C_E_Apad::TTolower& CApad_Base::C_E_Apad::GetTolower(void) const
00283 {
00284     CheckSelected(e_Tolower);
00285     return *static_cast<const TTolower*>(m_object);
00286 }
00287 
00288 CApad_Base::C_E_Apad::TTolower& CApad_Base::C_E_Apad::SetTolower(void)
00289 {
00290     Select(e_Tolower, NCBI_NS_NCBI::eDoNotResetVariant);
00291     return *static_cast<TTolower*>(m_object);
00292 }
00293 
00294 void CApad_Base::C_E_Apad::SetTolower(CApad_Base::C_E_Apad::TTolower& value)
00295 {
00296     TTolower* ptr = &value;
00297     if ( m_choice != e_Tolower || m_object != ptr ) {
00298         ResetSelection();
00299         (m_object = ptr)->AddReference();
00300         m_choice = e_Tolower;
00301     }
00302 }
00303 
00304 const CApad_Base::C_E_Apad::TStrip& CApad_Base::C_E_Apad::GetStrip(void) const
00305 {
00306     CheckSelected(e_Strip);
00307     return *static_cast<const TStrip*>(m_object);
00308 }
00309 
00310 CApad_Base::C_E_Apad::TStrip& CApad_Base::C_E_Apad::SetStrip(void)
00311 {
00312     Select(e_Strip, NCBI_NS_NCBI::eDoNotResetVariant);
00313     return *static_cast<TStrip*>(m_object);
00314 }
00315 
00316 void CApad_Base::C_E_Apad::SetStrip(CApad_Base::C_E_Apad::TStrip& value)
00317 {
00318     TStrip* ptr = &value;
00319     if ( m_choice != e_Strip || m_object != ptr ) {
00320         ResetSelection();
00321         (m_object = ptr)->AddReference();
00322         m_choice = e_Strip;
00323     }
00324 }
00325 
00326 const CApad_Base::C_E_Apad::TNormalize& CApad_Base::C_E_Apad::GetNormalize(void) const
00327 {
00328     CheckSelected(e_Normalize);
00329     return *static_cast<const TNormalize*>(m_object);
00330 }
00331 
00332 CApad_Base::C_E_Apad::TNormalize& CApad_Base::C_E_Apad::SetNormalize(void)
00333 {
00334     Select(e_Normalize, NCBI_NS_NCBI::eDoNotResetVariant);
00335     return *static_cast<TNormalize*>(m_object);
00336 }
00337 
00338 void CApad_Base::C_E_Apad::SetNormalize(CApad_Base::C_E_Apad::TNormalize& value)
00339 {
00340     TNormalize* ptr = &value;
00341     if ( m_choice != e_Normalize || m_object != ptr ) {
00342         ResetSelection();
00343         (m_object = ptr)->AddReference();
00344         m_choice = e_Normalize;
00345     }
00346 }
00347 
00348 // helper methods
00349 
00350 // type info
00351 BEGIN_NAMED_CHOICE_INFO("", CApad_Base::C_E_Apad)
00352 {
00353     SET_INTERNAL_NAME("apad.apad", "E");
00354     SET_CHOICE_MODULE("linkout");
00355     ADD_NAMED_BUF_CHOICE_VARIANT("_CharData", m_string, STD, (NCBI_NS_STD::string))->SetNoPrefix()->SetNotag();
00356     ADD_NAMED_REF_CHOICE_VARIANT("pad", m_object, CPad)->SetNoPrefix();
00357     ADD_NAMED_REF_CHOICE_VARIANT("apad", m_object, CApad)->SetNoPrefix();
00358     ADD_NAMED_REF_CHOICE_VARIANT("subs", m_object, CSubs)->SetNoPrefix();
00359     ADD_NAMED_REF_CHOICE_VARIANT("toupper", m_object, CToupper)->SetNoPrefix();
00360     ADD_NAMED_REF_CHOICE_VARIANT("tolower", m_object, CTolower)->SetNoPrefix();
00361     ADD_NAMED_REF_CHOICE_VARIANT("strip", m_object, CStrip)->SetNoPrefix();
00362     ADD_NAMED_REF_CHOICE_VARIANT("normalize", m_object, CNormalize)->SetNoPrefix();
00363 }
00364 END_CHOICE_INFO
00365 
00366 // constructor
00367 CApad_Base::C_E_Apad::C_E_Apad(void)
00368     : m_choice(e_not_set)
00369 {
00370 }
00371 
00372 // destructor
00373 CApad_Base::C_E_Apad::~C_E_Apad(void)
00374 {
00375     Reset();
00376 }
00377 
00378 
00379 void CApad_Base::ResetAttlist(void)
00380 {
00381     if ( !m_Attlist ) {
00382         m_Attlist.Reset(new TAttlist());
00383         return;
00384     }
00385     (*m_Attlist).Reset();
00386 }
00387 
00388 void CApad_Base::SetAttlist(CApad_Base::TAttlist& value)
00389 {
00390     m_Attlist.Reset(&value);
00391 }
00392 
00393 void CApad_Base::ResetApad(void)
00394 {
00395     m_Apad.clear();
00396     m_set_State[0] &= ~0xc;
00397 }
00398 
00399 void CApad_Base::Reset(void)
00400 {
00401     ResetAttlist();
00402     ResetApad();
00403 }
00404 
00405 BEGIN_NAMED_BASE_CLASS_INFO("apad", CApad)
00406 {
00407     SET_CLASS_MODULE("linkout");
00408     ADD_NAMED_REF_MEMBER("Attlist", m_Attlist, C_Attlist)->SetNoPrefix()->SetAttlist();
00409     ADD_NAMED_MEMBER("apad", m_Apad, STL_list, (STL_CRef, (CLASS, (C_E_Apad))))->SetOptional()->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix()->SetNotag();
00410     info->RandomOrder();
00411 }
00412 END_CLASS_INFO
00413 
00414 // constructor
00415 CApad_Base::CApad_Base(void)
00416 {
00417     memset(m_set_State,0,sizeof(m_set_State));
00418     if ( !IsAllocatedInPool() ) {
00419         ResetAttlist();
00420     }
00421 }
00422 
00423 // destructor
00424 CApad_Base::~CApad_Base(void)
00425 {
00426 }
00427 
00428 
00429 
00430 END_linkout_SCOPE // namespace linkout::
00431 
Modified on Wed May 23 12:52:32 2012 by modify_doxy.py rev. 337098