X-Git-Url: https://code.grnet.gr/git/pithos-web-client/blobdiff_plain/b51c628bc1f20edc7454361492a829dbb7195302..2dd70d7a3ff255419741c1ce525e49f245ea1237:/src/gr/grnet/pithos/web/client/foldertree/Resource.java?ds=sidebyside diff --git a/src/gr/grnet/pithos/web/client/foldertree/Resource.java b/src/gr/grnet/pithos/web/client/foldertree/Resource.java index 3582c07..9c1a482 100644 --- a/src/gr/grnet/pithos/web/client/foldertree/Resource.java +++ b/src/gr/grnet/pithos/web/client/foldertree/Resource.java @@ -1,5 +1,5 @@ /* - * Copyright 2011 GRNET S.A. All rights reserved. + * Copyright 2011-2012 GRNET S.A. All rights reserved. * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following @@ -35,18 +35,20 @@ package gr.grnet.pithos.web.client.foldertree; +import com.google.gwt.core.client.GWT; import com.google.gwt.http.client.Response; import com.google.gwt.i18n.client.DateTimeFormat; -import com.google.gwt.json.client.JSONArray; +import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONObject; -import com.google.gwt.json.client.JSONParser; import com.google.gwt.json.client.JSONString; -import com.google.gwt.json.client.JSONValue; -import gr.grnet.pithos.web.client.rest.resource.FolderResource; + +import gr.grnet.pithos.web.client.Invitations; +import gr.grnet.pithos.web.client.SharingUsers; + import java.util.Date; -public class Resource { +public abstract class Resource { protected static String unmarshallString(JSONObject obj, String key){ if(obj.get(key) != null) { @@ -60,7 +62,7 @@ public class Resource { protected static int unmarshallInt(JSONObject obj, String key){ if(obj.get(key) != null) if(obj.get(key).isNumber() != null) - return (int) obj.get(key).isNumber().getValue(); + return (int) obj.get(key).isNumber().doubleValue(); return -1; } @@ -84,7 +86,11 @@ public class Resource { if(obj.get(key) != null) { JSONString s = obj.get(key).isString(); if (s != null) - return DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ss").parse(s.stringValue()); + try { + return DateTimeFormat.getFormat(PredefinedFormat.ISO_8601).parse(s.stringValue()); + } catch (IllegalArgumentException e) { + GWT.log("", e); + } } return null; } @@ -93,16 +99,29 @@ public class Resource { return (new Date(ms)).toUTCString(); }-*/; - public static T createFromResponse(Class aClass, String owner, Response response, T result) { + @SuppressWarnings("unchecked") + public static T createFromResponse(Class aClass, String owner, Response response, T result) { + T result1 = null; if (aClass.equals(AccountResource.class)) { - result = (T) AccountResource.createFromResponse(owner, response); + result1 = (T) AccountResource.createFromResponse(owner, response, (AccountResource) result); } else if (aClass.equals(Folder.class)) { - result = (T) Folder.createFromResponse(owner, response, (Folder) result); + result1 = (T) Folder.createFromResponse(owner, response, (Folder) result); } else if (aClass.equals(File.class)) { - result = (T) File.createFromResponse(owner, response, (File) result); + result1 = (T) File.createFromResponse(owner, response, (File) result); + } + else if (aClass.equals(SharingUsers.class)) { + result1 = (T) SharingUsers.createFromResponse(response, (SharingUsers) result); + } + else if (aClass.equals(FileVersions.class)) { + result1 = (T) FileVersions.createFromResponse(response); + } + else if (aClass.equals(Invitations.class)) { + result1 = (T) Invitations.createFromResponse(response); } - return result; + return result1; } + + public abstract Date getLastModified(); }