package org.yestech.rpx.objectmodel;
import org.json.JSONObject;
import static org.yestech.rpx.objectmodel.RPXUtil.jsonString;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
/**
* @author A.J. Wright
*/
@XmlRootElement(name = "name")
public class Name implements Serializable {
private String formatted;
private String familyName;
private String givenName;
private String middleName;
private String honorificPrefix;
private String honorificSuffix;
public String getFormatted() {
return formatted;
}
public void setFormatted(String formatted) {
this.formatted = formatted;
}
public String getFamilyName() {
return familyName;
}
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
public String getGivenName() {
return givenName;
}
public void setGivenName(String givenName) {
this.givenName = givenName;
}
public String getMiddleName() {
return middleName;
}
public void setMiddleName(String middleName) {
this.middleName = middleName;
}
public String getHonorificPrefix() {
return honorificPrefix;
}
public void setHonorificPrefix(String honorificPrefix) {
this.honorificPrefix = honorificPrefix;
}
public String getHonorificSuffix() {
return honorificSuffix;
}
public void setHonorificSuffix(String honorificSuffix) {
this.honorificSuffix = honorificSuffix;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Name name = (Name) o;
if (familyName != null ? !familyName.equals(name.familyName) : name.familyName != null) return false;
if (formatted != null ? !formatted.equals(name.formatted) : name.formatted != null) return false;
if (givenName != null ? !givenName.equals(name.givenName) : name.givenName != null) return false;
if (honorificPrefix != null ? !honorificPrefix.equals(name.honorificPrefix) : name.honorificPrefix != null)
return false;
if (honorificSuffix != null ? !honorificSuffix.equals(name.honorificSuffix) : name.honorificSuffix != null)
return false;
//noinspection RedundantIfStatement
if (middleName != null ? !middleName.equals(name.middleName) : name.middleName != null) return false;
return true;
}
@Override
public int hashCode() {
int result = formatted != null ? formatted.hashCode() : 0;
result = 31 * result + (familyName != null ? familyName.hashCode() : 0);
result = 31 * result + (givenName != null ? givenName.hashCode() : 0);
result = 31 * result + (middleName != null ? middleName.hashCode() : 0);
result = 31 * result + (honorificPrefix != null ? honorificPrefix.hashCode() : 0);
result = 31 * result + (honorificSuffix != null ? honorificSuffix.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Name{" +
"formatted='" + formatted + '\'' +
", familyName='" + familyName + '\'' +
", givenName='" + givenName + '\'' +
", middleName='" + middleName + '\'' +
", honorificPrefix='" + honorificPrefix + '\'' +
", honorificSuffix='" + honorificSuffix + '\'' +
'}';
}
public static Name fromJson(JSONObject jo) {
Name name = new Name();
name.formatted = jsonString(jo, "formatted");
name.familyName = jsonString(jo, "familyName");
name.givenName = jsonString(jo, "givenName");
name.honorificPrefix = jsonString(jo, "honorificPrefix");
name.honorificSuffix = jsonString(jo, "honorificSuffix");
return name;
}
}