diff options
author | Paul Duffin <paulduffin@google.com> | 2018-11-19 17:06:59 +0000 |
---|---|---|
committer | Paul Duffin <paulduffin@google.com> | 2018-11-20 14:13:11 +0000 |
commit | 8b412270f9a9c5c066ee7c5854055b3e5ab1335f (patch) | |
tree | 94081b15b4184bf0a2ce7c5619de73b756e5f452 /repackaged/libphonenumber/src/com/android/i18n/phonenumbers/internal/RegexBasedMatcher.java | |
parent | bc1508dad5df524bdc37262caa08cbea33de1192 (diff) | |
download | libphonenumber-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.java | 59 |
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; + } + } +} |