1ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia/*
2ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Copyright (C) 2011 The Libphonenumber Authors
3ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia *
4ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Licensed under the Apache License, Version 2.0 (the "License");
5ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * you may not use this file except in compliance with the License.
6ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * You may obtain a copy of the License at
7ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia *
8ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * http://www.apache.org/licenses/LICENSE-2.0
9ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia *
10ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Unless required by applicable law or agreed to in writing, software
11ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * distributed under the License is distributed on an "AS IS" BASIS,
12ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * See the License for the specific language governing permissions and
14ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * limitations under the License.
15ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia */
16ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia
17a77faddfc3b3e4cca8f585c82d669054aec221f4Narayan Kamathpackage com.google.i18n.phonenumbers;
18ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia
19bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jiaimport java.util.Set;
20ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia
21ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia/*
22ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * Utility for international short phone numbers, such as short codes and emergency numbers. Note
23ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * most commercial short numbers are not handled here, but by the PhoneNumberUtil.
24ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia *
25bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia * @deprecated("As of release 5.8, replaced by ShortNumberInfo.")
26bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia *
27ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia * @author Shaopeng Jia
28bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia * @author David Yonge-Mallo
29ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia */
30bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia@Deprecated public class ShortNumberUtil {
31ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia
32bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia  /**
33bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia   * Cost categories of short numbers.
34bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia   */
35bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia  public enum ShortNumberCost {
36bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia    TOLL_FREE,
37bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia    STANDARD_RATE,
38bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia    PREMIUM_RATE,
39bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia    UNKNOWN_COST
40bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia  }
41ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia
42ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia  public ShortNumberUtil() {
43ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia  }
44ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia
45bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia  /**
46bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia   * Convenience method to get a list of what regions the library has metadata for.
47bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia   */
48bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia  public Set<String> getSupportedRegions() {
49bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia    return ShortNumberInfo.getInstance().getSupportedRegions();
50ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia  }
51ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia
52ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia  /**
53ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   * Returns true if the number might be used to connect to an emergency service in the given
54ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   * region.
55ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   *
56ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   * This method takes into account cases where the number might contain formatting, or might have
57ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   * additional digits appended (when it is okay to do that in the region specified).
58ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   *
59ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   * @param number  the phone number to test
60ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   * @param regionCode  the region where the phone number is being dialed
61ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   * @return  if the number might be used to connect to an emergency service in the given region.
62ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia   */
63ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia  public boolean connectsToEmergencyNumber(String number, String regionCode) {
64bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia    return ShortNumberInfo.getInstance().connectsToEmergencyNumber(number, regionCode);
65a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia  }
66a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia
67a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia  /**
68a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   * Returns true if the number exactly matches an emergency service number in the given region.
69a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   *
70a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   * This method takes into account cases where the number might contain formatting, but doesn't
71a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   * allow additional digits to be appended.
72a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   *
73a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   * @param number  the phone number to test
74a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   * @param regionCode  the region where the phone number is being dialed
75a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   * @return  if the number exactly matches an emergency services number in the given region.
76a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia   */
77a48b2d221ba46df7446d1a87244efa985e8e292fShaopeng Jia  public boolean isEmergencyNumber(String number, String regionCode) {
78bb78ce92eae2d5de9aa06b27ed3b87bc496c79eeShaopeng Jia    return ShortNumberInfo.getInstance().isEmergencyNumber(number, regionCode);
79ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia  }
80ca1e43d6e1fac07c7fc29c66c7da1fa9d7cf50f2Shaopeng Jia}
81