-
Notifications
You must be signed in to change notification settings - Fork 0
/
Person.java
141 lines (114 loc) · 3.92 KB
/
Person.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package application;
// Eduardo Cruz
// CS2012
// Description: The Person class uses constructors to create an object that define a person.
// This will serve as the superclass for the following classes: Student, Employee, Faculty, and Staff.
import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
public class Person {
private static final AtomicInteger count = new AtomicInteger(0);
private int id;
private String firstName;
private String lastName;
private String emailAddress;
private Address address;
private ArrayList<PhoneNumber> phoneNumbers;
public Person() {
this.id = count.incrementAndGet();
this.phoneNumbers = new ArrayList<PhoneNumber>();
this.firstName = "N/A";
this.lastName = "N/A";
this.emailAddress = "N/A";
}
public Person(String firstName, String lastName, String emailAddress,
Address address, String type, String number) throws PhoneNumberFormatException {
this.id = count.incrementAndGet();
this.firstName = firstName;
this.lastName = lastName;
this.emailAddress = emailAddress;
this.address = address;
this.phoneNumbers = new ArrayList<PhoneNumber>();
phoneNumbers.add(new PhoneNumber(type, number));
}
public Person(String firstName, String lastName, String emailAddress, Address address) throws PhoneNumberFormatException {
this.id = count.incrementAndGet();
this.firstName = firstName;
this.lastName = lastName;
this.emailAddress = emailAddress;
this.address = address;
this.phoneNumbers = new ArrayList<PhoneNumber>();
}
public int getId() {
return this.id;
}
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailAddress() {
return this.emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public Address getAddress() {
return this.address;
}
public void setAddress(Address address) {
this.address = address;
}
public ArrayList<PhoneNumber> getPhoneNumbers() {
return this.phoneNumbers;
}
public String getFormattedPhoneNumbers() {
String formattedPhoneNumbers = "";
for(int i = 0; i < phoneNumbers.size(); i++) {
if(i == 0)
formattedPhoneNumbers += phoneNumbers.get(i).getPhoneNumber() + "\n";
else if(i < phoneNumbers.size())
formattedPhoneNumbers += phoneNumbers.get(i).getPhoneNumber() + "\n";
else
formattedPhoneNumbers += phoneNumbers.get(i).getPhoneNumber();
}
return formattedPhoneNumbers;
}
public void addPhoneNumber(String type, String number)
throws PhoneNumberFormatException {
phoneNumbers.add(new PhoneNumber(type, number));
}
public boolean equals(Object obj) {
if(!(obj instanceof Person)) {
return false;
}
Person other = (Person) obj;
boolean isFirstNameEqual = this.firstName.equals(other.firstName);
boolean isLastNameEqual = this.lastName.equals(other.lastName);
boolean isEmailAddressEqual = this.emailAddress.equals(other.emailAddress);
boolean isAddressEqual = this.address.equals(other.address);
boolean isPhoneNumbersEqual = this.phoneNumbers.equals(other.phoneNumbers);
return isFirstNameEqual && isLastNameEqual &&
isEmailAddressEqual && isAddressEqual && isPhoneNumbersEqual;
}
public String toString() {
String result = "";
result += "Person," + this.firstName + "," + this.lastName + "," +
this.emailAddress + "\n" + this.address + "\n";
for(int i = 0; i < phoneNumbers.size(); i++) {
if(i == 0)
result += phoneNumbers.get(i) + "\n";
else
result += phoneNumbers.get(i) + "\n";
}
if(phoneNumbers.size() == 0)
result += "\n";
return result;
}
}