95 lines
3.8 KiB
Objective-C
95 lines
3.8 KiB
Objective-C
//
|
|
// 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
|