Modified an api call flow
[platform/framework/native/appfw.git] / src / locales / FLclDateTimeFormatter.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 //
17
18 /**
19  * @file        FLclDateTimeFormatter.cpp
20  * @brief       This is the implementation file for DateTimeFormatter class.
21  */
22
23 // Includes
24 #include <FBaseSysLog.h>
25 #include <FLclDateTimeFormatter.h>
26 #include <FLclNumberFormatter.h>
27 #include "FLcl_DateTimeFormatterImpl.h"
28
29 using namespace Tizen::Base;
30 using namespace Tizen::Base::Collection;
31 using namespace Tizen::Base::Utility;
32
33 namespace Tizen { namespace Locales
34 {
35 /////////////////////////////////////////////////////////////////////////////////////////////////////
36 // Static Methods
37
38 DateTimeFormatter::DateTimeFormatter(void)
39         : __pNumberFormat(null)
40         , __pCalendar(null)
41         , __pDateTimeFormatterImpl(null)
42 {
43 }
44
45 DateTimeFormatter::~DateTimeFormatter(void)
46 {
47         delete __pDateTimeFormatterImpl;
48 }
49
50 DateTimeFormatter*
51 DateTimeFormatter::CreateDateFormatterN(DateTimeStyle style)
52 {
53         if (style == DATE_TIME_STYLE_NONE)
54         {
55                 style = DATE_TIME_STYLE_DEFAULT;
56         }
57
58         return _DateTimeFormatterImpl::CreateInstanceN(style, DATE_TIME_STYLE_NONE);
59 }
60
61
62 DateTimeFormatter*
63 DateTimeFormatter::CreateDateFormatterN(const Locale& locale, DateTimeStyle style)
64 {
65         if (style == DATE_TIME_STYLE_NONE)
66         {
67                 style = DATE_TIME_STYLE_DEFAULT;
68         }
69
70         return _DateTimeFormatterImpl::CreateInstanceN(locale, style, DATE_TIME_STYLE_NONE);
71 }
72
73
74 DateTimeFormatter*
75 DateTimeFormatter::CreateTimeFormatterN(DateTimeStyle style)
76 {
77         if (style == DATE_TIME_STYLE_NONE)
78         {
79                 style = DATE_TIME_STYLE_DEFAULT;
80         }
81
82         return _DateTimeFormatterImpl::CreateInstanceN(DATE_TIME_STYLE_NONE, style);
83 }
84
85
86 DateTimeFormatter*
87 DateTimeFormatter::CreateTimeFormatterN(const Locale& locale, DateTimeStyle style)
88 {
89         if (style == DATE_TIME_STYLE_NONE)
90         {
91                 style = DATE_TIME_STYLE_DEFAULT;
92         }
93
94         return _DateTimeFormatterImpl::CreateInstanceN(locale, DATE_TIME_STYLE_NONE, style);
95 }
96
97
98 DateTimeFormatter*
99 DateTimeFormatter::CreateDateTimeFormatterN(DateTimeStyle dateStyle, DateTimeStyle timeStyle)
100 {
101         if (dateStyle == DATE_TIME_STYLE_NONE)
102         {
103                 dateStyle = DATE_TIME_STYLE_DEFAULT;
104         }
105
106         if (timeStyle == DATE_TIME_STYLE_NONE)
107         {
108                 timeStyle = DATE_TIME_STYLE_DEFAULT;
109         }
110
111         return _DateTimeFormatterImpl::CreateInstanceN(dateStyle, timeStyle);
112 }
113
114
115 DateTimeFormatter*
116 DateTimeFormatter::CreateDateTimeFormatterN(const Locale& locale, DateTimeStyle dateStyle, DateTimeStyle timeStyle)
117 {
118         if (dateStyle == DATE_TIME_STYLE_NONE)
119         {
120                 dateStyle = DATE_TIME_STYLE_DEFAULT;
121         }
122
123         if (timeStyle == DATE_TIME_STYLE_NONE)
124         {
125                 timeStyle = DATE_TIME_STYLE_DEFAULT;
126         }
127
128         return _DateTimeFormatterImpl::CreateInstanceN(locale, dateStyle, timeStyle);
129 }
130
131
132 result
133 DateTimeFormatter::Format(const DateTime& date, String& strBuf) const
134 {
135         SysAssertf(__pDateTimeFormatterImpl != null, "Not yet constructed! Construct() should be called before use.");
136         return __pDateTimeFormatterImpl->Format(date, strBuf);
137 }
138
139 result
140 DateTimeFormatter::Format(const Calendar& calendar, String& strBuf) const
141 {
142         SysAssertf(__pDateTimeFormatterImpl != null, "Not yet constructed! Construct() should be called before use.");
143         return __pDateTimeFormatterImpl->Format(calendar, strBuf);
144 }
145
146 result
147 DateTimeFormatter::ApplyPattern(const String& pattern)
148 {
149         SysAssertf(__pDateTimeFormatterImpl != null, "Not yet constructed! Construct() should be called before use.");
150         SysTryReturnResult(NID_LCL, !pattern.IsEmpty(), E_INVALID_ARG, "Invalid argument is used. Input pattern is empty");
151
152         return __pDateTimeFormatterImpl->ApplyPattern(pattern);
153 }
154
155
156 String
157 DateTimeFormatter::GetPattern(void) const
158 {
159         SysAssertf(__pDateTimeFormatterImpl != null, "Not yet constructed! Construct() should be called before use.");
160         return __pDateTimeFormatterImpl->GetPattern();
161 }
162
163
164 const DateTimeSymbols*
165 DateTimeFormatter::GetDateTimeSymbols(void) const
166 {
167         SysAssertf(__pDateTimeFormatterImpl != null, "Not yet constructed! Construct() should be called before use.");
168         return __pDateTimeFormatterImpl->GetDateTimeSymbols();
169 }
170
171
172 void
173 DateTimeFormatter::SetDateTimeSymbols(const DateTimeSymbols& newSymbols)
174 {
175         SysAssertf(__pDateTimeFormatterImpl != null, "Not yet constructed! Construct() should be called before use.");
176         __pDateTimeFormatterImpl->SetDateTimeSymbols(newSymbols);
177 }
178
179
180 };
181 };      // Tizen::Locales
182