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.ProxyResource;
import uk.ac.cam.echo.data.*;
import uk.ac.cam.echo.data.resources.ConferenceResource;
import uk.ac.cam.echo.data.resources.ConversationResource;
import java.util.Collection;
import java.util.List;
public class ConversationData extends BaseData implements Conversation {
private String name;
private ProxyResource<Conference, ConferenceResource> conferenceProxy =
new ProxyResource<Conference, ConferenceResource>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@JsonIgnore
public Conference getConference() {
return conferenceProxy.getData();
}
public Long getConferenceId() {
return conferenceProxy.getId();
}
@JsonProperty
public void setConference(Conference data) {
conferenceProxy.setData(data);
}
@JsonProperty
public void setConferenceId(long id) {
conferenceProxy.setId(id);
}
@Override
@JsonIgnore
public Collection<Tag> getTags() {
Collection<Tag> tags = ((ConversationResource) getResource()).getTagResource(getId()).getAll();
for (Tag t: tags) {
((TagData) t).configureResource(getId());
}
return tags;
}
@Override
@JsonIgnore
public Collection<Message> getMessages() {
return getApi().conversationResource.getMessageResource(getId()).getAll();
}
@Override
@JsonIgnore
public Collection<Message> getSortedMessages() {
return getApi().conversationResource.getMessageResource(getID()).getAll();
}
@Override
@JsonIgnore
public List<Message> getMessages(int n) {
return getApi().conversationResource.getMessageResource(getID()).getRecent(n);
}
@Override
@JsonIgnore
public List<User> getUsers() {
return (List<User>) getApi().conversationResource.getUsers(getId());
}
@Override
public void addUser(User u) {
throw new UnsupportedOperationException("Not implemented yet");
}
@Override
public void removeUser(User u) {
throw new UnsupportedOperationException("Not implemented yet");
}
@Override
public void addMessage(Message m) {
throw new UnsupportedOperationException("Not implemented yet. Use api.conversationResource.getMessageResource(conv_id).create(...)");
}
@Override
protected void configureResource() {
setResource(getApi().conversationResource);
}
}