| // |
| // NBPhoneNumberDefines.h |
| // libPhoneNumber |
| // |
| // Created by NHN Corp. Last Edited by BAND dev team (band_dev@nhn.com) |
| // |
| |
| #ifndef libPhoneNumber_NBPhoneNumberDefines_h |
| #define libPhoneNumber_NBPhoneNumberDefines_h |
| |
| #define NB_YES [NSNumber numberWithBool:YES] |
| #define NB_NO [NSNumber numberWithBool:NO] |
| |
| #pragma mark - Enum - |
| |
| typedef enum { |
| NBEPhoneNumberFormatE164 = 0, |
| NBEPhoneNumberFormatINTERNATIONAL = 1, |
| NBEPhoneNumberFormatNATIONAL = 2, |
| NBEPhoneNumberFormatRFC3966 = 3 |
| } NBEPhoneNumberFormat; |
| |
| |
| typedef enum { |
| NBEPhoneNumberTypeFIXED_LINE = 0, |
| NBEPhoneNumberTypeMOBILE = 1, |
| // In some regions (e.g. the USA), it is impossible to distinguish between |
| // fixed-line and mobile numbers by looking at the phone number itself. |
| NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE = 2, |
| // Freephone lines |
| NBEPhoneNumberTypeTOLL_FREE = 3, |
| NBEPhoneNumberTypePREMIUM_RATE = 4, |
| // The cost of this call is shared between the caller and the recipient, and |
| // is hence typically less than PREMIUM_RATE calls. See |
| // http://en.wikipedia.org/wiki/Shared_Cost_Service for more information. |
| NBEPhoneNumberTypeSHARED_COST = 5, |
| // Voice over IP numbers. This includes TSoIP (Telephony Service over IP). |
| NBEPhoneNumberTypeVOIP = 6, |
| // A personal number is associated with a particular person, and may be routed |
| // to either a MOBILE or FIXED_LINE number. Some more information can be found |
| // here = http://en.wikipedia.org/wiki/Personal_Numbers |
| NBEPhoneNumberTypePERSONAL_NUMBER = 7, |
| NBEPhoneNumberTypePAGER = 8, |
| // Used for 'Universal Access Numbers' or 'Company Numbers'. They may be |
| // further routed to specific offices, but allow one number to be used for a |
| // company. |
| NBEPhoneNumberTypeUAN = 9, |
| // Used for 'Voice Mail Access Numbers'. |
| NBEPhoneNumberTypeVOICEMAIL = 10, |
| // A phone number is of type UNKNOWN when it does not fit any of the known |
| // patterns for a specific region. |
| NBEPhoneNumberTypeUNKNOWN = -1 |
| } NBEPhoneNumberType; |
| |
| |
| typedef enum { |
| NBEMatchTypeNOT_A_NUMBER = 0, |
| NBEMatchTypeNO_MATCH = 1, |
| NBEMatchTypeSHORT_NSN_MATCH = 2, |
| NBEMatchTypeNSN_MATCH = 3, |
| NBEMatchTypeEXACT_MATCH = 4 |
| } NBEMatchType; |
| |
| |
| typedef enum { |
| NBEValidationResultIS_POSSIBLE = 0, |
| NBEValidationResultINVALID_COUNTRY_CODE = 1, |
| NBEValidationResultTOO_SHORT = 2, |
| NBEValidationResultTOO_LONG = 3 |
| } NBEValidationResult; |
| |
| |
| typedef enum { |
| NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN = 1, |
| NBECountryCodeSourceFROM_NUMBER_WITH_IDD = 5, |
| NBECountryCodeSourceFROM_NUMBER_WITHOUT_PLUS_SIGN = 10, |
| NBECountryCodeSourceFROM_DEFAULT_COUNTRY = 20 |
| } NBECountryCodeSource; |
| |
| |
| @interface NSArray (NBAdditions) |
| |
| - (id)safeObjectAtIndex:(NSUInteger)index; |
| |
| @end |
| |
| |
| @implementation NSArray (NBAdditions) |
| |
| - (id)safeObjectAtIndex:(NSUInteger)index |
| { |
| @synchronized(self) |
| { |
| if(index >= [self count]) return nil; |
| |
| id res = [self objectAtIndex:index]; |
| |
| if (res == nil || (NSNull*)res == [NSNull null]) |
| return nil; |
| |
| return res; |
| } |
| } |
| |
| @end |
| |
| #endif |