Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static final Set<Integer> PHONENUMBER_ONEDIGITCOUNTRYCODES = new Set<Integer>
- {
- 1, 7
- };
- private static final Set<Integer> PHONENUMBER_THREEDIGITCOUNTRYCODES = new Set<Integer>
- {
- 35, 37, 38, 42, 99, 21, 22, 23, 24, 25, 26, 29, 35, 37, 38, 42, 50, 59, 67, 68, 69, 85, 88, 96, 97, 9
- };
- global virtual class PhoneNumber implements xa.xType.xTypeInfo
- {
- public Integer countryCode { get; set; }
- public Integer areaCode { get; set; }
- public Long localNumber { get; set; }
- global PhoneNumber(String rawPhoneNumber)
- {
- if (rawPhoneNumber != null && rawPhoneNumber.length() > 0)
- {
- String str = rawPhoneNumber.replaceAll('([+-])', '').replaceAll(' ', '')
- .replaceAll('\(', '')
- .replaceAll('\)', '');
- if (str.length() == 11)
- {
- if (PHONENUMBER_ONEDIGITCOUNTRYCODES.contains(Integer.valueOf(str.substring(0, 1))))
- {
- this(Integer.valueOf(str.substring(0, 1)),
- Integer.valueOf(str.substring(1, 4)),
- Integer.valueOf(str.substring(4)));
- }
- else if (PHONENUMBER_THREEDIGITCOUNTRYCODES.contains(Integer.valueOf(str.substring(0, 2))))
- {
- this(Integer.valueOf(str.substring(0, 3))
- , Integer.valueOf(str.substring(3, 6))
- , Integer.valueOf(str.substring(6)));
- }
- else
- {
- this(Integer.valueOf(str.substring(0, 2))
- , Integer.valueOf(str.substring(2, 4))
- , Integer.valueOf(str.substring(4)));
- }
- }
- else
- {
- localNumber = Long.valueOf(str);
- }
- }
- }
- global PhoneNumber(Integer country, Integer area, Integer zone)
- {
- System.debug(country + ' ' + area + ' ' + zone);
- this.countryCode = country;
- this.areaCode = area;
- this.localNumber = zone;
- }
- global override String toString()
- {
- return ((countryCode != null) ? '+' + String.valueOf(countryCode) : '')
- + ((areaCode != null) ? '(' + String.valueOf(areaCode) + ')' : '')
- + ((localNumber != null) ? String.valueOf(localNumber) : '');
- }
- }
Add Comment
Please, Sign In to add comment