package cloudone.client.internal;
import cloudone.ServiceFullName;
import cloudone.client.C1Client;
import cloudone.client.C1WebTarget;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.JerseyClient;
import org.glassfish.jersey.client.JerseyInvocation;
import org.glassfish.jersey.client.JerseyWebTarget;
import org.glassfish.jersey.uri.internal.JerseyUriBuilder;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.ws.rs.core.Link;
import javax.ws.rs.core.UriBuilder;
import java.net.URI;
import java.util.Map;
/**
* @author Martin Mares (martin.mares at oracle.com)
*/
public class C1ClientImpl extends JerseyClient implements C1Client {
private final JerseyClient client;
public C1ClientImpl(JerseyClient client) {
this.client = client;
}
@Override
public void close() {
client.close();
}
@Override
public JerseyWebTarget target(String uri) {
return client.target(uri);
}
@Override
public JerseyWebTarget target(URI uri) {
return client.target(uri);
}
@Override
public JerseyWebTarget target(UriBuilder uriBuilder) {
return client.target(uriBuilder);
}
@Override
public JerseyWebTarget target(Link link) {
return client.target(link);
}
@Override
public JerseyInvocation.Builder invocation(Link link) {
return client.invocation(link);
}
@Override
public SSLContext getSslContext() {
return client.getSslContext();
}
@Override
public HostnameVerifier getHostnameVerifier() {
return client.getHostnameVerifier();
}
@Override
public ClientConfig getConfiguration() {
return client.getConfiguration();
}
@Override
public C1ClientImpl property(String name, Object value) {
return new C1ClientImpl(client.property(name, value));
}
@Override
public C1ClientImpl register(Class<?> componentClass) {
return new C1ClientImpl(client.register(componentClass));
}
@Override
public C1ClientImpl register(Class<?> componentClass, int priority) {
return new C1ClientImpl(client.register(componentClass, priority));
}
@Override
public C1ClientImpl register(Class<?> componentClass, Class<?>... contracts) {
return new C1ClientImpl(client.register(componentClass, contracts));
}
@Override
public C1ClientImpl register(Class<?> componentClass, Map<Class<?>, Integer> contracts) {
return new C1ClientImpl(client.register(componentClass, contracts));
}
@Override
public C1ClientImpl register(Object component) {
return new C1ClientImpl(client.register(component));
}
@Override
public C1ClientImpl register(Object component, int priority) {
return new C1ClientImpl(client.register(component, priority));
}
@Override
public C1ClientImpl register(Object component, Class<?>... contracts) {
return new C1ClientImpl(client.register(component, contracts));
}
@Override
public C1ClientImpl register(Object component, Map<Class<?>, Integer> contracts) {
return new C1ClientImpl(client.register(component, contracts));
}
@Override
public C1WebTarget target() {
return new C1WebTargetImpl(new JerseyUriBuilder(), client, null);
}
@Override
public C1WebTarget target(ServiceFullName... serviceNames) {
return new C1WebTargetImpl(new JerseyUriBuilder(), client, serviceNames);
}
}