package uk.ac.cam.echo.client.data;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import uk.ac.cam.echo.client.ClientApi;
import uk.ac.cam.echo.client.ProxyResource;
import uk.ac.cam.echo.data.Conversation;
import uk.ac.cam.echo.data.Interest;
import uk.ac.cam.echo.data.User;
import uk.ac.cam.echo.data.resources.ConversationResource;
import java.util.Collection;
public class UserData extends BaseData implements User{
private String username;
private ProxyResource<Conversation, ConversationResource> conversationProxy =
new ProxyResource<Conversation, ConversationResource>();
private String firstName;
private String lastName;
private String phoneNumber;
private String avatarLink;
private String email;
private String jobTitle;
private String company;
private String gender;
private String displayName;
private String password;
@Override
public void setApi(ClientApi api) {
super.setApi(api);
conversationProxy.setResource(api.conversationResource);
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
@JsonIgnore
public Conversation getCurrentConversation() {
return conversationProxy.getData();
}
public Long getCurrentConversationId() {
return conversationProxy.getId();
}
@JsonProperty
@Override
public void setCurrentConversation(Conversation conv) {
conversationProxy.setData(conv);
}
@JsonProperty
public void setCurrentConversationId(long id) {
conversationProxy.setId(id);
}
@Override
protected void configureResource() {
setResource(getApi().userResource);
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAvatarLink() {
return avatarLink;
}
public void setAvatarLink(String avatarLink) {
this.avatarLink = avatarLink;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getJobTitle() {
return jobTitle;
}
public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
@JsonIgnore
public Collection<Interest> getInterests() {
return getApi().userResource.getInterestResource(getId()).getAll();
}
}