Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (4.7 kB)

1
/*
2
 * Copyright 2011-2012 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.Invitations;
47
import gr.grnet.pithos.web.client.SharingUsers;
48

    
49
import java.util.Date;
50

    
51
public abstract class Resource {
52

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

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

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

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

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

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

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