1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef GEN_INFO_HXX 29 #define GEN_INFO_HXX 30 31 32 #include "simstr.hxx" 33 #include <string.h> 34 35 36 37 class List_GenericInfo; 38 39 40 /** Holds generic informations in a simple hierarchical format. 41 */ 42 class GenericInfo 43 { 44 public: 45 // LIFECFYCLE 46 GenericInfo( 47 const Simstr & i_sKey, 48 const Simstr & i_sValue = Simstr::null_(), 49 const Simstr & i_sComment = Simstr::null_() ); 50 GenericInfo( 51 const GenericInfo & i_rInfo ); 52 ~GenericInfo(); 53 54 // OPERATORS 55 GenericInfo & operator=( 56 const GenericInfo & i_rInfo ); 57 bool operator<( 58 const GenericInfo & i_rInfo ) const 59 #ifdef UNX 60 { return strcasecmp(sKey.str(),i_rInfo.sKey.str()) < 0; } 61 #else 62 { return stricmp(sKey.str(),i_rInfo.sKey.str()) < 0; } 63 #endif 64 // INFO 65 const Simstr & Key() const { return sKey; } 66 const Simstr & Value() const { return sValue; } 67 const Simstr & Comment() const { return sComment; } 68 bool HasSubList() const { return dpSubList != 0; } 69 70 const List_GenericInfo & 71 SubList() const { return HasSubList() ? *dpSubList : CreateMyList(); } 72 // ACCESS 73 List_GenericInfo & 74 SubList() { return HasSubList() ? *dpSubList : CreateMyList(); } 75 76 private: 77 /// @precond dpSubList == 0 . 78 List_GenericInfo & CreateMyList() const; 79 80 // DATA 81 Simstr sKey; 82 Simstr sValue; 83 Simstr sComment; 84 List_GenericInfo * dpSubList; /// Owned by this object. 85 }; 86 87 88 #endif 89 90