瀏覽代碼

completed

David Thornley 8 年之前
父節點
當前提交
541a8a5e6d
共有 1 個文件被更改,包括 27 次插入6 次删除
  1. 27
    6
      src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java

+ 27
- 6
src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java 查看文件

2
 
2
 
3
 import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
3
 import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
4
 
4
 
5
+import java.util.Random;
5
 import java.util.logging.Logger;
6
 import java.util.logging.Logger;
6
 
7
 
7
 /**
8
 /**
20
      * @return array of randomly generated PhoneNumber objects
21
      * @return array of randomly generated PhoneNumber objects
21
      */ //TODO - Implement logic
22
      */ //TODO - Implement logic
22
     public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) {
23
     public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) {
23
-        return null;
24
+        PhoneNumber[] phoneBook = new PhoneNumber[phoneNumberCount];
25
+
26
+        for(int i = 1; i <= phoneNumberCount; i++){
27
+            phoneBook[i -1] = createRandomPhoneNumber();
28
+        }
29
+        return phoneBook;
24
     }
30
     }
25
 
31
 
26
     /**
32
     /**
27
      * @return an instance of PhoneNumber with randomly generated phone number value
33
      * @return an instance of PhoneNumber with randomly generated phone number value
28
      */ //TODO - Implement logic
34
      */ //TODO - Implement logic
29
     public static PhoneNumber createRandomPhoneNumber() {
35
     public static PhoneNumber createRandomPhoneNumber() {
30
-        return createPhoneNumberSafely(-1, -1, -1);
36
+        Random random = new Random();
37
+        int aC = random.nextInt(900) + 100;
38
+        int cOc = random.nextInt(900) + 100;
39
+        int pLc = random.nextInt(9000) + 1000;
40
+
41
+        return createPhoneNumberSafely(aC, cOc, pLc);
31
     }
42
     }
32
 
43
 
33
 
44
 
38
      * @return a new phone number object
49
      * @return a new phone number object
39
      */ //TODO - if input is valid, return respective PhoneNumber object, else return null
50
      */ //TODO - if input is valid, return respective PhoneNumber object, else return null
40
     public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
51
     public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
41
-        return createPhoneNumber(null);
52
+        String teleNumber = "("+ areaCode + ")-" + centralOfficeCode + "-" + phoneLineCode;
53
+        PhoneNumber pn;
54
+        try{ return pn = createPhoneNumber(teleNumber);}
55
+        catch(InvalidPhoneNumberFormatException e){
56
+            logger.warning(teleNumber + "is not a valid phone number");
57
+            return null;}
58
+
59
+
42
     }
60
     }
43
 
61
 
44
     /**
62
     /**
46
      * @return a new phone number object
64
      * @return a new phone number object
47
      * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
65
      * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
48
      */ // TODO - Add throws statement to method signature
66
      */ // TODO - Add throws statement to method signature
49
-    public static PhoneNumber createPhoneNumber(String phoneNumberString) {
50
-        return null;
67
+    public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException {
68
+        PhoneNumber pn;
69
+        logger.warning("Attempting to create a new PhoneNumber object with a value of " + phoneNumberString);
70
+        return pn = new PhoneNumber(phoneNumberString);
71
+        }
51
     }
72
     }
52
-}
73
+