Tizen 2.0 Release
[framework/web/wrt-commons.git] / tests / dpl / localization / mockup_include / dpl / wrt-dao-rw / widget_dao.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16 /**
17  * This file contains the declaration of widget dao class.
18  *
19  * @file    widget_dao_read_only.h
20  * @author  Yang Jie (jie2.yang@samsung.com)
21  * @author  Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
22  * @author  Pawel Sikorski (p.sikorski@samsung.com)
23  * @version 1.0
24  * @brief   This file contains the declaration of widget dao
25  */
26
27 #ifndef _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
28 #define _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
29
30 #include <time.h>
31
32 #include <list>
33 #include <map>
34 #include <set>
35 #include <string>
36
37 #include <dpl/string.h>
38 #include <dpl/exception.h>
39 #include <dpl/optional_typedefs.h>
40
41 #include <dpl/wrt-dao-ro/common_dao_types.h>
42 //#include "../wrt-dao-ro/common_dao_types.h"
43
44 typedef DPL::OptionalString WidgetGUID;
45
46 namespace ConfigParserData {
47
48 struct Icon
49 {
50     Icon(const DPL::String& src) : src(src)
51     {
52     }
53     DPL::String src;
54     DPL::OptionalInt width;
55     DPL::OptionalInt height;
56     bool operator==(const Icon&) const;
57     bool operator!=(const Icon&) const;
58     bool operator >(const Icon&) const;
59     bool operator>=(const Icon&) const;
60     bool operator <(const Icon&) const;
61     bool operator<=(const Icon&) const;
62 };
63 } // namespace ConfigParserData
64 namespace WrtDB {
65
66 typedef std::list<DPL::String> StringList;
67
68 struct WidgetLocalizedInfo
69 {
70     DPL::OptionalString name;
71     DPL::OptionalString shortName;
72     DPL::OptionalString description;
73     DPL::OptionalString license;
74     DPL::OptionalString licenseHref;
75 };
76
77 typedef std::list<DPL::String> LanguageTagList;
78
79 class WidgetDAO
80 {
81   public:
82     /**
83      * WidgetDAO Exception classes
84      */
85     class Exception
86     {
87       public:
88         DECLARE_EXCEPTION_TYPE(DPL::Exception, Base)
89         DECLARE_EXCEPTION_TYPE(Base, DatabaseError)
90         DECLARE_EXCEPTION_TYPE(Base, ReadOnlyProperty)
91         DECLARE_EXCEPTION_TYPE(Base, GUIDisNull)
92         DECLARE_EXCEPTION_TYPE(Base, UnexpectedEmptyResult)
93         DECLARE_EXCEPTION_TYPE(Base, WidgetNotExist)
94         DECLARE_EXCEPTION_TYPE(Base, AlreadyRegistered)
95     };
96
97   protected:
98     DbWidgetHandle m_widgetHandle;
99  
100   public:
101     struct WidgetLocalizedIconRow
102     {
103         int appId;
104         int iconId;
105         DPL::String widgetLocale;
106     };
107     typedef std::list<WidgetLocalizedIconRow> WidgetLocalizedIconList;
108
109     struct WidgetIconRow
110     {
111         int iconId;
112         int appId;
113         DPL::String iconSrc;
114         DPL::OptionalInt iconWidth;
115         DPL::OptionalInt iconHeight;
116     };
117     typedef std::list<WidgetIconRow> WidgetIconList;
118
119     struct WidgetStartFileRow
120     {
121         int startFileId;
122         int appId;
123         DPL::String src;
124     };
125     typedef std::list<WidgetStartFileRow> WidgetStartFileList;
126
127     struct WidgetLocalizedStartFileRow
128     {
129         int startFileId;
130         int appId;
131         DPL::String widgetLocale;
132         DPL::String type;
133         DPL::String encoding;
134     };
135     typedef std::list<WidgetLocalizedStartFileRow> LocalizedStartFileList;
136
137
138     /**
139      * This is a constructor.
140      *
141      * @param[in] widgetHandle application id of widget.
142      */
143     WidgetDAO(DbWidgetHandle widgetHandle)
144       : m_widgetHandle(widgetHandle)
145     {}
146
147     /**
148      * Destructor
149      */
150     virtual ~WidgetDAO(){}
151
152     /**
153      * This method returns widget handle(m_widgetHandle).
154      *
155      * @return widget handle(m_widgetHandle).
156      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
157      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in DB table.
158      */
159     DbWidgetHandle getHandle() const { return m_widgetHandle; }
160     DbWidgetHandle getHandle(const WidgetGUID GUID) const;
161     static DbWidgetHandle getHandle(const DPL::String pkgName);
162
163     /**
164      * This method returns the root directory of widget resource.
165      *
166      * @return path name of root directory.
167      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
168      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
169      * DB table.
170      */
171     DPL::String getPath() const;
172     void setPath(const DPL::String &path) const;
173
174     /**
175      * This method returns the defaultlocale for the widget.
176      *
177      * @return defaultlocale
178      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
179      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
180      *  DB table.
181      */
182     DPL::OptionalString getDefaultlocale() const;
183
184     /**
185      * This method returns list of localized icons files;
186      *
187      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
188      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
189      *  DB table.
190      */
191     WidgetLocalizedIconList getLocalizedIconList() const;
192
193     /**
194      * This method returns list of icons files;
195      *
196      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
197      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
198      *  DB table.
199      */
200     WidgetIconList getIconList() const;
201
202     /**
203      * This method returns list of localized start files;
204      *
205      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
206      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
207      *  DB table.
208      */
209     LocalizedStartFileList getLocalizedStartFileList() const;
210     void setLocalizedStartFileList(const LocalizedStartFileList &list) const;
211     /**
212      * This method returns list of start files;
213      *
214      * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
215      * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
216      *  DB table.
217      */
218     WidgetStartFileList getStartFileList() const;
219     void setStartFileList(const WidgetStartFileList &list) const;
220
221     WidgetLocalizedInfo getLocalizedInfo(const DPL::String& languageTag) const;
222   protected:
223     static std::map<DbWidgetHandle,WidgetStartFileList> s_startFileMap;
224     static std::map<DbWidgetHandle,LocalizedStartFileList> s_localizedStartFileMap;
225     static std::map<DbWidgetHandle,DPL::String> s_pathMap;
226 };
227
228 } // namespace WrtDB
229
230 #endif // _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
231