00001 #ifndef JXDICTIONARY_H_ 00002 #define JXDICTIONARY_H_ 00003 00004 #include "UMString.h" 00005 #include "XMLReader.h" 00006 #include "Flexform.h" 00007 #include <map> 00008 #include <list> 00009 00010 class JXDictionaryEntry{ 00011 00012 UMString m_kanji; 00013 UMString m_lesung; 00014 UMString m_engl; 00015 UMString m_dt; 00016 string m_gram_array[MAXFLEXART]; 00017 int m_gram_count; 00018 public: 00019 JXDictionaryEntry(); 00020 ~JXDictionaryEntry(); 00021 00023 bool SetKanji(UMString& umstring){m_kanji = umstring; return true;}; 00025 bool SetGram(UMString& umstring); 00027 bool SetLesung(UMString& umstring){ m_lesung = umstring; return true;}; 00029 bool SetEngl(UMString& umstring){ m_engl = umstring; return true; }; 00031 bool SetDt(UMString& umstring){ m_dt = umstring; return true; }; 00032 00033 bool isInGram(string& str); 00034 00036 UMString* getKanji(){ return &m_kanji;}; 00038 string getKanjiString(){ return m_kanji.GetStringMB();}; 00040 UMString* getLesung(){ return &m_lesung;}; 00042 string getLesungString(){ return m_lesung.GetStringMB();}; 00044 UMString* getEngl(){ return &m_engl;}; 00046 string getEnglString(){return m_engl.GetStringMB();}; 00048 int getGramCount(){ return m_gram_count;}; 00050 string* getGramStringArray(){ return m_gram_array;}; 00052 UMString* getDt(){ return &m_dt;}; 00054 string getDtString(){ return m_dt.GetStringMB();}; 00055 00056 }; 00057 00058 class JXDictionary{ 00059 XMLReader* m_reader; 00061 multimap<string, long> m_XDictionary; 00062 typedef multimap<string, long>::iterator MI; 00063 public: 00064 JXDictionary(char*); 00065 ~JXDictionary(); 00066 bool MapDictionary(); 00067 bool loadDictionary(); 00068 stack<JXDictionaryEntry*> LookUp(const string); 00069 bool SetGram(UMString& ); 00070 }; 00071 00072 #endif