Update historical dst offset for timezone.
[platform/framework/native/appfw.git] / src / locales / FLcl_NumberFormatterImpl.cpp
index d618860..a8f606f 100644 (file)
@@ -1,5 +1,4 @@
 //
-// Open Service Platform
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
 // Licensed under the Apache License, Version 2.0 (the License);
@@ -19,7 +18,6 @@
  * @file        FLclNumberFormatterEx.cpp
  * @brief       This is the implementation file for the NumberFormatterEx class.
  */
-
 #include <unique_ptr.h>
 #include <unicode/decimfmt.h>
 
@@ -28,6 +26,7 @@
 
 #include "FLcl_LocaleData.h"
 #include "FLcl_LocaleImpl.h"
+#include "FLcl_LocaleManagerImpl.h"
 #include "FLcl_NumberFormatterImpl.h"
 
 
@@ -49,7 +48,7 @@ _NumberFormatterImpl::~_NumberFormatterImpl(void)
 NumberFormatter*
 _NumberFormatterImpl::CreateNumberFormatterN(NumberFormatterStyle style)
 {
-       return CreateNumberFormatterN(_LocaleData::GetOspSystemLocale(), style);
+       return CreateNumberFormatterN(_LocaleManagerImpl::GetSystemLocale(), style);
 }
 
 NumberFormatter*
@@ -83,23 +82,18 @@ _NumberFormatterImpl::CreateNumberFormatterN(const Locale& locale, NumberFormatt
 
        UErrorCode ec = U_ZERO_ERROR;
        std::unique_ptr<IcuNumberFormat> pIcuNumberFormatter(IcuNumberFormat::createInstance(icuLocale, icuStyle, ec));
-       if (pIcuNumberFormatter)
-       {
-               IcuDecimalFormat* pDecimalFmt = dynamic_cast<IcuDecimalFormat*>(pIcuNumberFormatter.get());
-               if (pDecimalFmt)
-               {
-                       pIcuNumberFormatter.release();
-                       pNumberFormatterImpl->__pIcuNumberFormatter = pDecimalFmt;
-                       pNumberFormatterImpl->__currency.Construct(locale);
-                       pNewFormatter->__pNumberFormatterImpl = pNumberFormatterImpl.release();
+       SysTryReturn(NID_LCL, pIcuNumberFormatter, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed");
 
-                       SetLastResult(E_SUCCESS);
-                       return pNewFormatter.release();
-               }
-       }
+       IcuDecimalFormat* pDecimalFmt = dynamic_cast<IcuDecimalFormat*>(pIcuNumberFormatter.get());
+       SysTryReturn(NID_LCL, pDecimalFmt, null, E_SYSTEM, "It is failed to get fomatter.");
+
+       pIcuNumberFormatter.release();
+       pNumberFormatterImpl->__pIcuNumberFormatter = pDecimalFmt;
+       pNumberFormatterImpl->__currency.Construct(locale);
+       pNewFormatter->__pNumberFormatterImpl = pNumberFormatterImpl.release();
 
-       SetLastResult(E_INVALID_ARG);
-       return null;
+       SetLastResult(E_SUCCESS);
+       return pNewFormatter.release();
 }
 
 result