Remove @author tag
[pithos-web-client] / src / gr / grnet / pithos / web / client / catalog / UpdateUserCatalogs.java
1 package gr.grnet.pithos.web.client.catalog;
2
3 import com.google.gwt.core.client.Scheduler;
4 import com.google.gwt.http.client.Request;
5 import com.google.gwt.http.client.Response;
6 import com.google.gwt.json.client.JSONObject;
7 import gr.grnet.pithos.web.client.Helpers;
8 import gr.grnet.pithos.web.client.Pithos;
9
10 import java.util.List;
11
12 /**
13  * This is a wrapper around GetUserCatalogs that takes care of updating
14  * the application-wide user catalogs.
15  */
16 public class UpdateUserCatalogs implements Scheduler.ScheduledCommand {
17     private final GetUserCatalogs getUserCatalogs;
18     private final Pithos app;
19
20     public UpdateUserCatalogs(Pithos app) {
21         this(app, null, null);
22     }
23
24     public UpdateUserCatalogs(Pithos app, String userID) {
25         this(app, Helpers.toList(userID), null);
26     }
27
28     public UpdateUserCatalogs(Pithos app, List<String> ids) {
29         this(app, ids, null);
30     }
31
32     public void onSuccess(UserCatalogs requestedUserCatalogs, UserCatalogs updatedUserCatalogs) {
33     }
34
35     public void onError(Request request, Throwable t) {
36         getUserCatalogs.onError(request, t);
37     }
38
39     public UpdateUserCatalogs(Pithos app, List<String> ids, List<String> names) {
40         this.app = app;
41         this.getUserCatalogs = new GetUserCatalogs(app, ids, names) {
42             @Override
43             public void onSuccess(Request request, Response response, JSONObject result, UserCatalogs userCatalogs) {
44                 UpdateUserCatalogs.this.app.getUserCatalogs().updateFrom(userCatalogs);
45                 UpdateUserCatalogs.this.onSuccess(userCatalogs, UpdateUserCatalogs.this.app.getUserCatalogs());
46             }
47
48             @Override
49             public void onError(Request request, Throwable t) {
50                 UpdateUserCatalogs.this.onError(request, t);
51             }
52         };
53     }
54
55     @Override
56     public void execute() {
57         this.getUserCatalogs.execute();
58     }
59
60     public void scheduleDeferred() {
61         Scheduler.get().scheduleDeferred(this);
62     }
63 }