History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/sun/util/locale/UnicodeLocaleExtension.java (1 of 18352 files). Show all

Unified · Split

java/pkg/sun/util/locale/UnicodeLocaleExtension.java+128−0
@@ -0,0 +1,128 @@
1
2/*
3 * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 *
6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as
8 * published by the Free Software Foundation. Oracle designates this
9 * particular file as subject to the "Classpath" exception as provided
10 * by Oracle in the LICENSE file that accompanied this code.
11 *
12 * This code is distributed in the hope that it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 * version 2 for more details (a copy is included in the LICENSE file that
16 * accompanied this code).
17 *
18 * You should have received a copy of the GNU General Public License version
19 * 2 along with this work; if not, write to the Free Software Foundation,
20 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
21 *
22 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
23 * or visit www.oracle.com if you need additional information or have any
24 * questions.
25 */
26
27/*
28 *******************************************************************************
29 * Copyright (C) 2009-2010, International Business Machines Corporation and *
30 * others. All Rights Reserved. *
31 *******************************************************************************
32 */
33package sun.util.locale;
34
35import java.util.Collections;
36import java.util.Map;
37import java.util.Map.Entry;
38import java.util.Set;
39import java.util.SortedMap;
40import java.util.SortedSet;
41
42public class UnicodeLocaleExtension extends Extension {
43 public static final char SINGLETON = 'u';
44
45 private final Set<String> attributes;
46 private final Map<String, String> keywords;
47
48 public static final UnicodeLocaleExtension CA_JAPANESE
49 = new UnicodeLocaleExtension("ca", "japanese");
50 public static final UnicodeLocaleExtension NU_THAI
51 = new UnicodeLocaleExtension("nu", "thai");
52
53 private UnicodeLocaleExtension(String key, String value) {
54 super(SINGLETON, key + "-" + value);
55 attributes = Collections.emptySet();
56 keywords = Collections.singletonMap(key, value);
57 }
58
59 UnicodeLocaleExtension(SortedSet<String> attributes, SortedMap<String, String> keywords) {
60 super(SINGLETON);
61 if (attributes != null) {
62 this.attributes = attributes;
63 } else {
64 this.attributes = Collections.emptySet();
65 }
66 if (keywords != null) {
67 this.keywords = keywords;
68 } else {
69 this.keywords = Collections.emptyMap();
70 }
71
72 if (!this.attributes.isEmpty() || !this.keywords.isEmpty()) {
73 StringBuilder sb = new StringBuilder();
74 for (String attribute : this.attributes) {
75 sb.append(LanguageTag.SEP).append(attribute);
76 }
77 for (Entry<String, String> keyword : this.keywords.entrySet()) {
78 String key = keyword.getKey();
79 String value = keyword.getValue();
80
81 sb.append(LanguageTag.SEP).append(key);
82 if (value.length() > 0) {
83 sb.append(LanguageTag.SEP).append(value);
84 }
85 }
86 setValue(sb.substring(1)); // skip leading '-'
87 }
88 }
89
90 public Set<String> getUnicodeLocaleAttributes() {
91 if (attributes == Collections.EMPTY_SET) {
92 return attributes;
93 }
94 return Collections.unmodifiableSet(attributes);
95 }
96
97 public Set<String> getUnicodeLocaleKeys() {
98 if (keywords == Collections.EMPTY_MAP) {
99 return Collections.emptySet();
100 }
101 return Collections.unmodifiableSet(keywords.keySet());
102 }
103
104 public String getUnicodeLocaleType(String unicodeLocaleKey) {
105 return keywords.get(unicodeLocaleKey);
106 }
107
108 public static boolean isSingletonChar(char c) {
109 return (SINGLETON == LocaleUtils.toLower(c));
110 }
111
112 public static boolean isAttribute(String s) {
113 // 3*8alphanum
114 int len = s.length();
115 return (len >= 3) && (len <= 8) && LocaleUtils.isAlphaNumericString(s);
116 }
117
118 public static boolean isKey(String s) {
119 // 2alphanum
120 return (s.length() == 2) && LocaleUtils.isAlphaNumericString(s);
121 }
122
123 public static boolean isTypeSubtag(String s) {
124 // 3*8alphanum
125 int len = s.length();
126 return (len >= 3) && (len <= 8) && LocaleUtils.isAlphaNumericString(s);
127 }
128}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t