package org.jboss.resteasy.client.jaxrs.internal.proxy.processors.invocation;
import org.jboss.resteasy.client.jaxrs.internal.ClientInvocation;
import org.jboss.resteasy.client.jaxrs.internal.proxy.processors.InvocationProcessor;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
/**
* allows a user to specify the url.
*
* @author <a href="mailto:sduskis@gmail.com">Solomon Duskis</a>
* @version $Revision: 1 $
*/
public class URIParamProcessor implements InvocationProcessor
{
@Override
public void process(ClientInvocation invocation, Object param)
{
URI uri = getUri(param);
if (uri != null)
{
invocation.setUri(uri);
}
}
private URI getUri(Object target)
{
try
{
if (target instanceof URI)
{
return (URI) target;
}
else if (target instanceof URL)
{
return ((URL) target).toURI();
}
else if (target instanceof String)
{
return new URI(target.toString());
}
}
catch (URISyntaxException e)
{
throw new RuntimeException(e);
}
return null;
}
}