com.adobe.agl.util.LocaleData Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aem-sdk-api Show documentation
Show all versions of aem-sdk-api Show documentation
The Adobe Experience Manager SDK
/*
*******************************************************************************
* Copyright (C) 2004-2007, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
/*
* File: LocaleData.java
* ************************************************************************
*
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2012 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
**************************************************************************/
package com.adobe.agl.util;
import com.adobe.agl.impl.ICUResourceBundle;
/**
* A class for accessing miscelleneous data in the locale bundles
* @author ram
* @stable ICU 2.8
*/
public final class LocaleData {
private static final String EXEMPLAR_CHARS = "ExemplarCharacters";
private static final String MEASUREMENT_SYSTEM = "MeasurementSystem";
private static final String PAPER_SIZE = "PaperSize";
private static final String OPENTYPEDATA = "OpenType";
private static final String OPENTYPEDATA_TAGS = "Tags";
private boolean noSubstitute;
private ICUResourceBundle bundle;
/**
* EXType for {@link #getExemplarSet(int, int)}.
* @stable ICU 3.4
*/
public static final int ES_STANDARD = 0;
/**
* EXType for {@link #getExemplarSet(int, int)}.
* @stable ICU 3.4
*/
public static final int ES_AUXILIARY = 1;
/**
* Count of EXTypes for {@link #getExemplarSet(int, int)}.
* @stable ICU 3.4
*/
public static final int ES_COUNT = 2;
/**
* Delimiter type for {@link #getDelimiter(int)}.
* @stable ICU 3.4
*/
public static final int QUOTATION_START = 0;
/**
* Delimiter type for {@link #getDelimiter(int)}.
* @stable ICU 3.4
*/
public static final int QUOTATION_END = 1;
/**
* Delimiter type for {@link #getDelimiter(int)}.
* @stable ICU 3.4
*/
public static final int ALT_QUOTATION_START = 2;
/**
* Delimiter type for {@link #getDelimiter(int)}.
* @stable ICU 3.4
*/
public static final int ALT_QUOTATION_END = 3;
/**
* Count of delimiter types for {@link #getDelimiter(int)}.
* @stable ICU 3.4
*/
public static final int DELIMITER_COUNT = 4;
// private constructor to prevent default construction
///CLOVER:OFF
private LocaleData(){}
///CLOVER:ON
/**
* Gets the LocaleData object associated with the ULocale specified in locale
*
* @param locale Locale with thich the locale data object is associated.
* @return A locale data object.
* @stable ICU 3.4
*/
public static final LocaleData getInstance(ULocale locale) {
LocaleData ld = new LocaleData();
ld.bundle = (ICUResourceBundle)UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, locale );
ld.noSubstitute = false;
return ld;
}
/**
* A class for OpenType data like OpenType language tags
*/
public static final class OpenTypeData {
private int[] tags;
private OpenTypeData(int[] tags_)
{
tags = tags_;
}
/**
* Returns OpenType language tag
* @return language tag as 32-bit integer
*/
public final int getLanguageTag()
{
return tags[0];
}
}
/**
* Returns OpenTypeData object containing locale-dependent OpenType data like tags
* @param locale The locale for which the OpenType data is required
* @return OpenTypeData object containing OpenType data
*/
public static final OpenTypeData getOpenTypeData(ULocale locale){
UResourceBundle bundle = (ICUResourceBundle)UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, locale);
UResourceBundle ot = bundle.get(OPENTYPEDATA);
UResourceBundle tagsbundle = ot.get(OPENTYPEDATA_TAGS);
int[] tags = tagsbundle.getIntVector();
return new OpenTypeData(tags);
}
}