summaryrefslogtreecommitdiff
path: root/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java')
-rw-r--r--libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java86
1 files changed, 0 insertions, 86 deletions
diff --git a/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java b/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java
deleted file mode 100644
index 9a0b8e69..00000000
--- a/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2015 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.google.i18n.phonenumbers;
-
-import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Implementation of {@link MetadataSource} that reads from multiple resource files.
- */
-final class MultiFileMetadataSourceImpl implements MetadataSource {
- // The prefix of the binary files containing phone number metadata for different regions.
- // This enables us to set up with different metadata, such as for testing.
- private final String phoneNumberMetadataFilePrefix;
-
- // The {@link MetadataLoader} used to inject alternative metadata sources.
- private final MetadataLoader metadataLoader;
-
- // A mapping from a region code to the phone number metadata for that region code.
- // Unlike the mappings for alternate formats and short number metadata, the phone number metadata
- // is loaded from a non-statically determined file prefix; therefore this map is bound to the
- // instance and not static.
- private final ConcurrentHashMap<String, PhoneMetadata> geographicalRegions =
- new ConcurrentHashMap<String, PhoneMetadata>();
-
- // A mapping from a country calling code for a non-geographical entity to the phone number
- // metadata for that country calling code. Examples of the country calling codes include 800
- // (International Toll Free Service) and 808 (International Shared Cost Service).
- // Unlike the mappings for alternate formats and short number metadata, the phone number metadata
- // is loaded from a non-statically determined file prefix; therefore this map is bound to the
- // instance and not static.
- private final ConcurrentHashMap<Integer, PhoneMetadata> nonGeographicalRegions =
- new ConcurrentHashMap<Integer, PhoneMetadata>();
-
- // It is assumed that metadataLoader is not null. Checks should happen before passing it in here.
- // @VisibleForTesting
- MultiFileMetadataSourceImpl(String phoneNumberMetadataFilePrefix, MetadataLoader metadataLoader) {
- this.phoneNumberMetadataFilePrefix = phoneNumberMetadataFilePrefix;
- this.metadataLoader = metadataLoader;
- }
-
- // It is assumed that metadataLoader is not null. Checks should happen before passing it in here.
- MultiFileMetadataSourceImpl(MetadataLoader metadataLoader) {
- this(MetadataManager.MULTI_FILE_PHONE_NUMBER_METADATA_FILE_PREFIX, metadataLoader);
- }
-
- @Override
- public PhoneMetadata getMetadataForRegion(String regionCode) {
- return MetadataManager.getMetadataFromMultiFilePrefix(regionCode, geographicalRegions,
- phoneNumberMetadataFilePrefix, metadataLoader);
- }
-
- @Override
- public PhoneMetadata getMetadataForNonGeographicalRegion(int countryCallingCode) {
- if (!isNonGeographical(countryCallingCode)) {
- // The given country calling code was for a geographical region.
- return null;
- }
- return MetadataManager.getMetadataFromMultiFilePrefix(countryCallingCode, nonGeographicalRegions,
- phoneNumberMetadataFilePrefix, metadataLoader);
- }
-
- // A country calling code is non-geographical if it only maps to the non-geographical region code,
- // i.e. "001".
- private boolean isNonGeographical(int countryCallingCode) {
- List<String> regionCodes =
- CountryCodeToRegionCodeMap.getCountryCodeToRegionCodeMap().get(countryCallingCode);
- return (regionCodes.size() == 1
- && PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCodes.get(0)));
- }
-}