1 #ifndef CHOICETYPE_HPP 2 #define CHOICETYPE_HPP 3 4 /* $Id: choicetype.hpp 546704 2017-09-20 18:15:56Z gouriano $ 5 * =========================================================================== 6 * 7 * PUBLIC DOMAIN NOTICE 8 * National Center for Biotechnology Information 9 * 10 * This software/database is a "United States Government Work" under the 11 * terms of the United States Copyright Act. It was written as part of 12 * the author's official duties as a United States Government employee and 13 * thus cannot be copyrighted. This software/database is freely available 14 * to the public for use. The National Library of Medicine and the U.S. 15 * Government have not placed any restriction on its use or reproduction. 16 * 17 * Although all reasonable efforts have been taken to ensure the accuracy 18 * and reliability of the software and data, the NLM and the U.S. 19 * Government do not and cannot warrant the performance or results that 20 * may be obtained by using this software or data. The NLM and the U.S. 21 * Government disclaim all warranties, express or implied, including 22 * warranties of performance, merchantability or fitness for any particular 23 * purpose. 24 * 25 * Please cite the author in any work or product based on this material. 26 * 27 * =========================================================================== 28 * 29 * Author: Eugene Vasilchenko 30 * 31 * File Description: 32 * Type description of CHOICE type 33 * 34 */ 35 36 #include "blocktype.hpp" 37 38 BEGIN_NCBI_SCOPE 39 40 class CChoiceDataType : public CDataMemberContainerType 41 { 42 typedef CDataMemberContainerType CParent; 43 public: 44 virtual void PrintASN(CNcbiOstream& out, int indent) const override; 45 void PrintJSONSchema(CNcbiOstream& out, int indent, list<string>& required, bool contents_only=false) const override; 46 47 virtual void FixTypeTree(void) const override; 48 virtual bool CheckValue(const CDataValue& value) const override; 49 50 virtual const char* XmlMemberSeparator(void) const override; 51 52 virtual CTypeInfo* CreateTypeInfo(void) override; 53 virtual AutoPtr<CTypeStrings> GenerateCode(void) const override; 54 virtual AutoPtr<CTypeStrings> GetRefCType(void) const override; 55 virtual AutoPtr<CTypeStrings> GetFullCType(void) const override; 56 virtual const char* GetASNKeyword(void) const override; 57 virtual string GetSpecKeyword(void) const override; 58 virtual const char* GetDEFKeyword(void) const override; 59 }; 60 61 END_NCBI_SCOPE 62 63 #endif 64