1 // Copyright (C) 2009 The Libphonenumber Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Author: Philippe Liard 16 17 #include "phonenumbers/phonemetadata.pb.h" 18 #include "phonenumbers/phonenumber.pb.h" 19 20 namespace i18n { 21 namespace phonenumbers { 22 ExactlySameAs(const PhoneNumber & first_number,const PhoneNumber & second_number)23bool ExactlySameAs(const PhoneNumber& first_number, 24 const PhoneNumber& second_number) { 25 if (first_number.has_country_code() != second_number.has_country_code() || 26 first_number.country_code() != second_number.country_code()) { 27 return false; 28 } 29 if (first_number.has_national_number() != 30 second_number.has_national_number() || 31 first_number.national_number() != second_number.national_number()) { 32 return false; 33 } 34 if (first_number.has_extension() != second_number.has_extension() || 35 first_number.extension() != second_number.extension()) { 36 return false; 37 } 38 if (first_number.has_italian_leading_zero() != 39 second_number.has_italian_leading_zero() || 40 first_number.italian_leading_zero() != 41 second_number.italian_leading_zero()) { 42 return false; 43 } 44 if (first_number.has_raw_input() != second_number.has_raw_input() || 45 first_number.raw_input() != second_number.raw_input()) { 46 return false; 47 } 48 if (first_number.has_country_code_source() != 49 second_number.has_country_code_source() || 50 first_number.country_code_source() != 51 second_number.country_code_source()) { 52 return false; 53 } 54 if (first_number.has_preferred_domestic_carrier_code() != 55 second_number.has_preferred_domestic_carrier_code() || 56 first_number.preferred_domestic_carrier_code() != 57 second_number.preferred_domestic_carrier_code()) { 58 return false; 59 } 60 return true; 61 } 62 ExactlySameAs(const PhoneNumberDesc & first_number_desc,const PhoneNumberDesc & second_number_desc)63bool ExactlySameAs(const PhoneNumberDesc& first_number_desc, 64 const PhoneNumberDesc& second_number_desc) { 65 if (first_number_desc.has_national_number_pattern() != 66 second_number_desc.has_national_number_pattern() || 67 first_number_desc.national_number_pattern() != 68 second_number_desc.national_number_pattern()) { 69 return false; 70 } 71 if (first_number_desc.has_possible_number_pattern() != 72 second_number_desc.has_possible_number_pattern() || 73 first_number_desc.possible_number_pattern() != 74 second_number_desc.possible_number_pattern()) { 75 return false; 76 } 77 if (first_number_desc.has_example_number() != 78 second_number_desc.has_example_number() || 79 first_number_desc.example_number() != 80 second_number_desc.example_number()) { 81 return false; 82 } 83 return true; 84 } 85 86 } // namespace phonenumbers 87 } // namespace i18n 88