package org.jboss.resteasy.client.jaxrs.internal.proxy.extractors;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.HashMap;
@SuppressWarnings("unchecked")
public class <T> implements EntityExtractor
{
private Class<T> ;
private HashMap<Method, EntityExtractor<?>> methodHandlers;
public (final Method method, final EntityExtractorFactory extractorFactory)
{
this.returnType = (Class<T>) method.getReturnType();
this.methodHandlers = new HashMap<Method, EntityExtractor<?>>();
for (Method interfaceMethod : this.returnType.getMethods())
{
this.methodHandlers.put(interfaceMethod, extractorFactory.createExtractor(interfaceMethod));
}
}
public Object (ClientContext context, Object... args)
{
Class<?>[] intfs = {returnType};
ClientResponseProxy clientProxy = new ClientResponseProxy(context, methodHandlers, returnType);
return Proxy.newProxyInstance(returnType.getClassLoader(), intfs, clientProxy);
}
}