Sfoglia il codice sorgente

Merge 699e093a5c2f1fcc940387fd1ae62e76e0dae3b8 into 0665dd6f3de2bb92a7f856bde34efac87df0531f

KATRINAHIGH 8 anni fa
parent
commit
443c5c2dc1
No account linked to committer's email

+ 3
- 0
src/main/java/com/zipcodewilmington/phone/PhoneNumber.java Vedi File

@@ -23,10 +23,12 @@ public final class PhoneNumber {
23 23
     }
24 24
 
25 25
     public String getAreaCode() {
26
+
26 27
         return toString().substring(1, 4);
27 28
     }
28 29
 
29 30
     public String getCentralOfficeCode() {
31
+
30 32
         return toString().substring(6, 9);
31 33
     }
32 34
 
@@ -36,6 +38,7 @@ public final class PhoneNumber {
36 38
 
37 39
     @Override
38 40
     public String toString() {
41
+
39 42
         return phoneNumberString;
40 43
     }
41 44
 }

+ 33
- 8
src/main/java/com/zipcodewilmington/phone/PhoneNumberFactory.java Vedi File

@@ -1,13 +1,17 @@
1 1
 package com.zipcodewilmington.phone;
2 2
 
3 3
 import com.zipcodewilmington.exceptions.InvalidPhoneNumberFormatException;
4
+import com.zipcodewilmington.tools.RandomNumberFactory;
4 5
 
6
+import java.util.Formatter;
7
+import java.util.Random;
5 8
 import java.util.logging.Logger;
6
-
9
+import java.util.Random;
7 10
 /**
8 11
  * Created by leon on 5/1/17.
9 12
  */
10 13
 public final class PhoneNumberFactory {
14
+
11 15
     private static final Logger logger = Logger.getGlobal();
12 16
 
13 17
     private PhoneNumberFactory() {
@@ -20,14 +24,22 @@ public final class PhoneNumberFactory {
20 24
      * @return array of randomly generated PhoneNumber objects
21 25
      */ //TODO - Implement logic
22 26
     public static PhoneNumber[] createRandomPhoneNumberArray(int phoneNumberCount) {
23
-        return null;
27
+        PhoneNumber[] phoneArray = new PhoneNumber[phoneNumberCount];
28
+        for(int i = 0; i < phoneNumberCount; i++){
29
+            phoneArray[i] = createRandomPhoneNumber();
30
+        }
31
+        return phoneArray;
24 32
     }
25 33
 
34
+
26 35
     /**
27 36
      * @return an instance of PhoneNumber with randomly generated phone number value
28 37
      */ //TODO - Implement logic
29
-    public static PhoneNumber createRandomPhoneNumber() {
30
-        return createPhoneNumberSafely(-1, -1, -1);
38
+    public static PhoneNumber createRandomPhoneNumber()        {
39
+        int areaCode = RandomNumberFactory.createInteger(100, 999);
40
+        int centralOfficeCode = RandomNumberFactory.createInteger(100, 999);
41
+        int phoneLineCode = RandomNumberFactory.createInteger(1000, 9999);
42
+        return createPhoneNumberSafely(areaCode, centralOfficeCode, phoneLineCode);
31 43
     }
32 44
 
33 45
 
@@ -38,15 +50,28 @@ public final class PhoneNumberFactory {
38 50
      * @return a new phone number object
39 51
      */ //TODO - if input is valid, return respective PhoneNumber object, else return null
40 52
     public static PhoneNumber createPhoneNumberSafely(int areaCode, int centralOfficeCode, int phoneLineCode) {
41
-        return createPhoneNumber(null);
53
+
54
+        String phoneNumberString = String.format("(%d)-%d-%d", areaCode, centralOfficeCode, phoneLineCode);
55
+        try{
56
+        return createPhoneNumber(phoneNumberString);
57
+        }catch (InvalidPhoneNumberFormatException formatEx){
58
+            logger.info(phoneNumberString + "is not a valid phone Number.");
59
+            return null;
60
+        }
42 61
     }
43 62
 
44 63
     /**
45 64
      * @param phoneNumberString - some String corresponding to a phone number whose format is `(###)-###-####`
46 65
      * @return a new phone number object
47 66
      * @throws InvalidPhoneNumberFormatException - thrown if phoneNumberString does not match acceptable format
48
-     */ // TODO - Add throws statement to method signature
49
-    public static PhoneNumber createPhoneNumber(String phoneNumberString) {
50
-        return null;
67
+     /**Add throws statement to method signature This will ensure that any method calling
68
+    createPhoneNumber will have to handle the exception.*/
69
+    public static PhoneNumber createPhoneNumber(String phoneNumberString) throws InvalidPhoneNumberFormatException {
70
+        logger.info("Attempting to create a new PhoneNumber object with a value of" + phoneNumberString);
71
+        return new PhoneNumber(phoneNumberString);
51 72
     }
52 73
 }
74
+
75
+
76
+
77
+