Selaa lähdekoodia

Merge b9d9d040c4988e2d2c1dcaf3b248774afe85755e into 0665dd6f3de2bb92a7f856bde34efac87df0531f

Frankie Rodriguez 8 vuotta sitten
vanhempi
commit
3c35f1a436
No account linked to committer's email

+ 21
- 7
src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java Näytä tiedosto

@@ -1,6 +1,7 @@
1 1
 package com.zipcodewilmington.phone;
2 2
 
3 3
 import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
4
+import com.zipcodewilmington.tools.RandomNumberFactory;
4 5
 
5 6
 import java.util.logging.Logger;
6 7
 
@@ -20,14 +21,18 @@ public final class PhoneNumberFactory {
20 21
      * @return array of randomly generated PhoneNumber objects
21 22
      */ //TODO - Implement logic
22 23
     public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) {
23
-        return null;
24
+        PhoneNumber[] phoneNumberArray = new PhoneNumber[phoneNumberCount];
25
+        for (int i = 0; i<phoneNumberArray.length; i++){
26
+            phoneNumberArray[i] = createRandomPhoneNumber();
27
+        }
28
+        return phoneNumberArray;
24 29
     }
25 30
 
26 31
     /**
27 32
      * @return an instance of PhoneNumber with randomly generated phone number value
28 33
      */ //TODO - Implement logic
29
-    public static PhoneNumber createRandomPhoneNumber() {
30
-        return createPhoneNumberSafely(-1, -1, -1);
34
+    public static PhoneNumber createRandomPhoneNumber(){
35
+        return createPhoneNumberSafely(RandomNumberFactory.createInteger(100,999), RandomNumberFactory.createInteger(100,999), RandomNumberFactory.createInteger(1000,9999));
31 36
     }
32 37
 
33 38
 
@@ -37,8 +42,15 @@ public final class PhoneNumberFactory {
37 42
      * @param phoneLineCode     - 4 digit code
38 43
      * @return a new phone number object
39 44
      */ //TODO - if input is valid, return respective PhoneNumber object, else return null
40
-    public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
41
-        return createPhoneNumber(null);
45
+    public static PhoneNumber  createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
46
+        StringBuilder phoneNumber = new StringBuilder();
47
+        phoneNumber.append(String.format("(%3d)-%3d-%4d", areaCode, centralOfficeCode, phoneLineCode));
48
+        try {
49
+            return createPhoneNumber(phoneNumber.toString());
50
+        } catch (InvalidPhoneNumberFormatException e){
51
+            logger.config("(###)-###-#### is not a valid phone number");
52
+        }
53
+        return null;
42 54
     }
43 55
 
44 56
     /**
@@ -46,7 +58,9 @@ public final class PhoneNumberFactory {
46 58
      * @return a new phone number object
47 59
      * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
48 60
      */ // TODO - Add throws statement to method signature
49
-    public static PhoneNumber createPhoneNumber(String phoneNumberString) {
50
-        return null;
61
+    public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException{
62
+        PhoneNumber phoneNumber = new PhoneNumber(phoneNumberString);
63
+        logger.config("Attempting to create a new PhoneNumber object with a value of (###)-###-####");
64
+        return phoneNumber;
51 65
     }
52 66
 }