Statistics
| Branch: | Tag: | Revision:

root / src / gr / grnet / pithos / web / client / foldertree / Resource.java @ f3c8bd5b

History | View | Annotate | Download (4.5 kB)

1
/*
2
 * Copyright 2011 GRNET S.A. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or
5
 * without modification, are permitted provided that the following
6
 * conditions are met:
7
 *
8
 *   1. Redistributions of source code must retain the above
9
 *      copyright notice, this list of conditions and the following
10
 *      disclaimer.
11
 *
12
 *   2. Redistributions in binary form must reproduce the above
13
 *      copyright notice, this list of conditions and the following
14
 *      disclaimer in the documentation and/or other materials
15
 *      provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
 * POSSIBILITY OF SUCH DAMAGE.
29
 *
30
 * The views and conclusions contained in the software and
31
 * documentation are those of the authors and should not be
32
 * interpreted as representing official policies, either expressed
33
 * or implied, of GRNET S.A.
34
 */
35

    
36
package gr.grnet.pithos.web.client.foldertree;
37

    
38
import com.google.gwt.core.client.GWT;
39
import com.google.gwt.http.client.Response;
40
import com.google.gwt.i18n.client.DateTimeFormat;
41
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
42
import com.google.gwt.json.client.JSONNumber;
43
import com.google.gwt.json.client.JSONObject;
44
import com.google.gwt.json.client.JSONString;
45

    
46
import gr.grnet.pithos.web.client.SharingUsers;
47

    
48
import java.util.Date;
49

    
50
public abstract class Resource {
51

    
52
    protected static String unmarshallString(JSONObject obj, String key){
53
        if(obj.get(key) != null) {
54
            JSONString s = obj.get(key).isString();
55
            if(s != null)
56
                return s.stringValue();
57
        }
58
        return null;
59
    }
60

    
61
    protected static int unmarshallInt(JSONObject obj, String key){
62
        if(obj.get(key) != null)
63
            if(obj.get(key).isNumber() != null)
64
                return (int) obj.get(key).isNumber().doubleValue();
65
        return -1;
66
    }
67

    
68
    protected static long unmarshallLong(JSONObject obj, String key){
69
        if(obj.get(key) != null) {
70
            JSONNumber value = obj.get(key).isNumber();
71
            if(value != null)
72
                return (long) value.doubleValue();
73
        }
74
        return -1;
75
    }
76

    
77
    protected static boolean unmarshallBoolean(JSONObject obj, String key){
78
        if(obj.get(key) != null)
79
            if(obj.get(key).isBoolean() != null)
80
                return obj.get(key).isBoolean().booleanValue();
81
        return false;
82
    }
83

    
84
    protected static Date unmarshallDate(JSONObject obj, String key){
85
        if(obj.get(key) != null) {
86
            JSONString s = obj.get(key).isString();
87
            if (s != null)
88
                                try {
89
                                        return DateTimeFormat.getFormat(PredefinedFormat.ISO_8601).parse(s.stringValue());
90
                                } catch (IllegalArgumentException e) {
91
                                        GWT.log("", e);
92
                                }
93
        }
94
        return null;
95
    }
96

    
97
    public static native String getDate(Long ms)/*-{
98
        return (new Date(ms)).toUTCString();
99
    }-*/;
100

    
101
    @SuppressWarnings("unchecked")
102
        public static <T> T createFromResponse(Class<T> aClass, String owner, Response response, T result) {
103
            T result1 = null;
104
        if (aClass.equals(AccountResource.class)) {
105
            result1 = (T) AccountResource.createFromResponse(owner, response, (AccountResource) result);
106
        }
107
        else if (aClass.equals(Folder.class)) {
108
            result1 = (T) Folder.createFromResponse(owner, response, (Folder) result);
109
        }
110
        else if (aClass.equals(File.class)) {
111
            result1 = (T) File.createFromResponse(owner, response, (File) result);
112
        }
113
        else if (aClass.equals(SharingUsers.class)) {
114
                result1 = (T) SharingUsers.createFromResponse(response, (SharingUsers) result);
115
        }
116
        else if (aClass.equals(FileVersions.class)) {
117
                result1 = (T) FileVersions.createFromResponse(response);
118
        }
119
        return result1;
120
    }
121
    
122
    public abstract Date getLastModified();
123
}