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