summaryrefslogtreecommitdiff
path: root/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java
diff options
context:
space:
mode:
authorPaul Duffin <paulduffin@google.com>2018-11-19 17:06:59 +0000
committerPaul Duffin <paulduffin@google.com>2018-11-20 14:13:11 +0000
commit8b412270f9a9c5c066ee7c5854055b3e5ab1335f (patch)
tree94081b15b4184bf0a2ce7c5619de73b756e5f452 /repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java
parentbc1508dad5df524bdc37262caa08cbea33de1192 (diff)
downloadlibphonenumber-8b412270f9a9c5c066ee7c5854055b3e5ab1335f.tar.gz
Use generated source not jarjar
This is in preparation to adding UnsupportedAppUsage annotations to the source. Note: Although the classes in the android/ directory are in the correct package and so do not need to be moved to a different package they do reference classes that are in the wrong package and so they need those references transformed. Tested using: m -j32 droid adb reboot bootloader fastboot flashall -w m -j32 cts cts-tradefed run cts -m CtsTelephonyTestCases -t android.telephony.cts.PhoneNumberUtilsTest Bug: 117818301 Test: see above Change-Id: I523e98eabc7eddff593afeddd399c11061664a59
Diffstat (limited to 'repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java')
-rw-r--r--repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java
new file mode 100644
index 00000000..c847c484
--- /dev/null
+++ b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java
@@ -0,0 +1,59 @@
+/* GENERATED SOURCE. DO NOT MODIFY. */
+/*
+ * Copyright (C) 2014 The Libphonenumber Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.phonenumbers.internal;
+
+import com.android.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Implementation of the matcher API using the regular expressions in the PhoneNumberDesc
+ * proto message to match numbers.
+ * @hide This class is not part of the Android public SDK API
+ */
+public final class RegexBasedMatcher implements MatcherApi {
+ public static MatcherApi create() {
+ return new RegexBasedMatcher();
+ }
+
+ private final RegexCache regexCache = new RegexCache(100);
+
+ private RegexBasedMatcher() {}
+
+ // @Override
+ public boolean matchNationalNumber(CharSequence number, PhoneNumberDesc numberDesc,
+ boolean allowPrefixMatch) {
+ String nationalNumberPattern = numberDesc.getNationalNumberPattern();
+ // We don't want to consider it a prefix match when matching non-empty input against an empty
+ // pattern.
+ if (nationalNumberPattern.length() == 0) {
+ return false;
+ }
+ return match(number, regexCache.getPatternForRegex(nationalNumberPattern), allowPrefixMatch);
+ }
+
+ private static boolean match(CharSequence number, Pattern pattern, boolean allowPrefixMatch) {
+ Matcher matcher = pattern.matcher(number);
+ if (!matcher.lookingAt()) {
+ return false;
+ } else {
+ return (matcher.matches()) ? true : allowPrefixMatch;
+ }
+ }
+}