00001 /* 00002 ******************************************************************************* 00003 * 00004 * Copyright (C) 1998-1999, International Business Machines 00005 * Corporation and others. All Rights Reserved. 00006 * 00007 ******************************************************************************* 00008 * 00009 * File rbdata.h 00010 * 00011 * Modification History: 00012 * 00013 * Date Name Description 00014 * 06/11/99 stephen Creation. (Moved here from resbund.cpp) 00015 ******************************************************************************* 00016 */ 00017 00018 #ifndef RBDATA_H 00019 #define RBDATA_H 1 00020 00021 #include "unicode/utypes.h" 00022 #include "hash.h" 00023 #include "unicode/unistr.h" 00024 00031 class ResourceBundleData 00032 { 00033 public: 00034 virtual ~ResourceBundleData() {} 00035 virtual UClassID getDynamicClassID(void) const = 0; 00036 UErrorCode fCreationStatus; 00037 }; 00038 00040 class StringList : public ResourceBundleData 00041 { 00042 public: 00043 StringList(); 00044 StringList(UnicodeString* adopted, int32_t count); 00045 virtual ~StringList(); 00046 const UnicodeString& operator[](int32_t i) const; 00047 virtual UClassID getDynamicClassID(void) const; 00048 static UClassID getStaticClassID(void); 00049 00050 static UClassID fgClassID; 00051 int32_t fCount; 00052 UnicodeString *fStrings; 00053 }; 00054 00056 class String2dList : public ResourceBundleData 00057 { 00058 public: 00059 String2dList(); 00060 String2dList(UnicodeString** adopted, int32_t rowCount, int32_t colCount); 00061 virtual ~String2dList(); 00062 const UnicodeString& getString(int32_t rowIndex, int32_t colIndex); 00063 virtual UClassID getDynamicClassID(void) const; 00064 static UClassID getStaticClassID(void); 00065 00066 static UClassID fgClassID; 00067 int32_t fRowCount; 00068 int32_t fColCount; 00069 UnicodeString **fStrings; 00070 }; 00071 00076 class TaggedList : public ResourceBundleData 00077 { 00078 Hashtable *hash; 00079 00080 public: 00081 TaggedList(); 00082 virtual ~TaggedList(); 00083 00084 void put(const UnicodeString& tag, const UnicodeString& data); 00085 const UnicodeString* get(const UnicodeString& tag) const; 00086 UBool nextElement(const UnicodeString*& key, 00087 const UnicodeString*& value, 00088 int32_t& pos) const; 00089 int32_t count() const; 00090 00091 virtual UClassID getDynamicClassID(void) const; 00092 static UClassID getStaticClassID(void); 00093 00094 static UClassID fgClassID; 00095 }; 00096 00097 #endif