private function parse()
{
if ($this->phoneNumberProto) {
// from phoneNumberProto
$this->country_code = $this->phoneNumberProto->getCountryCode();
$this->country_code_plus_sign = "+" . $this->country_code;
$this->national_number = $this->phoneNumberProto->getNationalNumber();
$this->extension = $this->phoneNumberProto->getExtension();
$this->country_code_source = $this->phoneNumberProto->getCountryCodeSource();
if (isset($this->countryCodeSourcesText[$this->country_code_source])) {
$this->country_code_source_text = $this->countryCodeSourcesText[$this->country_code_source];
}
$this->raw_input = $this->phoneNumberProto->getRawInput();
$this->preferred_domestic_carrier_code = $this->phoneNumberProto->getPreferredDomesticCarrierCode();
// from validation
$this->is_possible_number = $this->phoneUtil->isPossibleNumber($this->phoneNumberProto);
$this->is_valid_number = $this->phoneUtil->isValidNumber($this->phoneNumberProto);
$this->region_code_for_number = $this->phoneUtil->getRegionCodeForNumber($this->phoneNumberProto);
$this->number_type = $this->phoneUtil->getNumberType($this->phoneNumberProto);
$this->number_type_text = $this->phoneUtil->getNumberType($this->phoneNumberProto);
if (isset($this->phoneNumberTypesText[$this->number_type])) {
$this->number_type_text = $this->phoneNumberTypesText[$this->number_type];
} else {
$this->number_type_text = "OTHER";
}
$this->is_mobile_number = in_array($this->number_type, [PhoneNumberType::FIXED_LINE_OR_MOBILE, PhoneNumberType::MOBILE]);
// from formatting
$this->format_e164 = $this->phoneUtil->format($this->phoneNumberProto, PhoneNumberFormat::E164);
$this->format_international = $this->phoneUtil->format($this->phoneNumberProto, PhoneNumberFormat::INTERNATIONAL);
$this->format_national = $this->phoneUtil->format($this->phoneNumberProto, PhoneNumberFormat::NATIONAL);
$this->format_rfc3966 = $this->phoneUtil->format($this->phoneNumberProto, PhoneNumberFormat::RFC3966);
// from additional
$phoneNumberOfflineGeocoder = PhoneNumberOfflineGeocoder::getInstance();
$this->description = $phoneNumberOfflineGeocoder->getDescriptionForNumber($this->phoneNumberProto, 'en');
$phoneNumberToCarrierMapper = PhoneNumberToCarrierMapper::getInstance();
$this->carrier_name = $phoneNumberToCarrierMapper->getNameForNumber($this->phoneNumberProto, 'en');
$phoneNumberToTimeZonesMapper = PhoneNumberToTimeZonesMapper::getInstance();
$this->timezones = $phoneNumberToTimeZonesMapper->getTimeZonesForNumber($this->phoneNumberProto);
}
}