+++ /dev/null
-package adullact.publicrowdfunding.model.local.ressource;
-
-import org.joda.time.DateTime;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import adullact.publicrowdfunding.model.local.cache.Cache;
-import adullact.publicrowdfunding.model.local.callback.WhatToDo;
-import adullact.publicrowdfunding.model.local.utilities.Utility;
-import adullact.publicrowdfunding.model.server.entities.RowAffected;
-import adullact.publicrowdfunding.model.server.entities.ServerBookmark;
-import adullact.publicrowdfunding.model.server.entities.Service;
-import adullact.publicrowdfunding.model.server.entities.SimpleServerResponse;
-import adullact.publicrowdfunding.model.server.event.ListerEvent;
-import adullact.publicrowdfunding.model.server.request.ListerRequest;
-import rx.Observable;
-
-/**
- * @author Ferrand and Nelaupe
- */
-public class Bookmark extends Resource<Bookmark, ServerBookmark, ServerBookmark> {
-
- /* ---- Own data ---- */
- private Integer m_id;
- private DateTime m_creationDate;
- /* ------------------ */
-
- /* --- References --- */
- private Cache<User> m_user;
- private Cache<Project> m_project;
- /* ------------------ */
-
- public Bookmark() {
- super();
-
- }
-
-
- public Bookmark(User user, Project project) {
- super();
-
- this.m_id = null;
- this.m_creationDate = DateTime.now();
- this.m_user = user.getCache();
- this.m_project = project.getCache();
- }
-
- public int id() {
- return m_id;
- }
-
- public DateTime creationDate() {
- return m_creationDate;
- }
-
- public void getUser(WhatToDo<User> userWhatToDo) {
- m_user.toResource(userWhatToDo);
- }
-
- public void getProject(WhatToDo<Project> projectWhatToDo) {
- m_project.toResource(projectWhatToDo);
- }
-
- public Cache<User> getUser() {
- return m_user;
- }
-
- public Cache<Project> getProject() {
- return m_project;
- }
-
- /* --- Resource --- */
- @Override
- public String getResourceId() {
- if(m_id == null) {
- return null;
- }
-
- return Integer.toString(m_id);
- }
-
- @Override
- public void setResourceId(String id) {
- this.m_id = Integer.parseInt(id);
- }
-
- @Override
- public ServerBookmark toServerResource() {
- ServerBookmark serverBookmark = new ServerBookmark();
- serverBookmark.id = m_id == null ? -1 : m_id;
- serverBookmark.username = m_user.getResourceId();
- serverBookmark.projectID = m_project.getResourceId();
- serverBookmark.creationDate = Utility.DateTimeToString(m_creationDate);
-
- return serverBookmark;
- }
-
- @Override
- public Bookmark makeCopyFromServer(ServerBookmark serverBookmark) {
- Bookmark bookmark = new Bookmark();
- bookmark.m_id = serverBookmark.id;
- bookmark.m_user = new User().getCache(serverBookmark.username);
- bookmark.m_project = new Project().getCache(serverBookmark.projectID);
- bookmark.m_creationDate = Utility.stringToDateTime(serverBookmark.creationDate);
- bookmark.getCache().declareUpToDate();
-
- return bookmark;
- }
-
- @Override
- public Bookmark syncFromServer(ServerBookmark serverBookmark) {
- this.m_id = serverBookmark.id;
- this.m_user = new User().getCache(serverBookmark.username);
- this.m_project = new Project().getCache(serverBookmark.projectID);
- this.m_creationDate = Utility.stringToDateTime(serverBookmark.creationDate);
-
- return this;
- }
-
- @Override
- public Observable<ServerBookmark> methodGET(Service service) {
- return service.detailBookmark(getResourceId());
- }
-
- @Override
- public Observable<ArrayList<ServerBookmark>> methodGETAll(Service service, Map<String, String> filter) {
- return service.listBookmarks(filter);
- }
-
- @Override
- public Observable<SimpleServerResponse> methodPUT(Service service) {
- return service.modifyBookmark(getResourceId(), toServerResource());
- }
-
- @Override
- public Observable<RowAffected> methodPOST(Service service) {
- return service.createBookmark(toServerResource());
- }
-
- @Override
- public Observable<SimpleServerResponse> methodDELETE(Service service) {
- return service.deleteBookmark(getResourceId());
- }
- /* ------------ */
-
- public void serverListerByUser(String pseudo, ListerEvent<Bookmark> bookmarkListerEvent) {
- HashMap<String, String> filter = new HashMap<String, String>();
- filter.put("user", pseudo);
-
- (new ListerRequest<Bookmark, ServerBookmark, ServerBookmark>(this, filter, bookmarkListerEvent)).execute();
- }
-}