예제 #1
0
 /**
  * Initializes and prepares a DELETE request or retrieve it if already pending.
  *
  * @param clazz Class of ResourceRepresentation holds by request
  * @param uri Uri to fetch
  * @param resource Resource to send
  */
 protected <R extends ResourceRepresentation<?>> RESTRequest<R> delete(
     Class<R> clazz, String uri, ResourceRepresentation<?> resource) {
   RESTRequest<R> request = requestRoutine(clazz, uri, resource, true);
   request.setResourceRepresentation(resource);
   initRequest(request, HTTPVerb.DELETE, uri);
   return request;
 }
예제 #2
0
 /**
  * Initializes and prepares a PUT request or retrieve it if already pending.
  *
  * @param clazz Class of ResourceRepresentation holds by request
  * @param uri URI to fetch
  * @param resource Resource to send
  */
 protected <R extends ResourceRepresentation<?>> RESTRequest<R> put(
     Class<R> clazz, String uri, ResourceRepresentation<?> resource) {
   RESTRequest<R> request = requestRoutine(clazz, uri, resource, false);
   request.setResourceRepresentation(resource);
   initRequest(request, HTTPVerb.PUT, uri);
   return request;
 }
예제 #3
0
  /**
   * Receive result from {@link RestService} and fires callbacks corresponding to the request'state
   *
   * @param resultCode The result code send by the {@link RestService}
   * @param resultData Bundle with result data
   */
  @Override
  public void onReceiveResult(int resultCode, Bundle resultData) {

    RESTRequest<?> r = (RESTRequest<?>) resultData.getSerializable(RestService.REQUEST_KEY);
    List<RESTRequest<? extends ResourceRepresentation<?>>> toRemove =
        new ArrayList<RESTRequest<?>>();
    for (Iterator<RESTRequest<?>> it = mRequestCollection.iterator(); it.hasNext(); ) {
      RESTRequest<?> request = it.next();
      Log.d("RESTDroid", "onReceiveResult");
      if (request.getID().equals(r.getID())) {
        try {
          request.setResultStream(r.getResultStream());
        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
        request.setResultCode(resultCode);
        request.setPending(false);
        if (resultCode >= 200 && resultCode <= 210) {
          request.setResourceRepresentation(r.getResourceRepresentation());
          if (request.triggerOnFinishedRequestListeners())
            // it.remove();
            toRemove.add(request);
          Log.d("RESTDroid", "remove");
        } else {
          request.setResourceRepresentation(r.getResourceRepresentation());
          if (request.triggerOnFailedRequestListeners())
            // it.remove();
            toRemove.add(request);
          Log.d("RESTDroid", "remove");
        }

        Intent i = resultData.getParcelable(RestService.INTENT_KEY);
        if (null == mIntentsMap.remove(request.getID()))
          throw new RuntimeException("Cannot find request in intents map");
        mContext.stopService(i);
      }
    }
    Log.d("RESTDroid", "removeAll");
    // mRequestCollection.removeAll(toRemove);
    /*if(resultCode >= 200 && resultCode <= 210)
    retryFailedRequest();*/
  }