/** Create an implementation of the API defined by the specified {@code service} interface. */ @SuppressWarnings("unchecked") public <T> T create(Class<T> service) { Utils.validateServiceClass(service); return (T) Proxy.newProxyInstance(service.getClassLoader(), new Class<?>[] { service }, new RestHandler(getMethodInfoCache(service))); }
/** * Wrap the supplied mock implementation of a service so that it exhibits the delay and error * characteristics of a real network. * * @see #setDelay(long) * @see #setVariancePercentage(int) * @see #setErrorPercentage(int) */ @SuppressWarnings("unchecked") public <T> T create(Class<T> service, T mockService) { Utils.validateServiceClass(service); return (T) Proxy.newProxyInstance(service.getClassLoader(), new Class<?>[] { service }, new MockHandler(mockService, restAdapter.getMethodInfoCache(service))); }