package org.yestech.rpx.objectmodel; import org.joda.time.DateTime; import org.json.JSONObject; import static org.yestech.rpx.objectmodel.RPXUtil.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 = "profile") public class Profile implements Serializable { private Name name; private String displayname; private String preferredUsername; private String url; private Gender gender; private DateTime birthday; private String providerName; private String identifier; private String email; private String verifiedEmail; private String photo; private String utcOffset; private Address address; public Name getName() { return name; } public void setName(Name name) { this.name = name; } public String getDisplayname() { return displayname; } public void setDisplayname(String displayname) { this.displayname = displayname; } public String getPreferredUsername() { return preferredUsername; } public void setPreferredUsername(String preferredUsername) { this.preferredUsername = preferredUsername; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } public DateTime getBirthday() { return birthday; } public void setBirthday(DateTime birthday) { this.birthday = birthday; } public String getProviderName() { return providerName; } public void setProviderName(String providerName) { this.providerName = providerName; } public String getIdentifier() { return identifier; } public void setIdentifier(String identifier) { this.identifier = identifier; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getVerifiedEmail() { return verifiedEmail; } public void setVerifiedEmail(String verifiedEmail) { this.verifiedEmail = verifiedEmail; } public String getPhoto() { return photo; } public void setPhoto(String photo) { this.photo = photo; } public String getUtcOffset() { return utcOffset; } public void setUtcOffset(String utcOffset) { this.utcOffset = utcOffset; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public static Profile fromJson(JSONObject json) { Profile p = new Profile(); JSONObject jo = jsonObject(json, "name"); Name name = new Name(); name.setFormatted(jsonString(jo, "formatted")); p.setName(name); p.setDisplayname(jsonString(json, "displayName")); p.setPreferredUsername(jsonString(json, "preferredUsername")); p.setBirthday(RPXUtil.fromRPXDateString(jsonString(json, "birthday"))); p.setProviderName(jsonString(json, "providerName")); p.setIdentifier(jsonString(json, "identifier")); p.setEmail(jsonString(json, "email")); p.setUrl(jsonString(json, "url")); p.setGender(Gender.fromString(jsonString(json, "gender"))); p.verifiedEmail = jsonString(json, "verifiedEmail"); p.photo = jsonString(json, "photo"); p.utcOffset = jsonString(json, "utcOffset"); jo = jsonObject(json, "address"); p.address = Address.fromJson(jo); return p; } }