package org.yestech.rpx.objectmodel; import org.json.JSONObject; import org.json.JSONArray; import static org.yestech.rpx.objectmodel.RPXUtil.jsonString; import static org.yestech.rpx.objectmodel.RPXUtil.jsonArray; import static org.yestech.rpx.objectmodel.RPXUtil.jsonObject; import java.io.Serializable; import java.util.Collection; import java.util.ArrayList; import java.util.Collections; /** * @author A.J. Wright */ public class Contact implements Serializable { private String displayName; private Collection<TypeValue> emails = Collections.emptyList(); public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } public Collection<TypeValue> getEmails() { return emails; } public void setEmails(Collection<TypeValue> emails) { this.emails = emails; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Contact contact = (Contact) o; if (displayName != null ? !displayName.equals(contact.displayName) : contact.displayName != null) return false; //noinspection RedundantIfStatement if (emails != null ? !emails.equals(contact.emails) : contact.emails != null) return false; return true; } @Override public int hashCode() { int result = displayName != null ? displayName.hashCode() : 0; result = 31 * result + (emails != null ? emails.hashCode() : 0); return result; } @Override public String toString() { return "Contact{" + "displayName='" + displayName + '\'' + ", emails=" + emails + '}'; } public static Contact fromJson(JSONObject json) { Contact c = new Contact(); c.displayName = jsonString(json, "displayName"); JSONArray jsonArray = jsonArray(json, "emails"); if (jsonArray != null && jsonArray.length() > 0) { c.emails = new ArrayList<TypeValue>(jsonArray.length()); for (int i = 0, size = jsonArray.length(); i < size; i++) { JSONObject jo = jsonObject(jsonArray, i); c.emails.add(TypeValue.fromJson(jo)); } } return c; } }