2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 * This file contains the declaration of widget dao class.
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)
24 * @brief This file contains the declaration of widget dao
27 #ifndef _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
28 #define _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_
37 #include <dpl/string.h>
38 #include <dpl/exception.h>
39 #include <dpl/optional_typedefs.h>
41 #include <dpl/wrt-dao-ro/common_dao_types.h>
43 typedef DPL::OptionalString WidgetGUID;
45 namespace ConfigParserData {
49 Icon(const DPL::String& src) : src(src)
53 DPL::OptionalInt width;
54 DPL::OptionalInt height;
55 bool operator==(const Icon&) const;
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;
62 } // namespace ConfigParserData
65 typedef std::list<DPL::String> StringList;
67 struct WidgetLocalizedInfo
69 DPL::OptionalString name;
70 DPL::OptionalString shortName;
71 DPL::OptionalString description;
72 DPL::OptionalString license;
73 DPL::OptionalString licenseHref;
76 typedef std::list<DPL::String> LanguageTagList;
82 * WidgetDAO Exception classes
87 DECLARE_EXCEPTION_TYPE(DPL::Exception, Base)
88 DECLARE_EXCEPTION_TYPE(Base, DatabaseError)
89 DECLARE_EXCEPTION_TYPE(Base, ReadOnlyProperty)
90 DECLARE_EXCEPTION_TYPE(Base, GUIDisNull)
91 DECLARE_EXCEPTION_TYPE(Base, UnexpectedEmptyResult)
92 DECLARE_EXCEPTION_TYPE(Base, WidgetNotExist)
93 DECLARE_EXCEPTION_TYPE(Base, AlreadyRegistered)
97 DbWidgetHandle m_widgetHandle;
100 struct WidgetLocalizedIconRow
104 DPL::String widgetLocale;
106 typedef std::list<WidgetLocalizedIconRow> WidgetLocalizedIconList;
113 DPL::OptionalInt iconWidth;
114 DPL::OptionalInt iconHeight;
116 typedef std::list<WidgetIconRow> WidgetIconList;
118 struct WidgetStartFileRow
124 typedef std::list<WidgetStartFileRow> WidgetStartFileList;
126 struct WidgetLocalizedStartFileRow
130 DPL::String widgetLocale;
132 DPL::String encoding;
134 typedef std::list<WidgetLocalizedStartFileRow> LocalizedStartFileList;
138 * This is a constructor.
140 * @param[in] widgetHandle application id of widget.
142 WidgetDAO(DbWidgetHandle widgetHandle)
143 : m_widgetHandle(widgetHandle)
149 virtual ~WidgetDAO(){}
152 * This method returns widget handle(m_widgetHandle).
154 * @return widget handle(m_widgetHandle).
155 * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
156 * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in DB table.
158 DbWidgetHandle getHandle() const { return m_widgetHandle; }
159 DbWidgetHandle getHandle(const WidgetGUID GUID) const;
160 static DbWidgetHandle getHandle(const DPL::String pkgName);
163 * This method returns the root directory of widget resource.
165 * @return path name of root directory.
166 * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
167 * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
170 DPL::String getPath() const;
171 void setPath(const DPL::String &path) const;
174 * This method returns the defaultlocale for the widget.
176 * @return defaultlocale
177 * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
178 * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
181 DPL::OptionalString getDefaultlocale() const;
184 * This method returns list of localized icons files;
186 * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
187 * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
190 WidgetLocalizedIconList getLocalizedIconList() const;
193 * This method returns list of icons files;
195 * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
196 * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
199 WidgetIconList getIconList() const;
202 * This method returns list of localized start files;
204 * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
205 * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
208 LocalizedStartFileList getLocalizedStartFileList() const;
209 void setLocalizedStartFileList(const LocalizedStartFileList &list) const;
211 * This method returns list of start files;
213 * @exception WRT_CONF_ERR_EMDB_FAILURE - Fail to query DB table.
214 * @exception WRT_CONF_ERR_EMDB_NO_RECORD - Can not find matching records in
217 WidgetStartFileList getStartFileList() const;
218 void setStartFileList(const WidgetStartFileList &list) const;
220 WidgetLocalizedInfo getLocalizedInfo(const DPL::String& languageTag) const;
222 static std::map<DbWidgetHandle,WidgetStartFileList> s_startFileMap;
223 static std::map<DbWidgetHandle,LocalizedStartFileList> s_localizedStartFileMap;
224 static std::map<DbWidgetHandle,DPL::String> s_pathMap;
229 #endif // _WRT_SRC_CONFIGURATION_WIDGET_DAO_READ_ONLY_H_