1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru********************************************************************** 3fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius* Copyright (c) 2004-2014, International Business Machines 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Corporation and others. All Rights Reserved. 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru********************************************************************** 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Author: Alan Liu 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Created: April 26, 2004 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Since: ICU 3.0 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru********************************************************************** 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/ 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h" 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/currunit.h" 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/ustring.h" 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruCurrencyUnit::CurrencyUnit(const UChar* _isoCode, UErrorCode& ec) { 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru *isoCode = 0; 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (U_SUCCESS(ec)) { 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (_isoCode && u_strlen(_isoCode)==3) { 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru u_strcpy(isoCode, _isoCode); 25fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius char simpleIsoCode[4]; 26fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius u_UCharsToChars(isoCode, simpleIsoCode, 4); 27fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius initCurrency(simpleIsoCode); 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } else { 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ec = U_ILLEGAL_ARGUMENT_ERROR; 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruCurrencyUnit::CurrencyUnit(const CurrencyUnit& other) : 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru MeasureUnit(other) { 36fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius u_strcpy(isoCode, other.isoCode); 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruCurrencyUnit& CurrencyUnit::operator=(const CurrencyUnit& other) { 40fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius if (this == &other) { 41fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius return *this; 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 43fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius MeasureUnit::operator=(other); 44fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius u_strcpy(isoCode, other.isoCode); 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return *this; 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUObject* CurrencyUnit::clone() const { 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return new CurrencyUnit(*this); 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruCurrencyUnit::~CurrencyUnit() { 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUOBJECT_DEFINE_RTTI_IMPLEMENTATION(CurrencyUnit) 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif // !UCONFIG_NO_FORMATTING 60