package org.jboss.resteasy.core.interception;

import org.jboss.resteasy.client.ClientExecutor;
import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.client.ClientResponse;
import org.jboss.resteasy.spi.interception.ClientExecutionContext;
import org.jboss.resteasy.spi.interception.ClientExecutionInterceptor;

import java.util.List;

Author:Bill Burke
See Also:
Version:$Revision: 1 $
Deprecated:The Resteasy interceptor facility introduced in release 2.x is replaced by the JAX-RS 2.0 compliant interceptor facility in release 3.0.x.
/** * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a> * @version $Revision: 1 $ * * @deprecated The Resteasy interceptor facility introduced in release 2.x * is replaced by the JAX-RS 2.0 compliant interceptor facility in release 3.0.x. * * @see <a href="https://jcp.org/en/jsr/detail?id=339">jaxrs-api</a> * */
@Deprecated public class ClientExecutionContextImpl implements ClientExecutionContext { protected List<ClientExecutionInterceptor> interceptors; protected ClientExecutor executor; protected ClientRequest request; protected int index = 0; public ClientExecutionContextImpl(final List<ClientExecutionInterceptor> interceptors, final ClientExecutor executor, final ClientRequest request) { this.interceptors = interceptors; this.executor = executor; this.request = request; } public ClientRequest getRequest() { return request; } @SuppressWarnings("unchecked") public ClientResponse proceed() throws Exception { if (index >= interceptors.size()) { return executor.execute(request); } else { try { return interceptors.get(index++).execute(this); } finally { index--; } } } }