2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FLclDateTimeSymbols.cpp
20 * @brief This is the implementation file for DateTimeSymbols class.
23 #include <unique_ptr.h>
25 #include <FBaseSysLog.h>
26 #include <FApp_AppInfo.h>
27 #include <FLclDateTimeSymbols.h>
28 #include "FLcl_DateTimeSymbolsImpl.h"
31 using namespace Tizen::Base;
32 using namespace Tizen::Base::Collection;
33 using namespace Tizen::Base::Utility;
35 namespace Tizen { namespace Locales
39 /////////////////////////////////////////////////////////////////////////////////////////////////////
42 DateTimeSymbols::DateTimeSymbols(void)
43 : __pDateTimeSymbolsImpl(null)
47 DateTimeSymbols::~DateTimeSymbols(void)
49 delete __pDateTimeSymbolsImpl;
50 __pDateTimeSymbolsImpl = null;
54 DateTimeSymbols::AddTimeZoneName(const Tizen::Base::String& timeZoneId, const Tizen::Base::String& concatenatedTimeZoneName)
56 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
58 return __pDateTimeSymbolsImpl->AddTimeZoneName(timeZoneId, concatenatedTimeZoneName);
63 DateTimeSymbols::Construct(const Locale& locale, CalendarType calendarType)
65 SysAssertf(__pDateTimeSymbolsImpl == null,
66 "Already constructed! Calling Construct() twice or more on a same instance is not allowed for this class");
68 std::unique_ptr< _DateTimeSymbolsImpl > pDateTimeSymbolsImpl(new (std::nothrow) _DateTimeSymbolsImpl);
69 SysTryReturnResult(NID_LCL, pDateTimeSymbolsImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed");
71 result r = pDateTimeSymbolsImpl->Initialize(locale, calendarType);
74 if (Tizen::App::_AppInfo::GetApiVersion() == _API_VERSION_2_0 && Tizen::App::_AppInfo::IsOspCompat())
76 return E_UNSUPPORTED_OPERATION;
81 __pDateTimeSymbolsImpl = pDateTimeSymbolsImpl.release();
87 DateTimeSymbols::Construct(CalendarType calendarType)
89 // Object is not allowed to construct twice
90 SysAssertf(__pDateTimeSymbolsImpl == null,
91 "Already constructed! Calling Construct() twice or more on a same instance is not allowed for this class");
93 std::unique_ptr< _DateTimeSymbolsImpl > pDateTimeSymbolsImpl(new (std::nothrow) _DateTimeSymbolsImpl);
94 SysTryReturnResult(NID_LCL, pDateTimeSymbolsImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed");
96 result r = pDateTimeSymbolsImpl->Initialize(calendarType);
99 if (Tizen::App::_AppInfo::GetApiVersion() == _API_VERSION_2_0 && Tizen::App::_AppInfo::IsOspCompat())
101 return E_UNSUPPORTED_OPERATION;
103 return E_INVALID_ARG;
106 __pDateTimeSymbolsImpl = pDateTimeSymbolsImpl.release();
112 DateTimeSymbols::Construct(const DateTimeSymbols& other)
114 SysAssertf(__pDateTimeSymbolsImpl == null,
115 "Already constructed! Calling Construct() twice or more on a same instance is not allowed for this class");
117 if (other.__pDateTimeSymbolsImpl)
119 __pDateTimeSymbolsImpl = new (std::nothrow) _DateTimeSymbolsImpl;
120 SysTryReturnResult(NID_LCL, __pDateTimeSymbolsImpl != null, E_OUT_OF_MEMORY, "Memory allocation failed");
122 __pDateTimeSymbolsImpl->Set(other.__pDateTimeSymbolsImpl);
129 DateTimeSymbols::GetAmPm(void) const
131 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
132 return __pDateTimeSymbolsImpl->GetAmPm();
136 DateTimeSymbols::SetAmPm(const String& amPm)
138 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
139 return __pDateTimeSymbolsImpl->SetAmPm(amPm);
143 DateTimeSymbols::GetEras(void) const
145 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
146 return __pDateTimeSymbolsImpl->GetEras();
150 DateTimeSymbols::SetEras(const String& eras)
152 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
153 return __pDateTimeSymbolsImpl->SetEras(eras);
157 DateTimeSymbols::GetMonths(void) const
159 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
160 return __pDateTimeSymbolsImpl->GetMonths();
164 DateTimeSymbols::SetMonths(const String& months)
166 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
167 return __pDateTimeSymbolsImpl->SetMonths(months);
171 DateTimeSymbols::GetShortMonths(void) const
173 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");;
174 return __pDateTimeSymbolsImpl->GetShortMonths();
178 DateTimeSymbols::SetShortMonths(const String& shortMonths)
180 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
181 return __pDateTimeSymbolsImpl->SetShortMonths(shortMonths);
185 DateTimeSymbols::GetWeekdays(void) const
187 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
188 return __pDateTimeSymbolsImpl->GetWeekdays();
192 DateTimeSymbols::SetWeekdays(const String& weekdays)
194 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
195 return __pDateTimeSymbolsImpl->SetWeekdays(weekdays);
200 DateTimeSymbols::GetShortWeekdays(void) const
202 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
203 return __pDateTimeSymbolsImpl->GetShortWeekdays();
207 DateTimeSymbols::SetShortWeekdays(const String& shortWeekdays)
209 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
210 return __pDateTimeSymbolsImpl->SetShortWeekdays(shortWeekdays);
215 DateTimeSymbols::GetTimeZoneName(Tizen::Base::String& timeZoneId, int timeZoneStyle) const
217 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
218 return __pDateTimeSymbolsImpl->GetTimeZoneName(timeZoneId, timeZoneStyle);
223 DateTimeSymbols::SetTimeZoneName(const Tizen::Base::String& timeZoneId, const Tizen::Base::String& concatenatedTimeZoneName)
225 SysAssertf(__pDateTimeSymbolsImpl != null, "Not yet constructed! Construct() should be called before use.");
227 return __pDateTimeSymbolsImpl->SetTimeZoneName(timeZoneId, concatenatedTimeZoneName);