2 * Copyright 2011-2013 GRNET S.A. All rights reserved.
4 * Redistribution and use in source and binary forms, with or
5 * without modification, are permitted provided that the following
8 * 1. Redistributions of source code must retain the above
9 * copyright notice, this list of conditions and the following
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.
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.
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.
36 package gr.grnet.pithos.web.client.catalog;
38 import com.google.gwt.core.client.Scheduler;
39 import com.google.gwt.http.client.Request;
40 import com.google.gwt.http.client.Response;
41 import com.google.gwt.json.client.JSONObject;
42 import gr.grnet.pithos.web.client.Helpers;
43 import gr.grnet.pithos.web.client.Pithos;
45 import java.util.Iterator;
46 import java.util.List;
50 * This is a wrapper around GetUserCatalogs that takes care of updating
51 * the application-wide user catalogs.
53 public class UpdateUserCatalogs implements Scheduler.ScheduledCommand {
54 private final GetUserCatalogs getUserCatalogs;
55 private final Pithos app;
57 public UpdateUserCatalogs(Pithos app) {
58 this(app, null, null);
61 public UpdateUserCatalogs(Pithos app, String userID) {
62 this(app, Helpers.toList(userID), null);
65 public UpdateUserCatalogs(Pithos app, List<String> ids) {
69 public void onSuccess(UserCatalogs requestedUserCatalogs, UserCatalogs updatedUserCatalogs) {
70 for(Map.Entry<String, String> uc : requestedUserCatalogs) {
71 // app.LOG("New displayName ", uc.getValue());
75 public void onError(Request request, Throwable t) {
76 getUserCatalogs.onError(request, t);
79 public UpdateUserCatalogs(Pithos app, List<String> ids, List<String> names) {
81 this.getUserCatalogs = new GetUserCatalogs(app, ids, names) {
83 public void onSuccess(Request request, Response response, JSONObject result, UserCatalogs userCatalogs) {
84 UpdateUserCatalogs.this.app.getUserCatalogs().updateFrom(userCatalogs);
85 UpdateUserCatalogs.this.onSuccess(userCatalogs, UpdateUserCatalogs.this.app.getUserCatalogs());
89 public void onError(Request request, Throwable t) {
90 UpdateUserCatalogs.this.onError(request, t);
96 public void execute() {
97 this.getUserCatalogs.execute();
100 public void scheduleDeferred() {
101 Scheduler.get().scheduleDeferred(this);
104 public void scheduleEntry() {
105 Scheduler.get().scheduleEntry(this);