diff --git a/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java b/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java index 5d3fb58..a0595de 100644 --- a/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java +++ b/src/main/java/com/zipcodewilmington/exceptions/InvalidPhoneNumberFormatException.java @@ -4,4 +4,5 @@ * Created by leon on 5/10/17. */ // Checked Exception public final class InvalidPhoneNumberFormatException extends Exception { + } diff --git a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java index 36d323b..946928e 100644 --- a/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java +++ b/src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java @@ -1,6 +1,7 @@ package com.zipcodewilmington.phone; import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException; +import com.zipcodewilmington.tools.RandomNumberFactory; import java.util.logging.Logger; @@ -20,17 +21,30 @@ private PhoneNumberFactory() { * @return array of randomly generated PhoneNumber objects */ //TODO - Implement logic public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) { - return null; + PhoneNumber[] phoneNumberArray = new PhoneNumber[phoneNumberCount]; + for (int i = 0; i < phoneNumberCount; i++){ + phoneNumberArray[i]=createRandomPhoneNumber(); + } + return phoneNumberArray; + } /** * @return an instance of PhoneNumber with randomly generated phone number value */ //TODO - Implement logic public static PhoneNumber createRandomPhoneNumber() { - return createPhoneNumberSafely(-1, -1, -1); + int areaCode = RandomNumberFactory.createInteger(100, 999); + int centralOfficeCode = RandomNumberFactory.createInteger(100, 999); + int phoneLineCode = RandomNumberFactory.createInteger(1000, 9999); + + return createPhoneNumberSafely(areaCode, centralOfficeCode, phoneLineCode); } + + + + /** * @param areaCode - 3 digit code * @param centralOfficeCode - 3 digit code @@ -38,7 +52,18 @@ public static PhoneNumber createRandomPhoneNumber() { * @return a new phone number object */ //TODO - if input is valid, return respective PhoneNumber object, else return null public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) { - return createPhoneNumber(null); + StringBuilder builder = new StringBuilder(); + builder.append("("+areaCode +")"+ "-"+ centralOfficeCode + "-"+phoneLineCode); + String phoneNumberString = builder.toString(); + try{ + return createPhoneNumber(phoneNumberString); + }catch(InvalidPhoneNumberFormatException e){ + logger.info(phoneNumberString + " is incorrect, please try again."); + return null; + + + } + } /** @@ -46,7 +71,7 @@ public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOffic * @return a new phone number object * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format */ // TODO - Add throws statement to method signature - public static PhoneNumber createPhoneNumber(String phoneNumberString) { - return null; + public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException { + return new PhoneNumber(phoneNumberString); } }