2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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.
18 * @file FLclDateTimeSymbols.h
19 * @brief This is the header file for the %DateTimeSymbols class.
21 * This header file contains the declarations of the %DateTimeSymbols class.
24 #ifndef _FLCL_DATE_TIME_SYMBOLS_H_
25 #define _FLCL_DATE_TIME_SYMBOLS_H_
27 #include <FBaseColArrayList.h>
28 #include <FLclLocale.h>
29 #include <FLclCalendar.h>
31 namespace Tizen { namespace Locales
35 * @class DateTimeSymbols
36 * @brief This class provides methods for date and time symbols.
40 * The %DateTimeSymbols class is used for encapsulating localizable date-time formatting data, such as the names of the months,
41 * the days of the week, and the time zone data. It is also used by DateTimeFormatter.
42 * %DateTimeSymbols specifies the exact character strings to use for various parts of a date or time. For example, the names of
43 * the months and days of the week, the strings for AM and PM, and the day of the week considered to be the first day of the week.
45 * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/locales/datetime_formatter.htm">Date and Time Formatter</a>.
47 * @see Tizen::Locales::DateTimeFormatter
50 class _OSP_EXPORT_ DateTimeSymbols
51 : public Tizen::Base::Object
56 * This is the default constructor for this class. @n
57 * The object is not fully constructed after this constructor is called. For full construction, the Construct() method
58 * must be called right after calling this constructor.
62 DateTimeSymbols(void);
65 * This is the destructor for this class. @n
66 * This destructor overrides Tizen::Base::Object::~Object().
70 virtual ~DateTimeSymbols(void);
74 * Initializes this instance of %DateTimeSymbols with the specified @c locale and @c calendarType.
77 * @brief <i> [Compatibility] </i>
81 * @compatibility This method has compatibility issues with OSP compatible applications. @n
82 * For more information, see @ref CompDateTimeSymbolsConstructPage "here".
85 * @return An error code
86 * @param[in] locale The locale
87 * @param[in] calendarType The calendar type
88 * @exception E_SUCCESS The method is successful.
89 * @exception E_OUT_OF_MEMORY The memory is insufficient.
90 * @exception E_INVALID_ARG The specified @c locale or @c calendarType is invalid.
92 result Construct(const Locale& locale, CalendarType calendarType = CALENDAR_GREGORIAN);
96 * Initializes this instance of %DateTimeSymbols with the specified parameter. @n
97 * This method loads the format data from the resources for the default locale into the default calendar.
100 * @brief <i> [Compatibility] </i>
104 * @compatibility This method has compatibility issues with OSP compatible applications. @n
105 * For more information, see @ref CompDateTimeSymbolsConstructPage "here".
108 * @return An error code
109 * @param[in] calendarType The calendar type
110 * @exception E_SUCCESS The method is successful.
111 * @exception E_OUT_OF_MEMORY The memory is insufficient.
112 * @exception E_INVALID_ARG The specified @c calendarType is invalid.
114 result Construct(CalendarType calendarType);
118 * @page CompDateTimeSymbolsConstructPage Compatibility for Construct()
119 * @section CompDateTimeSymbolsConstructIssueSection Issues
120 * Implementation of this method in OSP compatible applications has the following issue: @n
121 * -# The method returns E_UNSUPPORTED_OPERATION if the @c calendarType is invalid.
123 * @section CompDateTimeSymbolsConstructSolutionSection Resolutions
124 * This issue has been resolved in Tizen.
125 * @par When working in Tizen:
126 * -# The method returns E_INVALID_ARG if the @c calendarType is invalid.
132 * Initializes this instance of %DateTimeSymbols with the specified parameter.
136 * @return An error code
137 * @param[in] other An instance of %DateTimeSymbols
138 * @exception E_SUCCESS The method is successful.
139 * @exception E_OUT_OF_MEMORY The memory is insufficient.
141 result Construct(const DateTimeSymbols& other);
145 * Gets the list of the era strings. @n
146 * For example: "AD" and "BC".
150 * @return A pointer to the list of era strings, @n
151 * else @c null if this instance has not been constructed as yet
154 const Tizen::Base::Collection::IList* GetEras(void) const;
158 * Sets the era strings. @n
159 * Multiple strings can be concatenated using '|'. For example: "AD|BC".
163 * @return An error code
164 * @param[in] eras The era strings concatenated using '|'
165 * @exception E_SUCCESS The method is successful.
166 * @exception E_INVALID_ARG The specified @c eras contains an invalid value.
169 result SetEras(const Tizen::Base::String& eras);
173 * Gets the list of the month name strings. @n
174 * For example: "January", "February".
178 * @return A pointer to the list of month name strings, @n
179 * else @c null if this instance has not been constructed as yet
182 const Tizen::Base::Collection::IList* GetMonths(void) const;
186 * Sets the month name strings concatenated using '|'. @n
187 * For example: "January|February|March|April|May|June|July|August|September|October|November|December".
191 * @return An error code
192 * @param[in] months The month strings concatenated using '|'
193 * @exception E_SUCCESS The method is successful.
194 * @exception E_INVALID_ARG The specified @c months contains an invalid value.
197 result SetMonths(const Tizen::Base::String& months);
201 * Gets the list of the short month name strings. @n
202 * For example: "Jan", "Feb".
206 * @return A pointer to the list of short month name strings, @n
207 * else @c null if this instance has not been constructed as yet
208 * @see SetShortMonths()
210 const Tizen::Base::Collection::IList* GetShortMonths(void) const;
214 * Sets the short month name strings concatenated using '|'. @n
215 * For example: "Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec".
218 * @return An error code
219 * @param[in] shortMonths The short month name strings concatenated using '|'
220 * @exception E_SUCCESS The method is successful.
221 * @exception E_INVALID_ARG The specified @c shortMonths contains an invalid value. @n
222 * See the valid string in the description of the method.
223 * @see GetShortMonths()
225 result SetShortMonths(const Tizen::Base::String& shortMonths);
229 * Gets the list of the weekday name strings. @n
230 * For example: "Sunday", "Monday".
234 * @return A pointer to the list of weekday name strings, @n
235 * else @c null if this instance has not been constructed as yet
238 const Tizen::Base::Collection::IList* GetWeekdays(void) const;
242 * Sets the weekday name strings concatenated by '|'. @n
243 * For example: "Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday".
247 * @return An error code
248 * @param[in] weekdays The weekday name strings concatenated using '|'
249 * @exception E_SUCCESS The method is successful.
250 * @exception E_INVALID_ARG The specified @c weekdays contains an invalid value.
253 result SetWeekdays(const Tizen::Base::String& weekdays);
257 * Gets the list of the short weekday name strings. @n
258 * For example: "Sun", "Mon".
262 * @return A pointer to the list of short weekday name strings, @n
263 * else @c null if this instance has not been constructed as yet
264 * @see SetShortWeekdays()
266 const Tizen::Base::Collection::IList* GetShortWeekdays(void) const;
270 * Sets the weekday name strings concatenated using '|'. @n
271 * For example: "Sun|Mon|Tue|Wed|Thu|Fri|Sat".
275 * @return An error code
276 * @param[in] shortWeekdays The short weekday strings concatenated using '|'
277 * @exception E_SUCCESS The method is successful.
278 * @exception E_INVALID_ARG The specified @c shortWeekdays contains an invalid value.
279 * @see GetShortWeekdays()
281 result SetShortWeekdays(const Tizen::Base::String& shortWeekdays);
285 * Gets the list of the AM/PM strings. @n
286 * For example: "AM" and "PM".
290 * @return A pointer to the list of AM/PM strings, @n
291 * else @c null if this instance has not been constructed as yet
294 const Tizen::Base::Collection::IList* GetAmPm(void) const;
298 * Sets the AM/PM strings concatenated using '|'. @n
299 * For example: "AM|PM".
303 * @return An error code
304 * @param[in] amPm The AM/PM strings concatenated using '|'
305 * @exception E_SUCCESS The method is successful.
306 * @exception E_INVALID_ARG The specified @c amPm contains an invalid value.
309 result SetAmPm(const Tizen::Base::String& amPm);
313 * Gets the name of the time zone. @n
314 * For example: "Eastern European Time (EET)", "Eastern European Summer Time (EEST)".
318 * @return The time zone name, @n
319 * else an empty string if @c timeZoneId is not found @n
320 * or the time zone name of @c timeZoneStyle is not found.
321 * @param[in] timeZoneId The time zone ID
322 * @param[in] timeZoneStyle The parameter may contain one of the following time zone styles:
323 * @li The normal time zone (0)
324 * @li The abbreviated time zone (1)
325 * @li The normal summer time zone (2)
326 * @li The abbreviated summer time zone (3)
327 * @see SetTimeZoneName()
328 * @see AddTimeZoneName()
330 Tizen::Base::String GetTimeZoneName(Tizen::Base::String& timeZoneId, int timeZoneStyle = 0) const;
334 * Sets the time zone name string related to the specified time zone ID.
338 * @return An error code
339 * @param[in] timeZoneId The time zone ID @n
340 * For example: "Europe/Helsinki".
341 * @param[in] concatenatedTimeZoneName The concatenated time zone name @n
342 * For example, "Eastern European Time|EET|Eastern European Summer Time|EEST".
343 * @exception E_SUCCESS The method is successful.
344 * @exception E_INVALID_ARG The specified @c timeZoneId or @c concatenatedTimeZoneName contains an invalid value.
345 * @exception E_OBJ_NOT_FOUND The specified @c timeZoneId is not found.
346 * @see GetTimeZoneName()
347 * @see AddTimeZoneName()
349 result SetTimeZoneName(const Tizen::Base::String& timeZoneId, const Tizen::Base::String& concatenatedTimeZoneName);
353 * Adds the time zone name that is related to time zone ID.
357 * @return An error code
358 * @param[in] timeZoneId The time zone ID @n
359 * For example: "Europe/Helsinki".
360 * @param[in] concatenatedTimeZoneName The concatenated time zone name @n
361 * For example, "Eastern European Time|EET|Eastern European Summer Time|EEST".
362 * @exception E_SUCCESS The method is successful.
363 * @exception E_INVALID_ARG A specified input parameter is invalid.
364 * @exception E_OBJ_ALREADY_EXIST The specified @c timeZoneId already exists.
365 * @see GetTimeZoneName()
366 * @see SetTimeZoneName()
368 result AddTimeZoneName(const Tizen::Base::String& timeZoneId, const Tizen::Base::String& concatenatedTimeZoneName);
372 * The implementation of this copy constructor is intentionally blank and declared as private to
373 * prohibit copying of objects.
375 DateTimeSymbols(const DateTimeSymbols& dateTimeSymbols);
378 * The implementation of this copy assignment operator is intentionally blank and declared as private
379 * to prohibit copying of objects.
381 DateTimeSymbols& operator =(const DateTimeSymbols& dateTimeSymbols);
383 friend class _DateTimeSymbolsImpl;
384 class _DateTimeSymbolsImpl* __pDateTimeSymbolsImpl;
386 }; // DateTimeSymbols
390 #endif //_FLCL_DATE_TIME_SYMBOLS_H_