00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifdef HAVE_CONFIG_H
00024 #include <config.h>
00025 #endif
00026
00027 #ifndef XMLDAO_H
00028 #define XMLDAO_H 1
00029
00030 #include <cassert>
00031 #include <libxml++/libxml++.h>
00032 #include "kitlistdao.hpp"
00033 #include "kitmodel.hpp"
00034
00035 #define NYI assert(false == "Method not implemented")
00036
00037
00042 class XmlDao : public KitListDao {
00043 private:
00044
00045 bool add_item_to_dom(ModelItem& item);
00046
00047 bool add_category_item_to_dom(Item& item);
00048
00049 bool add_category_to_dom(ModelCategory& item);
00050
00051
00052 protected:
00054 Glib::ustring m_filename;
00056 xmlpp::Element* m_items_node;
00058 xmlpp::Element* m_categories_node;
00060 xmlpp::Element* m_cat_items_node;
00062 long m_max_item_id;
00064 long m_max_category_id;
00065
00066 public :
00067 XmlDao(int verbose = 0) : KitListDao(verbose),
00068 m_filename(""),
00069 m_max_item_id(-1),
00070 m_max_category_id(-1),
00071 m_categories_node(NULL),
00072 m_items_node(NULL) {}
00073
00074 KitModel* get_model();
00075
00076 KitModel* get_model(Glib::ustring filename) { set_filename(filename); return get_model(); }
00077
00078 void save_model(KitModel* model);
00079
00086 void save_model(KitModel* model, Glib::ustring filename) { set_filename(filename); save_model(model); }
00087
00088 Category* get_category(long cat_id, item_choice choice) { NYI; }
00089
00090 ItemContainer* get_all_items(item_choice choice) { NYI; }
00091
00092 long add_item(const std::string name) { NYI; }
00093
00094 long add_item(const std::string name, long cat_id) { NYI; }
00095
00096 void append_items_to_category(long to_cat_id, long from_cat_id, item_choice choice) { NYI; }
00097
00098 void associate_item_with_category(long id, long cat_id) { NYI; }
00099
00100 CategoryContainer get_categories() { NYI; }
00101
00102 long new_category(const std::string name) { NYI; }
00103
00104 void delete_item(long id) { NYI; }
00105
00106 void update_item_checked_state(ItemContainer& items) { NYI; }
00107
00108 void remove_item_from_category(long id, long cat_id) { NYI; }
00109
00110 long get_next_item_id();
00111
00112 long get_next_category_id();
00113
00114 void delete_category(long id) { NYI; }
00115
00116 void set_item_flag(long id) { NYI; }
00117
00118 void unset_item_flag(long id) { NYI; }
00119
00120 void set_category_flag(long id) { NYI; }
00121
00122 void unset_category_flag(long id) { NYI; }
00123
00124 void set_all_flags() { NYI; }
00125
00126 void unset_all_flags() { NYI; }
00127
00128 void set_filename(Glib::ustring filename) { m_filename = filename; }
00129
00138 virtual bool require_filename() { return true; }
00139
00140 };
00141
00142 #endif // XMLDAO_H