Package br.com.caelum.restfulie.request

Source Code of br.com.caelum.restfulie.request.RequestStack

package br.com.caelum.restfulie.request;

import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import br.com.caelum.restfulie.Response;
import br.com.caelum.restfulie.RestClient;
import br.com.caelum.restfulie.feature.RequestFeature;
import br.com.caelum.restfulie.feature.ResponseFeature;
import br.com.caelum.restfulie.http.Request;

public class RequestStack implements RequestFeature {

  private final List<ResponseFeature> responses = new ArrayList<ResponseFeature>();
  private final List<RequestFeature> requests = new ArrayList<RequestFeature>();
  private final RestClient client;

  public RequestStack(RestClient client) {
    this.client = client;
  }

  public void with(ResponseFeature feature) {
    this.responses.add(feature);
  }

  public Response process(Request request, String verb, URI uri, Object payload) {
    requests.add(this);
    return new RequestChain(requests).next(request, verb, uri, payload);
  }

  public void with(RequestFeature feature) {
    this.requests.add(feature);
  }

  public Response process(RequestChain chain, Request request, String verb,
      URI uri, Object payload) {
    Response response = client.getProvider().process(request, verb, uri, payload);
    return new ResponseChain(responses, client).next(response);
  }

}
TOP

Related Classes of br.com.caelum.restfulie.request.RequestStack

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.