PhoneNumberFactory.java 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.zipcodewilmington.phone;
  2. import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
  3. import com.zipcodewilmington.tools.RandomNumberFactory;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. /**
  7. * Created by leon on 5/1/17.
  8. */
  9. public final class PhoneNumberFactory {
  10. private static final Logger logger = LoggerFactory.getLogger(PhoneNumberFactory.class);
  11. private PhoneNumberFactory() {
  12. /** This constructor is private
  13. * This class is uninstantiable */
  14. }
  15. /**
  16. * @param phoneNumberCount - number of PhoneNumber objects to instantiate
  17. * @return array of randomly generated PhoneNumber objects
  18. */ //TODO - Implement logic
  19. public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) {
  20. return null;
  21. }
  22. /**
  23. * @return an instance of PhoneNumber with randomly generated phone number value
  24. */ //TODO - Implement logic
  25. private static PhoneNumber createRandomPhoneNumber() {
  26. return createPhoneNumberSafely(-1, -1, -1);
  27. }
  28. /**
  29. * @param areaCode - 3 digit code
  30. * @param centralOfficeCode - 3 digit code
  31. * @param phoneLineCode - 4 digit code
  32. * @return a new phone number object
  33. */ //TODO - if input is valid, return respective PhoneNumber object, else return null
  34. public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
  35. return createPhoneNumber(null);
  36. }
  37. /**
  38. * @param phoneNumberString - some String corresponding to a phone number whose format is `(###)-###-####`
  39. * @return a new phone number object
  40. * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
  41. */ // TODO - Add throws statement to method signature
  42. public static PhoneNumber createPhoneNumber(String phoneNumberString) {
  43. return null;
  44. }
  45. }