00001 /***************************** License ********************************** 00002 00003 Copyright (C) 2008 by Communicative Machines 00004 http://www.cmlabs.com All rights reserved. 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Lesser General Public 00008 License as published by the Free Software Foundation; either 00009 version 2.1 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Lesser General Public License for more details. 00015 00016 You should have received a copy of the GNU Lesser General Public 00017 License along with this library; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 00020 ************************************************************************/ 00021 00022 00023 // Dictionary.h: interface for the ObjectDictionary class. 00024 // 00025 ////////////////////////////////////////////////////////////////////// 00026 00027 #if !defined(AFX_DICTIONARY_H__F779901A_22FC_4BBF_B741_54E6987384DE__INCLUDED_) 00028 #define AFX_DICTIONARY_H__F779901A_22FC_4BBF_B741_54E6987384DE__INCLUDED_ 00029 00030 #if _MSC_VER > 1000 00031 #pragma once 00032 #endif // _MSC_VER > 1000 00033 00034 #include "Collection.h" 00035 00036 namespace cmlabs { 00037 00038 class Dictionary; 00039 class Dictionary : public CollectionBase 00040 { 00041 public: 00042 Dictionary(); 00043 Dictionary(const JString& xml); 00044 Dictionary(XMLNode *node); 00045 virtual ~Dictionary(); 00046 Dictionary(const Dictionary &c); 00047 const Dictionary& operator = (const Dictionary& c); 00048 bool addAll(const CollectionBase* c); 00049 bool addAll(const CollectionBase& c); 00050 00051 bool contains(const JString& key) const; 00052 bool containsIgnoreCase(const JString& key) const; 00053 00054 JString get(int pos); 00055 JString get(int pos) const; 00056 JString get(const JString& key) const; 00057 JString take(int pos); 00058 JString take(const JString& key); 00059 JString getIgnoreCase(const JString& key) const; 00060 JString operator [](int pos) const; 00061 JString operator [](const JString& key) const; 00062 Collection getAllKeys(); 00063 00064 bool put(const JString& key, const JString& value); 00065 bool remove(const JString& key); 00066 bool remove(int pos); 00067 bool putFirst(const JString& key, const JString& value); 00068 bool putLast(const JString& key, const JString& value); 00069 bool putAfter(int pos, const JString& key, const JString& value); 00070 00071 JString getFirst(); 00072 JString getLast(); 00073 JString getNext(); 00074 JString getPrevious(); 00075 00076 int getPos(const JString& value) const; 00077 int getPosKey(const JString& key) const; 00078 00079 JString getKey(int pos); 00080 JString getKey(int pos) const; 00081 JString getFirstKey(); 00082 JString getLastKey(); 00083 JString getNextKey(); 00084 JString getPreviousKey(); 00085 00086 bool removeNoDelete(int pos); 00087 bool removeAllNoDelete(); 00088 void noDelete(); 00089 void doDelete(); 00090 00091 bool unitTest(); 00092 }; 00093 00094 } // namespace cmlabs 00095 00096 #endif // !defined(AFX_DICTIONARY_H__F779901A_22FC_4BBF_B741_54E6987384DE__INCLUDED_)