%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/main/lib/phonenumber/tools/googlemetadata/ |
| Current File : /home/bitrix/www/bitrix/modules/main/lib/phonenumber/tools/googlemetadata/root.php |
<?php
namespace Bitrix\Main\PhoneNumber\Tools\GoogleMetadata;
use Bitrix\Main\PhoneNumber\Tools;
use Bitrix\Main\PhoneNumber\Tools\XmlField;
use Bitrix\Main\PhoneNumber\Tools\RegexField;
class Root extends Tools\XmlParser
{
public function getMap()
{
return array(
'/phoneNumberMetadata/territories/' => new Tools\XmlField('ROOT', array(
'multiple' => false,
'subParser' => new Territories()
))
);
}
}
class Territories extends Tools\XmlParser
{
public function getMap()
{
return array(
'/phoneNumberMetadata/territories/territory/' => new Tools\XmlField('territory', array(
'multiple' => true,
'subParser' => new Territory()
))
);
}
}
class Territory extends Tools\XmlParser
{
public function getMap()
{
return array(
'/phoneNumberMetadata/territories/territory/@id' => new Tools\XmlField('id'),
'/phoneNumberMetadata/territories/territory/@countryCode' => new Tools\XmlField('countryCode'),
'/phoneNumberMetadata/territories/territory/@mainCountryForCode' => new Tools\BoolField('mainCountryForCode'),
'/phoneNumberMetadata/territories/territory/@leadingDigits' => new Tools\RegexField('leadingDigits'),
'/phoneNumberMetadata/territories/territory/@preferredInternationalPrefix' => new Tools\XmlField('preferredInternationalPrefix'),
'/phoneNumberMetadata/territories/territory/@internationalPrefix' => new Tools\XmlField('internationalPrefix'),
'/phoneNumberMetadata/territories/territory/@nationalPrefix' => new Tools\XmlField('nationalPrefix'),
'/phoneNumberMetadata/territories/territory/@nationalPrefixForParsing' => new Tools\XmlField('nationalPrefixForParsing'),
'/phoneNumberMetadata/territories/territory/@nationalPrefixTransformRule' => new Tools\XmlField('nationalPrefixTransformRule'),
'/phoneNumberMetadata/territories/territory/@preferredExtnPrefix' => new Tools\XmlField('preferredExtnPrefix'),
'/phoneNumberMetadata/territories/territory/@nationalPrefixFormattingRule' => new Tools\XmlField('nationalPrefixFormattingRule'),
'/phoneNumberMetadata/territories/territory/@nationalPrefixOptionalWhenFormatting' => new Tools\BoolField('nationalPrefixOptionalWhenFormatting'),
'/phoneNumberMetadata/territories/territory/@carrierCodeFormattingRule' => new Tools\XmlField('carrierCodeFormattingRule'),
'/phoneNumberMetadata/territories/territory/@mobileNumberPortableRegion' => new Tools\XmlField('mobileNumberPortableRegion'),
'/phoneNumberMetadata/territories/territory/references/' => new Tools\XmlField('references', array(
'subParser' => new References()
)),
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/' => new Tools\XmlField('availableFormats', array(
'multiple' => true,
'subParser' => new NumberFormat()
)),
'/phoneNumberMetadata/territories/territory/generalDesc/' => new Tools\XmlField('generalDesc', array(
'subParser' => new GeneralDesc()
)),
'/phoneNumberMetadata/territories/territory/noInternationalDialling/' => new Tools\XmlField('noInternationalDialling', array(
'subParser' => new NumberFormatDesc('noInternationalDialling')
)),
'/phoneNumberMetadata/territories/territory/areaCodeOptional/' => new Tools\XmlField('areaCodeOptional', array(
'subParser' => new NumberFormatDesc('areaCodeOptional')
)),
'/phoneNumberMetadata/territories/territory/fixedLine/' => new Tools\XmlField('fixedLine', array(
'subParser' => new NumberFormatDesc('fixedLine')
)),
'/phoneNumberMetadata/territories/territory/mobile/' => new Tools\XmlField('mobile', array(
'subParser' => new NumberFormatDesc('mobile')
)),
'/phoneNumberMetadata/territories/territory/pager/' => new Tools\XmlField('pager', array(
'subParser' => new NumberFormatDesc('pager')
)),
'/phoneNumberMetadata/territories/territory/tollFree/' => new Tools\XmlField('tollFree', array(
'subParser' => new NumberFormatDesc('tollFree')
)),
'/phoneNumberMetadata/territories/territory/premiumRate/' => new Tools\XmlField('premiumRate', array(
'subParser' => new NumberFormatDesc('premiumRate')
)),
'/phoneNumberMetadata/territories/territory/sharedCost/' => new Tools\XmlField('sharedCost', array(
'subParser' => new NumberFormatDesc('sharedCost')
)),
'/phoneNumberMetadata/territories/territory/personalNumber/' => new Tools\XmlField('personalNumber', array(
'subParser' => new NumberFormatDesc('personalNumber')
)),
'/phoneNumberMetadata/territories/territory/voip/' => new Tools\XmlField('voip', array(
'subParser' => new NumberFormatDesc('voip')
)),
'/phoneNumberMetadata/territories/territory/uan/' => new Tools\XmlField('uan', array(
'subParser' => new NumberFormatDesc('uan')
)),
'/phoneNumberMetadata/territories/territory/voicemail/' => new Tools\XmlField('voicemail', array(
'subParser' => new NumberFormatDesc('voicemail')
)),
);
}
}
class References extends Tools\XmlParser
{
public function getMap()
{
return array(
'/phoneNumberMetadata/territories/territory/references/sourceUrl/' => new XmlField('sourceUrl', array(
'multiple' => true
)),
);
}
}
class GeneralDesc extends Tools\XmlParser
{
public function getMap()
{
return array(
'/phoneNumberMetadata/territories/territory/generalDesc/nationalNumberPattern/' => new Tools\RegexField('nationalNumberPattern')
);
}
}
class NumberFormatDesc extends Tools\XmlParser
{
protected $fieldName;
public function __construct($fieldName)
{
$this->fieldName = $fieldName;
return parent::__construct();
}
public function getMap()
{
return array(
'/phoneNumberMetadata/territories/territory/' . $this->fieldName . '/possibleLengths/@national' => new Tools\PossibleLengthField('possibleLengthNational'),
'/phoneNumberMetadata/territories/territory/' . $this->fieldName . '/possibleLengths/@localOnly' => new Tools\PossibleLengthField('possibleLengthLocalOnly'),
'/phoneNumberMetadata/territories/territory/' . $this->fieldName . '/exampleNumber/' => new XmlField('exampleNumber'),
'/phoneNumberMetadata/territories/territory/' . $this->fieldName . '/nationalNumberPattern/' => new RegexField('nationalNumberPattern')
);
}
}
class NumberFormat extends Tools\XmlParser
{
public function getMap()
{
return array(
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/leadingDigits/' => new RegexField('leadingDigits', array('multiple' => true)),
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/format/' => new XmlField('format'),
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/intlFormat/' => new XmlField('intlFormat'),
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/@nationalPrefixFormattingRule' => new XmlField('nationalPrefixFormattingRule'),
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/@nationalPrefixOptionalWhenFormatting' => new Tools\BoolField('nationalPrefixOptionalWhenFormatting'),
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/@carrierCodeFormattingRule' => new XmlField('carrierCodeFormattingRule'),
'/phoneNumberMetadata/territories/territory/availableFormats/numberFormat/@pattern' => new XmlField('pattern'),
);
}
}