Revision 5cd18037 web_client/src/gr/grnet/pithos/web/client/foldertree/AccountResource.java

b/web_client/src/gr/grnet/pithos/web/client/foldertree/AccountResource.java
5 5
package gr.grnet.pithos.web.client.foldertree;
6 6

  
7 7
import com.google.gwt.http.client.Header;
8
import com.google.gwt.http.client.Response;
9
import com.google.gwt.i18n.client.DateTimeFormat;
10
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
11
import com.google.gwt.i18n.client.NumberFormat;
8 12
import com.google.gwt.json.client.JSONArray;
9 13
import com.google.gwt.json.client.JSONObject;
10 14
import com.google.gwt.json.client.JSONParser;
11 15
import com.google.gwt.json.client.JSONValue;
12 16
import gr.grnet.pithos.web.client.rest.resource.RestResource;
13 17
import java.util.ArrayList;
18
import java.util.Date;
19
import java.util.LinkedHashSet;
14 20
import java.util.List;
21
import java.util.Set;
15 22

  
16 23
/**
17 24
 * Created by IntelliJ IDEA. User: chstath Date: 5/19/11 Time: 2:55 PM To change this template use File | Settings |
......
19 26
 */
20 27
public class AccountResource extends Resource {
21 28

  
22
    private List<ContainerResource> containers = new ArrayList<ContainerResource>();
29
    private long numberOfContainers = 0;
30

  
31
    private long numberOfObjects = 0;
32

  
33
    private long bytesUsed = 0;
34

  
35
    private long bytesRemaining = 0;
36

  
37
    private Date lastLogin = null;
38

  
39
    private Date lastModified = null;
40
    
41
    private Set<Folder> containers = new LinkedHashSet<Folder>();
42

  
43
    private Date currentLogin = null;
44

  
45
    public long getBytesRemaining() {
46
        return bytesRemaining;
47
    }
48

  
49
    public void setBytesRemaining(long bytesRemaining) {
50
        this.bytesRemaining = bytesRemaining;
51
    }
52

  
53
    public long getBytesUsed() {
54
        return bytesUsed;
55
    }
56

  
57
    public void setBytesUsed(long bytesUsed) {
58
        this.bytesUsed = bytesUsed;
59
    }
60

  
61
    public Date getLastLogin() {
62
        return lastLogin;
63
    }
64

  
65
    public void setLastLogin(Date lastLogin) {
66
        this.lastLogin = lastLogin;
67
    }
68

  
69
    public Date getLastModified() {
70
        return lastModified;
71
    }
72

  
73
    public void setLastModified(Date lastModified) {
74
        this.lastModified = lastModified;
75
    }
76

  
77
    public long getNumberOfContainers() {
78
        return numberOfContainers;
79
    }
80

  
81
    public void setNumberOfContainers(long numberOfContainers) {
82
        this.numberOfContainers = numberOfContainers;
83
    }
84

  
85
    public long getNumberOfObjects() {
86
        return numberOfObjects;
87
    }
88

  
89
    public void setNumberOfObjects(long numberOfObjects) {
90
        this.numberOfObjects = numberOfObjects;
91
    }
23 92

  
24 93
    @Override
25 94
    public String getLastModifiedSince() {
26 95
        return null;
27 96
    }
28 97

  
29
    public List<ContainerResource> getContainers() {
98
    public Set<Folder> getContainers() {
30 99
        return containers;
31 100
    }
101

  
102
    public Date getCurrentLogin() {
103
        return currentLogin;
104
    }
105

  
106
    public void setCurrentLogin(Date currentLogin) {
107
        this.currentLogin = currentLogin;
108
    }
109

  
110
    public void populate(Response response) {
111
        String header = response.getHeader("X-Account-Container-Count");
112
        if (header != null)
113
            numberOfContainers = Long.valueOf(header);
114

  
115
        header = response.getHeader("X-Account-Object-Count");
116
        if (header != null)
117
            numberOfObjects = Long.valueOf(header);
118

  
119
        header = response.getHeader("X-Account-Bytes-Used");
120
        if (header != null)
121
            bytesUsed = Long.valueOf(header);
122

  
123
        header = response.getHeader("X-Account-Bytes-Remaining");
124
        if (header != null)
125
            bytesRemaining = Long.valueOf(header);
126

  
127
        DateTimeFormat df = DateTimeFormat.getFormat(PredefinedFormat.RFC_2822);
128
        header = response.getHeader("X-Account-Last-Login");
129
        if (header != null)
130
            lastLogin = df.parse(header);
131

  
132
        header = response.getHeader("Last-Modified");
133
        if (header != null)
134
            lastModified = df.parse(header);
135

  
136
        JSONValue json = JSONParser.parseStrict(response.getText());
137
        JSONArray array = json.isArray();
138
        if (array != null) {
139
            for (int i=0; i<array.size(); i++) {
140
                JSONObject o = array.get(i).isObject();
141
                if (o != null) {
142
                    Folder f = new Folder();
143
                    f.populate(o);
144
                    containers.add(f);
145
                }
146
            }
147
        }
148
    }
149

  
150
    public static AccountResource createFromResponse(Response response) {
151
        AccountResource a = new AccountResource();
152
        a.populate(response);
153
        return a;
154
    }
155

  
156
    private String getSize(Long size, Double division){
157
        Double res = Double.valueOf(size.toString())/division;
158
        NumberFormat nf = NumberFormat.getFormat("######.#");
159
        return nf.format(res);
160
    }
161

  
162
    public String getFileSizeAsString() {
163
        if (bytesUsed < 1024)
164
            return String.valueOf(bytesUsed) + " B";
165
        else if (bytesUsed < 1024*1024)
166
            return getSize(bytesUsed, 1024D) + " KB";
167
        else if (bytesUsed < 1024*1024*1024)
168
            return getSize(bytesUsed,(1024D*1024D)) + " MB";
169
        return getSize(bytesUsed , (1024D*1024D*1024D)) + " GB";
170
    }
171

  
172
    public String getQuotaLeftAsString() {
173
        if (bytesRemaining < 1024)
174
            return String.valueOf(bytesRemaining) + " B";
175
        else if (bytesRemaining < 1024 * 1024)
176
            return getSize(bytesRemaining, 1024D) + " KB";
177
        else if (bytesRemaining < 1024 * 1024 * 1024)
178
            return getSize(bytesRemaining,(1024D * 1024D)) + " MB";
179
        return getSize(bytesRemaining , (1024D * 1024D * 1024D)) + " GB";
180
    }
32 181
}

Also available in: Unified diff