//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
* @file FLclNumberFormatterEx.cpp
* @brief This is the implementation file for the NumberFormatterEx class.
*/
-
#include <unique_ptr.h>
#include <unicode/decimfmt.h>
#include "FLcl_LocaleData.h"
#include "FLcl_LocaleImpl.h"
+#include "FLcl_LocaleManagerImpl.h"
#include "FLcl_NumberFormatterImpl.h"
NumberFormatter*
_NumberFormatterImpl::CreateNumberFormatterN(NumberFormatterStyle style)
{
- return CreateNumberFormatterN(_LocaleData::GetOspSystemLocale(), style);
+ return CreateNumberFormatterN(_LocaleManagerImpl::GetSystemLocale(), style);
}
NumberFormatter*
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