michael@0: /* michael@0: ********************************************************************** michael@0: * Copyright (c) 2004, International Business Machines michael@0: * Corporation and others. All Rights Reserved. michael@0: ********************************************************************** michael@0: * Author: Alan Liu michael@0: * Created: January 16 2004 michael@0: * Since: ICU 2.8 michael@0: ********************************************************************** michael@0: */ michael@0: #include "locbased.h" michael@0: #include "cstring.h" michael@0: michael@0: U_NAMESPACE_BEGIN michael@0: michael@0: Locale LocaleBased::getLocale(ULocDataLocaleType type, UErrorCode& status) const { michael@0: const char* id = getLocaleID(type, status); michael@0: return Locale((id != 0) ? id : ""); michael@0: } michael@0: michael@0: const char* LocaleBased::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const { michael@0: if (U_FAILURE(status)) { michael@0: return NULL; michael@0: } michael@0: michael@0: switch(type) { michael@0: case ULOC_VALID_LOCALE: michael@0: return valid; michael@0: case ULOC_ACTUAL_LOCALE: michael@0: return actual; michael@0: default: michael@0: status = U_ILLEGAL_ARGUMENT_ERROR; michael@0: return NULL; michael@0: } michael@0: } michael@0: michael@0: void LocaleBased::setLocaleIDs(const char* validID, const char* actualID) { michael@0: if (validID != 0) { michael@0: uprv_strcpy(valid, validID); michael@0: } michael@0: if (actualID != 0) { michael@0: uprv_strcpy(actual, actualID); michael@0: } michael@0: } michael@0: michael@0: U_NAMESPACE_END