ICU-7125 initial version (needs @internal/@draft/TODO cleanup)

X-SVN-Rev: 27374
This commit is contained in:
Mark Davis 2010-01-22 04:59:07 +00:00
parent 21c14b4470
commit 86ac11f3a4

View file

@ -1,6 +1,6 @@
/*
****************************************************************************************
* Copyright (C) 2009, Google, Inc.; International Business Machines Corporation and *
* Copyright (C) 2010, Google, Inc.; International Business Machines Corporation and *
* others. All Rights Reserved. *
****************************************************************************************
*/
@ -64,6 +64,7 @@ import com.ibm.icu.util.ULocale;
* fr;q=1.0
* ja;q=1.0</pre>
* @author markdavis@google.com
* @draft ICU 4.4
*/
public class LocalePriorityList implements Iterable<ULocale> {
private static final double D0 = 0.0d;
@ -80,8 +81,8 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param languageCode locale/language to be added
* @return internal builder, for chaining
*/
public static LanguagePriorityListBuilder add(ULocale languageCode) {
return new LanguagePriorityListBuilder().add(languageCode);
public static Builder add(ULocale languageCode) {
return new Builder().add(languageCode);
}
/**
@ -91,8 +92,8 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param weight value from 0.0 to 1.0
* @return internal builder, for chaining
*/
public static LanguagePriorityListBuilder add(ULocale languageCode, final double weight) {
return new LanguagePriorityListBuilder().add(languageCode, weight);
public static Builder add(ULocale languageCode, final double weight) {
return new Builder().add(languageCode, weight);
}
/**
@ -101,8 +102,8 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param languagePriorityList list to add all the members of
* @return internal builder, for chaining
*/
public static LanguagePriorityListBuilder add(LocalePriorityList languagePriorityList) {
return new LanguagePriorityListBuilder().add(languagePriorityList);
public static Builder add(LocalePriorityList languagePriorityList) {
return new Builder().add(languagePriorityList);
}
/**
@ -112,8 +113,8 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param acceptLanguageString String in rfc2616 format (but leniently parsed)
* @return internal builder, for chaining
*/
public static LanguagePriorityListBuilder add(String acceptLanguageString) {
return new LanguagePriorityListBuilder().add(acceptLanguageString);
public static Builder add(String acceptLanguageString) {
return new Builder().add(acceptLanguageString);
}
/**
@ -170,10 +171,10 @@ public class LocalePriorityList implements Iterable<ULocale> {
}
/**
* Internal class used for building LanguagePriorityLists
* @internal
* Class used for building LanguagePriorityLists
* @draft ICU 4.4
*/
public static class LanguagePriorityListBuilder {
public static class Builder {
/**
* These store the input languages and weights, in chronological order,
* where later additions override previous ones.
@ -208,7 +209,7 @@ public class LocalePriorityList implements Iterable<ULocale> {
return new LocalePriorityList(Collections.unmodifiableMap(temp));
}
public LanguagePriorityListBuilder add(
public Builder add(
final LocalePriorityList languagePriorityList) {
for (final ULocale language : languagePriorityList.languagesAndWeights
.keySet()) {
@ -223,7 +224,7 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param languageCode to add with weight 1.0
* @return this, for chaining
*/
public LanguagePriorityListBuilder add(final ULocale languageCode) {
public Builder add(final ULocale languageCode) {
return add(languageCode, D1);
}
@ -233,7 +234,7 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param languageCodes List of language codes.
* @return this, for chaining.
*/
public LanguagePriorityListBuilder add(ULocale... languageCodes) {
public Builder add(ULocale... languageCodes) {
for (final ULocale languageCode : languageCodes) {
add(languageCode, D1);
}
@ -248,7 +249,7 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param weight value between 0.0 and 1.1
* @return this, for chaining.
*/
public LanguagePriorityListBuilder add(final ULocale languageCode,
public Builder add(final ULocale languageCode,
double weight) {
if (languageToWeight.containsKey(languageCode)) {
languageToWeight.remove(languageCode);
@ -268,7 +269,7 @@ public class LocalePriorityList implements Iterable<ULocale> {
* @param acceptLanguageList in rfc2616 format
* @return this, for chaining.
*/
public LanguagePriorityListBuilder add(final String acceptLanguageList) {
public Builder add(final String acceptLanguageList) {
final String[] items = languageSplitter.split(acceptLanguageList.trim());
final Matcher itemMatcher = weightSplitter.matcher("");
for (final String item : items) {