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: January 16 2004 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Since: ICU 2.8 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru********************************************************************** 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/ 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "locbased.h" 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "cstring.h" 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruLocale LocaleBased::getLocale(ULocDataLocaleType type, UErrorCode& status) const { 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru const char* id = getLocaleID(type, status); 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return Locale((id != 0) ? id : ""); 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst char* LocaleBased::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const { 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (U_FAILURE(status)) { 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return NULL; 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru switch(type) { 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru case ULOC_VALID_LOCALE: 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return valid; 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru case ULOC_ACTUAL_LOCALE: 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return actual; 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru default: 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru status = U_ILLEGAL_ARGUMENT_ERROR; 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return NULL; 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid LocaleBased::setLocaleIDs(const char* validID, const char* actualID) { 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (validID != 0) { 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru uprv_strcpy(valid, validID); 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (actualID != 0) { 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru uprv_strcpy(actual, actualID); 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 46fceb39872958b9fa2505e63f8b8699a9e0f882f4ccorneliusvoid LocaleBased::setLocaleIDs(const Locale& validID, const Locale& actualID) { 47fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius uprv_strcpy(valid, validID.getName()); 48fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius uprv_strcpy(actual, actualID.getName()); 49fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius} 50fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END 52