00882da19266890db06f05c2cca9b15c5f650093
[pithos-web-client] / src / gr / grnet / pithos / web / client / foldertree / FileVersions.java
1 package gr.grnet.pithos.web.client.foldertree;
2
3 import java.util.ArrayList;
4 import java.util.Date;
5 import java.util.List;
6
7 import com.google.gwt.http.client.Response;
8 import com.google.gwt.json.client.JSONArray;
9 import com.google.gwt.json.client.JSONNumber;
10 import com.google.gwt.json.client.JSONParser;
11 import com.google.gwt.json.client.JSONString;
12 import com.google.gwt.json.client.JSONValue;
13
14 public class FileVersions extends Resource {
15         private List<Version> versions;
16         
17         public List<Version> getVersions() {
18                 return versions;
19         }
20
21         public static FileVersions createFromResponse(Response response) {
22                 FileVersions res =  new FileVersions();
23                 res.populate(response);
24                 return res;
25         }
26
27         private void populate(Response response) {
28                 versions = new ArrayList<Version>();
29         JSONValue json = JSONParser.parseStrict(response.getText());
30         JSONArray array = json.isObject().get("versions").isArray();
31         if (array != null) {
32             for (int i=0; i<array.size(); i++) {
33                 JSONArray o = array.get(i).isArray();
34                 if (o != null) {
35                         int num = (int) o.get(0).isNumber().doubleValue();
36                         Date date = null;
37                         JSONNumber n = o.get(1).isNumber();
38                         if (n != null)
39                                 date = new Date((long) (n.doubleValue() * 1000)); //Convert to millis
40                         else {
41                                 JSONString s = o.get(1).isString();
42                                 if (s != null)
43                                         date = new Date((long) (Double.parseDouble(s.stringValue()) * 1000));
44                         }
45                         Version v = new Version(num, date);
46                         versions.add(v);
47                 }
48             }
49         }
50         }
51
52         @Override
53         public Date getLastModified() {
54                 return null;
55         }
56 }