12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //
- // NBPhoneNumberFormat.m
- // libPhoneNumber
- //
- //
- #import "NBNumberFormat.h"
- #import "NSArray+NBAdditions.h"
- @implementation NBNumberFormat
- - (instancetype)initWithPattern:(NSString *)pattern
- withFormat:(NSString *)format
- withLeadingDigitsPatterns:(NSArray *)leadingDigitsPatterns
- withNationalPrefixFormattingRule:(NSString *)nationalPrefixFormattingRule
- whenFormatting:(BOOL)nationalPrefixOptionalWhenFormatting
- withDomesticCarrierCodeFormattingRule:(NSString *)domesticCarrierCodeFormattingRule {
- self = [super init];
- if (self) {
- _pattern = pattern;
- _format = format;
- _leadingDigitsPatterns = leadingDigitsPatterns;
- _nationalPrefixFormattingRule = nationalPrefixFormattingRule;
- _nationalPrefixOptionalWhenFormatting = nationalPrefixOptionalWhenFormatting;
- _domesticCarrierCodeFormattingRule = domesticCarrierCodeFormattingRule;
- }
- return self;
- }
- - (instancetype)initWithEntry:(NSArray *)entry {
- self = [super init];
- if (self && entry != nil) {
- _pattern = [entry nb_safeStringAtIndex:1];
- _format = [entry nb_safeStringAtIndex:2];
- _leadingDigitsPatterns = [entry nb_safeArrayAtIndex:3];
- _nationalPrefixFormattingRule = [entry nb_safeStringAtIndex:4];
- _nationalPrefixOptionalWhenFormatting = [[entry nb_safeNumberAtIndex:6] boolValue];
- _domesticCarrierCodeFormattingRule = [entry nb_safeStringAtIndex:5];
- }
- return self;
- }
- - (NSString *)description {
- return [NSString
- stringWithFormat:
- @"[pattern:%@, format:%@, leadingDigitsPattern:%@, nationalPrefixFormattingRule:%@, "
- @"nationalPrefixOptionalWhenFormatting:%@, domesticCarrierCodeFormattingRule:%@]",
- self.pattern, self.format, self.leadingDigitsPatterns, self.nationalPrefixFormattingRule,
- self.nationalPrefixOptionalWhenFormatting ? @"Y" : @"N",
- self.domesticCarrierCodeFormattingRule];
- }
- - (id)copyWithZone:(NSZone *)zone {
- return [[NBNumberFormat alloc] initWithPattern:self.pattern
- withFormat:self.format
- withLeadingDigitsPatterns:self.leadingDigitsPatterns
- withNationalPrefixFormattingRule:self.nationalPrefixFormattingRule
- whenFormatting:self.nationalPrefixOptionalWhenFormatting
- withDomesticCarrierCodeFormattingRule:self.domesticCarrierCodeFormattingRule];
- }
- #ifdef NB_USE_EXTENSIONS
- // We believe these methods are unused.
- // If you would like them back (not behind a flag) please file a bug with a reason for needing
- // them.
- - (instancetype)initWithCoder:(NSCoder *)coder {
- if (self = [super init]) {
- _pattern = [coder decodeObjectForKey:@"pattern"];
- _format = [coder decodeObjectForKey:@"format"];
- _leadingDigitsPatterns = [coder decodeObjectForKey:@"leadingDigitsPatterns"];
- _nationalPrefixFormattingRule = [coder decodeObjectForKey:@"nationalPrefixFormattingRule"];
- _nationalPrefixOptionalWhenFormatting =
- [[coder decodeObjectForKey:@"nationalPrefixOptionalWhenFormatting"] boolValue];
- _domesticCarrierCodeFormattingRule =
- [coder decodeObjectForKey:@"domesticCarrierCodeFormattingRule"];
- }
- return self;
- }
- - (void)encodeWithCoder:(NSCoder *)coder {
- [coder encodeObject:self.pattern forKey:@"pattern"];
- [coder encodeObject:self.format forKey:@"format"];
- [coder encodeObject:self.leadingDigitsPatterns forKey:@"leadingDigitsPatterns"];
- [coder encodeObject:self.nationalPrefixFormattingRule forKey:@"nationalPrefixFormattingRule"];
- [coder encodeObject:[NSNumber numberWithBool:self.nationalPrefixOptionalWhenFormatting]
- forKey:@"nationalPrefixOptionalWhenFormatting"];
- [coder encodeObject:self.domesticCarrierCodeFormattingRule
- forKey:@"domesticCarrierCodeFormattingRule"];
- }
- #endif // NB_USE_EXTENSIONS
- @end
|