Added 'versioned' field in the JSON for Trash
[pithos] / src / gr / ebs / gss / client / rest / resource / OthersResource.java
1 /*
2  * Copyright 2009, 2010 Electronic Business Systems Ltd.
3  *
4  * This file is part of GSS.
5  *
6  * GSS is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * GSS is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with GSS.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 package gr.ebs.gss.client.rest.resource;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import com.google.gwt.core.client.GWT;
25 import com.google.gwt.json.client.JSONArray;
26 import com.google.gwt.json.client.JSONObject;
27 import com.google.gwt.json.client.JSONParser;
28 import com.google.gwt.user.client.ui.TreeItem;
29
30 /**
31  * @author kman
32  */
33 public class OthersResource extends RestResource {
34
35         public OthersResource(String aUri) {
36                 super(aUri);
37         }
38
39         List<String> others = new ArrayList<String>();
40         List<OtherUserResource> otherUsers = new ArrayList<OtherUserResource>();
41
42         /**
43          * Retrieve the others.
44          *
45          * @return the others
46          */
47         public List<String> getOthers() {
48                 return others;
49         }
50
51         /**
52          * Modify the others.
53          *
54          * @param newOthers the others to set
55          */
56         public void setOthers(List<String> newOthers) {
57                 others = newOthers;
58         }
59
60         public List<OtherUserResource> getOtherUsers() {
61                 return otherUsers;
62         }
63
64         public void setOtherUsers(List<OtherUserResource> newOtherUsers) {
65                 otherUsers = newOtherUsers;
66         }
67
68         @Override
69         public void createFromJSON(String text) {
70                 JSONArray array = (JSONArray) JSONParser.parse(text);
71                 if (array != null)
72                         for (int i = 0; i < array.size(); i++) {
73                                 JSONObject js = array.get(i).isObject();
74                                 if (js != null) {
75                                         String othersUri = unmarshallString(js, "uri");
76                                         String username = unmarshallString(js, "username");
77                                         if(othersUri != null){
78                                                 getOthers().add(othersUri);
79                                                 OtherUserResource r = new OtherUserResource(othersUri);
80                                                 r.setUsername(username);
81                                                 getOtherUsers().add(r);
82                                         }
83                                 }
84                         }
85         }
86
87         public String getUsernameOfUri(String u){
88                 if(!u.endsWith("/"))
89                         u=u+"/";
90                 for(OtherUserResource o : getOtherUsers()){
91                         GWT.log("CHECKING USER URI:"+o.getUri(), null);
92                         String toCheck = o.getUri();
93                         if(!toCheck.endsWith("/"))
94                                 toCheck=toCheck+"/";
95                         if(toCheck.equals(u))
96                                 return o.getUsername();
97                 }
98                 return null;
99         }
100
101         @Override
102         public String getLastModifiedSince() {
103                 return null;
104         }
105
106         @Override
107         public String constructUri(TreeItem treeItem,String path){
108                 String constructedUri = "Files/"+ path.substring(path.lastIndexOf("/")+1) + "others/";
109                 return constructedUri;
110         }
111 }