package org.jboss.resteasy.client.jaxrs.internal;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;

Author:Bill Burke
Version:$Revision: 1 $
/** * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a> * @version $Revision: 1 $ */
public class ClientRequestContextImpl implements ClientRequestContext { protected ClientInvocation invocation; protected Response abortedWithResponse; public ClientRequestContextImpl(final ClientInvocation invocation) { this.invocation = invocation; } public Response getAbortedWithResponse() { return abortedWithResponse; } @Override public Object getProperty(String name) { return invocation.getMutableProperties().get(name); } @Override public Collection<String> getPropertyNames() { return Collections.unmodifiableSet(invocation.getMutableProperties().keySet()); } @Override public void setProperty(String name, Object object) { invocation.getMutableProperties().put(name, object); } @Override public void removeProperty(String name) { invocation.getMutableProperties().remove(name); } @Override public Class<?> getEntityClass() { return invocation.getEntityClass(); } @Override public Type getEntityType() { return invocation.getEntityGenericType(); } @Override public void setEntity(Object entity) { if (entity instanceof Entity) { invocation.setEntity((Entity)entity); } else { invocation.setEntityObject(entity); } } @Override public void setEntity(Object entity, Annotation[] annotations, MediaType mediaType) { if (entity instanceof Entity) { invocation.setEntity((Entity)entity); } else { invocation.setEntity(Entity.entity(entity, mediaType)); } invocation.setEntityAnnotations(annotations); } @Override public URI getUri() { return invocation.getUri(); } @Override public void setUri(URI uri) { invocation.setUri(uri); } @Override public String getMethod() { return invocation.getMethod(); } @Override public void setMethod(String method) { invocation.setMethod(method); } @Override public MultivaluedMap<String, Object> getHeaders() { return invocation.getHeaders().getHeaders(); } @Override public Date getDate() { return invocation.getHeaders().getDate(); } @Override public Locale getLanguage() { return invocation.getHeaders().getLanguage(); } @Override public MediaType getMediaType() { return invocation.getHeaders().getMediaType(); } @Override public List<MediaType> getAcceptableMediaTypes() { List<MediaType> rtn = invocation.getHeaders().getAcceptableMediaTypes(); if (rtn.size() == 0) { rtn = new ArrayList<MediaType>(); rtn.add(MediaType.WILDCARD_TYPE); } return rtn; } @Override public List<Locale> getAcceptableLanguages() { return invocation.getHeaders().getAcceptableLanguages(); } @Override public Map<String, Cookie> getCookies() { return invocation.getHeaders().getCookies(); } @Override public boolean hasEntity() { return invocation.getEntity() != null; } @Override public OutputStream getEntityStream() { return invocation.getEntityStream(); } @Override public void setEntityStream(OutputStream entityStream) { invocation.setEntityStream(entityStream); } @Override public Object getEntity() { return invocation.getEntity(); } @Override public Annotation[] getEntityAnnotations() { return invocation.getEntityAnnotations(); } @Override public Client getClient() { return invocation.getClient(); } @Override public Configuration getConfiguration() { return invocation.getConfiguration(); } @Override public void abortWith(Response response) { abortedWithResponse = response; } @Override public MultivaluedMap<String, String> getStringHeaders() { return invocation.getHeaders().asMap(); } @Override public String getHeaderString(String name) { return invocation.getHeaders().getHeader(name); }
exposes the client invocation for easier integration with other libraries
Returns:the underlying client invocation
/** * exposes the client invocation for easier integration with other libraries * @return the underlying client invocation */
public ClientInvocation getInvocation() { return invocation; } }