blob: 5f261a7709174619efe5139560b2901589780648 [file] [log] [blame] [edit]
//
// NBPhoneNumberFormat.m
// libPhoneNumber
//
// Created by NHN Corp. Last Edited by BAND dev team (band_dev@nhn.com)
//
#import "NBNumberFormat.h"
#import "NBPhoneNumberDefines.h"
@implementation NBNumberFormat
@synthesize pattern, format, leadingDigitsPatterns, nationalPrefixFormattingRule, nationalPrefixOptionalWhenFormatting, domesticCarrierCodeFormattingRule;
- (id)initWithData:(id)data
{
self = [self init];
if (self && data != nil && [data isKindOfClass:[NSArray class]])
{
/* 1 */ self.pattern = [data safeObjectAtIndex:1];
/* 2 */ self.format = [data safeObjectAtIndex:2];
/* 3 */ self.leadingDigitsPatterns = [self stringArrayFromData:[data safeObjectAtIndex:3]]; // NSString array
/* 4 */ self.nationalPrefixFormattingRule = [data safeObjectAtIndex:4];
/* 6 */ self.nationalPrefixOptionalWhenFormatting = [[data safeObjectAtIndex:6] boolValue];
/* 5 */ self.domesticCarrierCodeFormattingRule = [data safeObjectAtIndex:5];
}
return self;
}
- (id)init
{
self = [super init];
if (self)
{
self.nationalPrefixOptionalWhenFormatting = NO;
self.leadingDigitsPatterns = [[NSMutableArray alloc] init];
}
return self;
}
- (NSMutableArray*)stringArrayFromData:(id)data
{
NSMutableArray *resArray = [[NSMutableArray alloc] init];
if (data != nil && [data isKindOfClass:[NSArray class]])
{
for (id numFormat in data)
{
if ([numFormat isKindOfClass:[NSString class]])
{
[resArray addObject:numFormat];
}
else
{
[resArray addObject:[numFormat stringValue]];
}
}
}
return resArray;
}
- (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
{
NBNumberFormat *phoneFormatCopy = [[NBNumberFormat allocWithZone:zone] init];
/*
1 @property (nonatomic, strong, readwrite) NSString *pattern;
2 @property (nonatomic, strong, readwrite) NSString *format;
3 @property (nonatomic, strong, readwrite) NSString *leadingDigitsPattern;
4 @property (nonatomic, strong, readwrite) NSString *nationalPrefixFormattingRule;
6 @property (nonatomic, assign, readwrite) BOOL nationalPrefixOptionalWhenFormatting;
5 @property (nonatomic, strong, readwrite) NSString *domesticCarrierCodeFormattingRule;
*/
phoneFormatCopy.pattern = [self.pattern copy];
phoneFormatCopy.format = [self.format copy];
phoneFormatCopy.leadingDigitsPatterns = [self.leadingDigitsPatterns copy];
phoneFormatCopy.nationalPrefixFormattingRule = [self.nationalPrefixFormattingRule copy];
phoneFormatCopy.nationalPrefixOptionalWhenFormatting = self.nationalPrefixOptionalWhenFormatting;
phoneFormatCopy.domesticCarrierCodeFormattingRule = [self.domesticCarrierCodeFormattingRule copy];
return phoneFormatCopy;
}
- (id)initWithCoder:(NSCoder*)coder
{
if (self = [super init])
{
self.pattern = [coder decodeObjectForKey:@"pattern"];
self.format = [coder decodeObjectForKey:@"format"];
self.leadingDigitsPatterns = [coder decodeObjectForKey:@"leadingDigitsPatterns"];
self.nationalPrefixFormattingRule = [coder decodeObjectForKey:@"nationalPrefixFormattingRule"];
self.nationalPrefixOptionalWhenFormatting = [[coder decodeObjectForKey:@"nationalPrefixOptionalWhenFormatting"] boolValue];
self.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"];
}
- (void)setData:(id)data
{
if ([data isKindOfClass:[NSArray class]] || [data isKindOfClass:[NSMutableArray class]])
{
}
else if ([data isKindOfClass:[NSDictionary class]] || [data isKindOfClass:[NSMutableDictionary class]])
{
}
}
@end