@@ -73,6 +73,7 @@ public void onSuccess(JSONObject json) {
73
73
result .set (list );
74
74
} catch (JSONException e ) {
75
75
log (e );
76
+ result .setException (e );
76
77
}
77
78
}
78
79
});
@@ -135,6 +136,7 @@ public void onSuccess(JSONObject json) {
135
136
result .set (SPListItem .listFromJson (json ));
136
137
} catch (JSONException e ) {
137
138
log (e );
139
+ result .setException (e );
138
140
}
139
141
}
140
142
});
@@ -197,6 +199,7 @@ public void onSuccess(JSONObject json) {
197
199
result .set (SPListItem .listFromJson (json ));
198
200
} catch (JSONException e ) {
199
201
log (e );
202
+ result .setException (e );
200
203
}
201
204
}
202
205
});
@@ -230,6 +233,7 @@ public void onSuccess(JSONObject json) {
230
233
result .set (SPListField .listFromJson (json ));
231
234
} catch (JSONException e ) {
232
235
log (e );
236
+ result .setException (e );
233
237
}
234
238
}
235
239
});
@@ -419,6 +423,71 @@ public void onSuccess(JSONObject json) {
419
423
result .set (columnNames );
420
424
} catch (JSONException e ) {
421
425
log (e );
426
+ result .setException (e );
427
+ }
428
+ }
429
+ });
430
+ return result ;
431
+ }
432
+
433
+
434
+ /**
435
+ * Get a list of sub-webs for the current site collection
436
+ * @return
437
+ */
438
+ public ListenableFuture <List <SPWeb >> getSubWebs () {
439
+ final SettableFuture <List <SPWeb >> result = SettableFuture .create ();
440
+
441
+ String getListsUrl = getSiteUrl () + "_api/web/?$select=Webs&$expand=Webs" ;
442
+
443
+ ListenableFuture <JSONObject > request = executeRequestJson (getListsUrl , "GET" );
444
+
445
+ Futures .addCallback (request , new FutureCallback <JSONObject >() {
446
+ @ Override
447
+ public void onFailure (Throwable t ) {
448
+ result .setException (t );
449
+ }
450
+
451
+ @ Override
452
+ public void onSuccess (JSONObject json ) {
453
+ try {
454
+ List <SPWeb > list = SPWeb .listFromJson (json );
455
+ result .set (list );
456
+ } catch (JSONException e ) {
457
+ log (e );
458
+ result .setException (e );
459
+ }
460
+ }
461
+ });
462
+ return result ;
463
+ }
464
+
465
+
466
+ /**
467
+ * Get root web for the current site collection
468
+ * @return
469
+ */
470
+ public ListenableFuture <SPWeb > getRootWeb () {
471
+ final SettableFuture <SPWeb > result = SettableFuture .create ();
472
+
473
+ String getListsUrl = getSiteUrl () + "_api/Site/RootWeb" ;
474
+
475
+ ListenableFuture <JSONObject > request = executeRequestJson (getListsUrl , "GET" );
476
+
477
+ Futures .addCallback (request , new FutureCallback <JSONObject >() {
478
+ @ Override
479
+ public void onFailure (Throwable t ) {
480
+ result .setException (t );
481
+ }
482
+
483
+ @ Override
484
+ public void onSuccess (JSONObject json ) {
485
+ try {
486
+ SPWeb rootWeb = SPWeb .createFromJson (json , SPWeb .class );
487
+ result .set (rootWeb );
488
+ } catch (JSONException e ) {
489
+ log (e );
490
+ result .setException (e );
422
491
}
423
492
}
424
493
});
0 commit comments