Don't throw exception when callbacks are not provided.

Project: http://git-wip-us.apache.org/repos/asf/incubator-wave/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-wave/commit/138ba70b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-wave/tree/138ba70b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-wave/diff/138ba70b

Branch: refs/heads/swellrt
Commit: 138ba70b863d490b6d4627472848f240fc0a91e4
Parents: 8468553
Author: Pablo Ojanguren <[email protected]>
Authored: Tue Sep 6 18:25:35 2016 +0200
Committer: Pablo Ojanguren <[email protected]>
Committed: Wed Sep 7 10:52:15 2016 +0200

----------------------------------------------------------------------
 .../java/org/swellrt/api/ServiceCallback.java   | 20 +++++++
 wave/src/main/java/org/swellrt/api/SwellRT.java | 60 +++++++++++++++++---
 2 files changed, 71 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/138ba70b/wave/src/main/java/org/swellrt/api/ServiceCallback.java
----------------------------------------------------------------------
diff --git a/wave/src/main/java/org/swellrt/api/ServiceCallback.java 
b/wave/src/main/java/org/swellrt/api/ServiceCallback.java
index 0bceb27..7fe6117 100644
--- a/wave/src/main/java/org/swellrt/api/ServiceCallback.java
+++ b/wave/src/main/java/org/swellrt/api/ServiceCallback.java
@@ -49,6 +49,26 @@ public class ServiceCallback extends JavaScriptObject {
 
   }
 
+  
+  private static ServiceCallback VOID_SERVICE_CALLBACK = null;
+  
+  private static native ServiceCallback createVoidCallback() /*-{
+  
+    var callback = function(x) {
+      console.log("Default callback invoked. Did you forget a callback 
argument?");
+    };
+    
+    return callback;
+  
+  }-*/;
+  
+  public static ServiceCallback getVoidCallback() {
+    
+    if (VOID_SERVICE_CALLBACK == null)
+      VOID_SERVICE_CALLBACK = createVoidCallback();
+    
+    return VOID_SERVICE_CALLBACK;    
+  }
 
   protected ServiceCallback() {
   }

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/138ba70b/wave/src/main/java/org/swellrt/api/SwellRT.java
----------------------------------------------------------------------
diff --git a/wave/src/main/java/org/swellrt/api/SwellRT.java 
b/wave/src/main/java/org/swellrt/api/SwellRT.java
index 6529863..bb5d526 100644
--- a/wave/src/main/java/org/swellrt/api/SwellRT.java
+++ b/wave/src/main/java/org/swellrt/api/SwellRT.java
@@ -190,10 +190,14 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
     channel = null;
   }
 
-  public void login(JavaScriptObject parameters, final ServiceCallback 
callback)
+  public void login(JavaScriptObject parameters, ServiceCallback _callback)
       throws RequestException {
 
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
 
+    final ServiceCallback callback = _callback;
+    
     String url = baseServerUrl + "/swell/auth";
 
     RequestBuilder builder = 
SwellRTUtils.newRequestBuilder(RequestBuilder.POST, url);
@@ -241,8 +245,13 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
 
   }
 
-  public void resume(final ServiceCallback callback)
+  public void resume(ServiceCallback _callback)
       throws RequestException {
+    
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
+
+    final ServiceCallback callback = _callback;
 
     String url = baseServerUrl + "/swell/auth";
     url = BrowserSession.addSessionToUrl(url);
@@ -293,8 +302,13 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
   }
 
 
-  public void logout(final ServiceCallback callback) throws RequestException {
+  public void logout(ServiceCallback _callback) throws RequestException {
+
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
 
+    final ServiceCallback callback = _callback;
+    
     //
     // Clean session, websocket ,objects and registries
     //
@@ -421,7 +435,12 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
    * @param callback
    * @throws RequestException
    */
-  public void open(JavaScriptObject parameters, final ServiceCallback 
callback) throws RequestException {
+  public void open(JavaScriptObject parameters, ServiceCallback _callback) 
throws RequestException {
+    
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
+
+    final ServiceCallback callback = _callback;
     
     Preconditions.checkArgument(loggedInUser != null, "Login is not present");
     
@@ -515,7 +534,11 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
   }-*/;
 
   
-  public void close(JavaScriptObject parameters, final ServiceCallback 
callback) throws RequestException {
+  public void close(JavaScriptObject parameters, ServiceCallback callback) 
throws RequestException {
+    
+    if (callback == null)
+      callback = ServiceCallback.getVoidCallback();
+    
     String id = extractWaveIdParameter(parameters);
     Preconditions.checkArgument(id != null, "Missing object or id");
     WaveId waveId = WaveId.deserialise(id);
@@ -1346,9 +1369,13 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
 
 
 
-  public void createUser(JavaScriptObject parameters, final ServiceCallback 
callback)
+  public void createUser(JavaScriptObject parameters, ServiceCallback 
_callback)
       throws RequestException {
 
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
+
+    final ServiceCallback callback = _callback;
 
     String url = baseServerUrl + "/swell/account";
     url = BrowserSession.addSessionToUrl(url);
@@ -1378,9 +1405,14 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
 
   }
 
-  public void updateUserProfile(JavaScriptObject parameters, final 
ServiceCallback callback)
+  public void updateUserProfile(JavaScriptObject parameters, ServiceCallback 
_callback)
       throws RequestException {
 
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
+
+    final ServiceCallback callback = _callback;
+    
     String url = baseServerUrl + "/swell/account/" + loggedInUser.getName();
     url = BrowserSession.addSessionToUrl(url);
 
@@ -1409,8 +1441,13 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
   }
 
 
-  public void getUserProfile(final ServiceCallback callback)
+  public void getUserProfile(ServiceCallback _callback)
       throws RequestException {
+    
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
+
+    final ServiceCallback callback = _callback;
 
     String url = baseServerUrl + "/swell/account/" + loggedInUser.getName();
     url = BrowserSession.addSessionToUrl(url);
@@ -1437,9 +1474,14 @@ public class SwellRT implements EntryPoint, 
UnsavedDataListener {
     });
   }
 
-  public void getUserProfile(JsArrayString participants, final ServiceCallback 
callback)
+  public void getUserProfile(JsArrayString participants, ServiceCallback 
_callback)
       throws RequestException {
 
+    if (_callback == null)
+      _callback = ServiceCallback.getVoidCallback();
+
+    final ServiceCallback callback = _callback;
+    
     String url = baseServerUrl + "/swell/account/";
     url = BrowserSession.addSessionToUrl(url);
 

Reply via email to