/** * Create a proxy implementation of the provided Swagger interface. * @param swaggerInterface The Swagger interface to provide a proxy implementation for. * @param httpPipeline The RequestPolicy and HttpClient pipline that will be used to send Http * requests. * @param serializer The serializer that will be used to convert POJOs to and from request and * response bodies. * @param <A> The type of the Swagger interface. * @return A proxy implementation of the provided Swagger interface. */ @SuppressWarnings("unchecked") public static <A> A create(Class<A> swaggerInterface, HttpPipeline httpPipeline, SerializerAdapter<?> serializer) { final SwaggerInterfaceParser interfaceParser = new SwaggerInterfaceParser(swaggerInterface, serializer); final RestProxy restProxy = new RestProxy(httpPipeline, serializer, interfaceParser); return (A) Proxy.newProxyInstance(swaggerInterface.getClassLoader(), new Class[]{swaggerInterface}, restProxy); } }