/** * Assignment 1, COMP268 Class: AddressBook.java Purpose: Represents a contact from an address book. * * @author: mo khan Student ID: 3431709 Date: May 6, 2019 Version 1.0 */ package Q1; import java.util.Objects; public class AddressBook implements Comparable { private String businessPhone; private String cellPhone; private String facebookId; private String firstName = ""; private String homeAddress; private String homePhone; private String lastName = ""; private String middleName = ""; private String personalWebSite; private String skypeId; /** Create a new instance of class AddressBook. Initialize all fields to a blank string. */ public AddressBook() { this(""); } /** * Create a new instance of class AddressBook. Initialize the firstName and set all other fields * to a blank string. * * @param firstName the first name for the contact. */ public AddressBook(String firstName) { this(firstName, "", ""); } /** * Create a new instance of class AddressBook. Initialize the first name, middle name and last * name. Set all other fields to a blank string. * * @param firstName the first name of the contact. * @param middleName the middle name of the contact. * @param lastName the last name of the contact. */ public AddressBook(String firstName, String middleName, String lastName) { this(firstName, middleName, lastName, "", "", "", "", "", "", ""); } /** * Create a new instance of class AddressBook. Initialize the first name, middle name, last name, * business phone number, cell phone number, Facebook Id, home address, home phone number, * personal website and Skype Id of the contact. * * @param firstName the first name of the contact. * @param middleName the middle name of the contact. * @param lastName the last name of the contact. * @param businessPhone the phone number of the contact. * @param cellPhone the cell phone number of the contact. * @param facebookId the Facebook Id of the contact. * @param homeAddress the home address of the contact. * @param homePhone the home phone number of the contact. * @param personalWebSite the website of the contact. * @param skypeId the Skype Id of the contact. */ public AddressBook( String firstName, String middleName, String lastName, String businessPhone, String cellPhone, String facebookId, String homeAddress, String homePhone, String personalWebSite, String skypeId) { this.businessPhone = businessPhone; this.cellPhone = cellPhone; this.facebookId = facebookId; this.firstName = firstName; this.homeAddress = homeAddress; this.homePhone = homePhone; this.lastName = lastName; this.middleName = middleName; this.personalWebSite = personalWebSite; this.skypeId = skypeId; } /** * Returns the business phone number. * * @return the business phone number. */ public String getBusinessPhone() { return this.businessPhone; } /** * Returns the cell phone number. * * @return the cell phone number. */ public String getCellPhone() { return this.cellPhone; } /** * Returns the Facebook Id. * * @return the Facebook Id */ public String getFacebookId() { return this.facebookId; } /** * Returns the first name. * * @return the first name */ public String getFirstName() { return this.firstName; } /** * Returns the home address. * * @return the home address */ public String getHomeAddress() { return this.homeAddress; } /** * Returns the home phone number. * * @return the phone number */ public String getHomePhone() { return this.homePhone; } /** * Returns the last name. * * @return the last name */ public String getLastName() { return this.lastName; } /** * Returns the middle name. * * @return the middle name */ public String getMiddleName() { return this.middleName; } /** * Returns the personal website. * * @return the website name */ public String getPersonalWebSite() { return this.personalWebSite; } /** * Returns the Skype Id. * * @return the skype id */ public String getSkypeId() { return this.skypeId; } /** * Sets the business phone number. * * @param value The new phone number. */ public void setBusinessPhone(String value) { this.businessPhone = value; } public void setCellPhone(String value) { this.cellPhone = value; } public void setFacebookId(String value) { this.facebookId = value; } public void setFirstName(String name) { this.firstName = name; } public void setHomeAddress(String address) { this.homeAddress = address; } public void setHomePhone(String value) { this.homePhone = value; } public void setLastName(String name) { this.lastName = name; } public void setMiddleName(String name) { this.middleName = name; } public void setPersonalWebSite(String value) { this.personalWebSite = value; } public void setSkypeId(String value) { this.skypeId = value; } public static String compareNames(String name1, String name2) { return Integer.toString(name1.compareTo(name2)); } public int compareTo(AddressBook other) { return this.firstName.compareTo(other.firstName) + this.middleName.compareTo(other.middleName) + this.lastName.compareTo(other.lastName); } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof AddressBook)) return false; AddressBook that = (AddressBook) o; return Objects.equals(businessPhone, that.businessPhone) && Objects.equals(cellPhone, that.cellPhone) && Objects.equals(facebookId, that.facebookId) && Objects.equals(firstName, that.firstName) && Objects.equals(homeAddress, that.homeAddress) && Objects.equals(homePhone, that.homePhone) && Objects.equals(lastName, that.lastName) && Objects.equals(middleName, that.middleName) && Objects.equals(personalWebSite, that.personalWebSite) && Objects.equals(skypeId, that.skypeId); } @Override public int hashCode() { return Objects.hash( businessPhone, cellPhone, facebookId, firstName, homeAddress, homePhone, lastName, middleName, personalWebSite, skypeId); } @Override public String toString() { return this.firstName; } }